일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프로그래밍
- 국비지원#국비교육
- 국비지원JAVA
- 국비지원#국비교육#국비지원자바#국비교육자바#css#HTML#JAVA
- #java#JAVA#프로그래밍#웹개발자
- java
- 항해99 #항해플러스 #주니어개발자 #주니어개발자역량강화 #주니어개발자멘토링 #개발자사이드프로젝트 #코딩부트캠프 #코딩부트캠프후기
- IntelliJ#인텔리제이#인텔리#단축키
- 국비지원자바#국비교육자바#국비지원java#국비교육java#자바스크립트#프론트엔드
- 국비지원JAVA#국비교육JAVA#국비지원자바#국비교육자바#JSP#SERVLET#서블릿#
- 쿼리스트링#쿼리문자열#바인딩
- Spring#spring#스프링#스프링프레임워크#스프링자동주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- 국비지원JAVA#국비지원자바#프로그랭#JSP#국비지원JSP#국비교육JSP#웹개발자#코딩
- Java#정처기#비트연산자#정보처리기사
- Spring#spring#스프링#스프링프레임워크#스프링의존성주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- Java#java#메모리영역#클래스로더#가비지컬렉터
- 개발자#it도서#도메인#DDD#ddd
- Java#컴파일러#자바컴파일러#
- 자바
- Java#java#자바#다오#디티오#브이오#dao#dto#vo
- 자바#Java#배열예시#연습#기초다지기
- tibero#티베로#이중화#failvover
- spring#Spring#RequestBody#ResponseBody
- Java#JAVA#매개변수
- db#데이터베이스#오라클#sql
- html#HTML#프론트엔드#개발자#코딩#국비지원#국비교육#국비지원프론트엔드#국비지원HTML#국비지원html#국비프론트엔드
- 개발자도서#개발자책#도메인#DDD#도메인주도개발시작하기#개발스터디#
- #
- 항해플러스#항해#항해플러스3기#회고
- Resource #
- Today
- Total
개린이 개발노트
국비지원 JAVA(자바) 프로그래밍 (JSP,SESSION,로그인, 로그아웃) 본문
세션을 이용해서 로그인 구현
아이디, 비밀번호 입력-> 로그인 버튼일 클릭
(데이터베이스에있는)입력한 아이디랑 비밀번호가 맞는지 검사한 후\
true일때 -> 세션 생성-> 로그인성공화면으로 이동
false일때 -> 로그인 실패 페이지(다시 로그인 페이지)
로그인화면 구현
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
if(session.getAttribute("id")!=null){
response.sendRedirect("loginSucess.jsp");
}
%>
<form method="post" action="checkLogin.jsp">
아이디 : <input type="text" name="id"> <br>
비밀번호 : <input type="password" name="pw"> <br>
<input type ="submit" value="로그인">
</form>
<br>
<a href="loginSuccess.jsp">메일</a>
</body>
</html>
로그인 아이디, 비밀번호가 맞는 지 확인
<%@page import="org.apache.jasper.tagplugins.jstl.core.Redirect"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String id ="user";
String pw = "1234";
String user_id = request.getParameter("id");
String user_pw = request.getParameter("pw");
if(id.equals(user_id) && pw.equals(user_pw)) {
// 세션 생성
session.setAttribute("id", user_id);
// 로그인 성공페이지
response.sendRedirect("loginSuccess.jsp");
} else {
%>
<script>
alert("로그인실패");
history.go(-1);
</script>
<% // 실패 -> 다시 로그인페이지
// response.sendRedirect("loginForm.jsp");
}
%>
</body>
</html>
로그인 성공화면 구현
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>메일보관함</h1>
<%
if(session.getAttribute("id")==null){
response.sendRedirect("loginForm.jsp");
}
%>
<%=session.getAttribute("id")%>님 환영합니다. <br>
<form method="post" action="logout.jsp">
<input type="submit" value="로그아웃">
</form>
</body>
</html>
세션 처리
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
session.invalidate(); // 세션 전부 제거
//session.removeAttribute("id") 특정 세션만 제거/
response.sendRedirect("loginForm.jsp");
%>
</body>
</html>
액션 태그
forward
<%
//RequestDispatcher dispatcher = request.getRequestDispatcher("forwardTest.jsp");
//dispatcher.forward(request, response);
%>
<!--<jsp:forward page="forwardTest.jsp"></jsp:forward> -->
<jsp:forward page="forwardTest.jsp"/>
위의 3개가 전부 다 같은 뜻
param
param(setattribute와 비슷한 개념) -> forward액션태그 안쪽에 넣어서 사용 가능
< jsp:forward page ="url">
<jsp:param name="이름" value="값 />
</jsp:forward>
forwardForm->forward->forwardTest로 이동
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>껍데기</h1>
<h2>기존방식</h2>
<form method="get" action="forward.jsp">
아이디 :<input type="text" name="id"> <br>
비밀번호 : <input type="password" name="pw"> <br>
<input type="radio" name="select" value="user">사용자
<input type="radio" name="select" value="admin">관리자<br>
<input type="submit" value="전송">
</form>
<h2>액션 태그 방식</h2>
<form method="get" action="actionForward.jsp">
아이디 :<input type="text" name="id"> <br>
비밀번호 : <input type="password" name="pw"> <br>
<input type="radio" name="select" value="user">사용자
<input type="radio" name="select" value="admin">관리자<br>
<input type="submit" value="전송">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String select = request.getParameter("select");
if(select.equals("user")) {
request.setAttribute("s", "사용자");
} else {
request.setAttribute("s", "관리자");
}
RequestDispatcher dispatcher = request.getRequestDispatcher("forwardTest.jsp");
dispatcher.forward(request, response);
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>기존방식(포워드)</h1>
<h2>아이디 : <%=request.getParameter("id")%></h2>
<h2>권환 : <%=request.getAttribute("s")%></h2>
<h1>액션태그(포워드)</h1>
<h2>아이디 : <%=request.getParameter("id")%></h2>
<h2>권환 : <%=request.getParameter("s")%></h2>
</body>
</html>
액션포워드방식
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String select = request.getParameter("select");
if (select.equals("user")) {
%>
<jsp:forward page="forwardTest.jsp">
<jsp:param name="s" value='<%=URLEncoder.encode("사용자","utf-8") %>' />
</jsp:forward>
<%
} else {
%>
<jsp:forward page="forwardTest.jsp">
<jsp:param name="s" value='<%=URLEncoder.encode("관리자","utf-8") %>' />
</jsp:forward>
<%
}
%>
</body>
</html>
include
<%@ include file="주소" %>
<jsp:include page="header.jsp" flush="false/true">
flush="true": 출력 버퍼에 저장된 데이터를 전송
header.jsp
footer.jsp
actionMain01.jsp
actionMain01.jsp부터 실행
-> 순서대로 읽으면서 header.jsp 로 흐름이 넘어가서header.jsp 실행
-> 끝나면 다시 흐름이 actionMain01.jsp 넘어옴
-> footer.jsp 로 흐름이 넘어가서 footer.jsp 실행되고
-> 끝나면 다시 흐름이 actionMain01.jsp 넘어옴 나머지코드 실행 후 종료
<%@page import="org.apache.jasper.tagplugins.jstl.core.Redirect"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>여기는 header</h1>
</body>
</html>
<%@page import="org.apache.jasper.tagplugins.jstl.core.Redirect"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>여기는 footer</h1>
</body>
</html>
<%@page import="org.apache.jasper.tagplugins.jstl.core.Redirect"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="header.jsp"%>
<h1>메인페이지</h1>
<a href="main02.jsp">두번째 페이지</a>
<%@ include file="footer.jsp"%>
</body>
</html>
<%@page import="org.apache.jasper.tagplugins.jstl.core.Redirect"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@ include file="header.jsp"%>
<h1>메인02페이지</h1>
<a href="main01.jsp">첫번째 페이지</a>
<%@ include file="footer.jsp"%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="header.jsp"/>
<h1>메인01페이지</h1>
<a href="actionMain02.jsp">두번째 페이지</a>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="header.jsp"/>
<h1>메인02페이지</h1>
<a href="actionMain01.jsp">첫번째 페이지</a>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>
자바 빈 (java bean)
데이터를 하나하나 전송하는 것 보다 하나로 묶어서 전송하는게 더 효율적임
여러 데이터를 보관하는 하나의 저장소 ( 클래스)
특징
-클래스로 생성: 생성자는 매개변수가 없는 기본생성자를 가져야함
Public class aaa() {
private String a;
private int b;
private doublc c;
}
aaa.b=10;
-클래스에 변수들을 property 라고 함 접근제한자는 private으로 함
-프로퍼티들이 private 이므로 getter/setter로 접근
>get~~ ,set~~~ 으로 만들어짐
자료형이 boolean 같은 경우는 -> is~~로
get메서드는 매개변수가 없음
set메서드는 매겨변수가 하나 이상 존재
-패키지안에 보관
useBean액션태그
useBean 액션태그
형식
<jsp:useBean id="빈이름" class="빈으로 사용할 클래스"> [scope="사용범위"] />
class="MemberBean" 이거안됨
class="com.study.javabeans.MemberBean" 이렇게 패키지명 등의 경로를 정확하게 써줘야함
== MemberBean member = new MemberBean(); 이것과 같은것임 (객체생성)
사용범위-
page: 해당 페이지에서만 자바빈객체 사용가능
request: 요청된 페이지까지 사용가능함
session: 브라우저가 열려있는 동안 사용가능
application: 다 사용가능 (서버연결되어있는동안)
예시
package com.study.javabeans;
public class MemberBean {
private String name;
private String id;
private String nickName;
private String pw;
private String email;
private String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="member" class="com.study.javabeans.MemberBean"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
그냥 출력 <br>
이름: <%=member.getName() %> <br>
아이디: <%=member.getId() %> <br>
setter 설정 <br>
<%
member.setName("고길동");
member.setId("goroad");
%>
setter 설정 후 출력 <br>
이름: <%=member.getName() %> <br>
아이디: <%=member.getId() %>
</body>
</html>
<jsp: getProperty name= "자바빈이름" property="프로퍼티이름"/>
== member.getName();
<jsp: setProperty name="자바빈이름" property="프로퍼티이름" value="값"/>
== member.setName
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="member" class="com.study.javabeans.MemberBean"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
그냥 출력 <br>
이름: <jsp:getProperty name="member" property="name"/> <br>
아이디: <jsp:getProperty name="member" property="id"/> <br>
setProperty 작업 <br>
<jsp:setProperty name="member" property="name" value="고길동"/>
<jsp:setProperty name="member" property="id" value="go"/>
설정 후 출력 <br>
이름: <jsp:getProperty name="member" property="name"/> <br>
아이디: <jsp:getProperty name="member" property="id"/> <br>
</body>
</html>
자바 빈 이용(위에 거랑 같은)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>회원가입 페이지</h1>
<form method="post" action="info.jsp">
이름 : <input type="text" name="name"><br>
아이디 : <input type="text" name="id"><br>
닉네임 : <input type="text" name="nickName"><br>
비밀번호 : <input type="password" name="pw"><br>
이메일 : <input type="text" name="email"><br>
전화번호 : <input type="text" name="phone"><br>
<input type="submit" value="가입">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("utf-8");%>
<jsp:useBean id="member" class="com.study.javabeans.MemberBean"/>
<jsp:setProperty name="member" property="*"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>정보 출력</h1>
이름: <jsp:getProperty name="member" property="name"/> <br>
아이디: <jsp:getProperty name="member" property="id"/> <br>
닉네임: <jsp:getProperty name="member" property="nickName"/> <br>
비밀번호: <jsp:getProperty name="member" property="pw"/> <br>
이메일: <jsp:getProperty name="member" property="email"/> <br>
전화번호: <jsp:getProperty name="member" property="phone"/> <br>
</body>
</html>
위의 사진처럼 만들어보기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>게시판 글쓰기</h2>
<form method="post" action="boardResult.jsp">
<table border="1">
<tr>
<td>작성자</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" name="pw"></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="text" size="50" name="email"></td>
</tr>
<tr>
<td>글 제목</td>
<td><input type="text" size="80" name="title"></td>
</tr>
<tr>
<td height="100px">글 내용</td>
<td>
<textarea cols="80" rows="20" name="content"></textarea>
</td>
</tr>
<tr>
</table>
<input type="submit" value="등록">
<input type="reset" value="다시작성">
</form>
</body>
</html>
package com.study.javabeans;
public class MemberBean {
private String name;
private String pw;
private String email;
private String title;
private String content;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("utf-8");%>
<jsp:useBean id="member" class="com.study.javabeans.MemberBean"/>
<jsp:setProperty name="member" property="*"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>입력된 정보</h1>
작성자: <jsp:getProperty name="member" property="name"/> <br>
비밀번호: <jsp:getProperty name="member" property="pw"/> <br>
이메일: <jsp:getProperty name="member" property="email"/> <br>
제목: <jsp:getProperty name="member" property="title"/> <br>
내용: <jsp:getProperty name="member" property="content"/> <br>
</body>
</html>
완성
표현언어 EL (이엘) (Expression Language)
${ }
${item.name}
${param.id}
정수 : ${10}<br>
실수 : ${3.14}<br>
문자 : ${"표현언어"}<br>
불린 : ${true}<br>
널값 : ${null}<br>
널값만 공란으로 나옴, 나머지는 형변환 없이 그대로 나옴
형변환 필요없어서 간편함
+기본적인 연산도 가능
<h1>
\${5+2}=${5+2}<br>
\${5/2}=${5/2}<br>
\${5 div 2 }=${5 div 2}<br> <!-- 나누기 -->
\${5%2 }=${5%2}<br>
${5 mod 2 }<br> <!-- 나머지 구하기 -->
${5>2}<br>
${(5>2) ? "참" : "거짓" } <br> <!-- 삼항 연산-->
${(5>2) || (10>20) } <br>
</h1>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form method="get" action="elResult.jsp">
아이디 : <input type="text" name="id"> <br>
비밀번호 : <input type="password" name="pw"> <br>
<input type="submit" value="전송"> <br>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
예전 하던 방식<br>
아이디: <%= request.getParameter("id") %> <br>
비밀번호: <%= request.getParameter("pw") %> <br>
<br>
표현언어(EL)<br>
아이디: ${param.id}<br>
비밀번호: ${param.pw}<br>
</body>
</html>
내장객체 보다 EL을 이용하면 훨씬 간편하게 이용 가능
${param.이름} ==<%= request.getParameter("이름 ") %>
String[] xx = request.getParameterValues("이름");
${paramValues.이름} => JSTL 할 때
표현언어 장점 비교
이퀄같은 것 없이 바로 비교 가능한 점 확인가능
폼에서 숫자 두개 입력해서 전송 누르면
결과부분에서 두 수의 합이 출력
예전방식+ EL 방식
'국비지원(국비교육) 웹 개발자 과정' 카테고리의 다른 글
국비지원 JAVA(자바) 프로그래밍 (JSP,Bundle,WebServer,WAS,서블릿,필터,JDBC) (0) | 2023.01.27 |
---|---|
국비지원 JAVA(자바) 프로그래밍 (jsp,param,내장객체,번들,Bundle,fmt) (0) | 2023.01.26 |
국비지원 JAVA(자바) 프로그래밍 (application 내장 객체 ) (0) | 2023.01.20 |
국비지원 JAVA(자바) 프로그래밍 (JSP,표현식,MVC,MVC패턴,오브젝트비교) (0) | 2023.01.19 |
국비지원 JAVA(자바) 프로그래밍 (JSP,SERVLET,서블릿,스크립트릿,선언문) (0) | 2023.01.18 |