1. 쿠키
- HTTP 프로토콜은 request & response 가 끝나면 연결을 종료함
- 연결이 끊겼을 때 어떤 정보를 지속적으로 유지하기 위한 수단으로 쿠키를 사용
- 쿠키는 서버에서 생성하고 클라이언트에 저장함
- 서버에 요청할 때 마다 쿠키 속성값을 참조하거나 변경 가능
- 쿠키는 용량이 4kb로 제한적이며, 300개까지 데이터 정보를 가질 수 있음
2. 쿠키 문법


1) 쿠키 메소드 예제
① 쿠키 생성 (cookieset.jsp)
<%
Cookie[] cookies = request.getCookies();
if(cookies != null) {
for(int i=0; i<cookies.length; i++){
out.println(cookies[i].getName() + "<br />");
out.println(cookies[i].getValue() + "<br />");
}
}
%>
② 쿠키 값 받아오기 (cookieget.jsp)
<%
Cookie[] cookies = request.getCookies();
for(int i=0; i<cookies.length; i++) {
String str = cookies[i].getName();
if(str.equals("cookieN")) {
out.println("cookies[" + i + "] name : " + cookies[i].getName() + "<br />");
out.println("cookies[" + i + "] value : " + cookies[i].getValue() + "<br />");
out.println("=====================<br />");
}
}
%>
<a href="cookiedel.jsp">cookie delete</a>

③ 쿠키 값 삭제 ( 유효기간을 0으로 설정)
<%
Cookie[] cookies = request.getCookies();
for(int i=0; i<cookies.length; i++) {
String str = cookies[i].getName();
if(str.equals("cookieN")) {
out.println("name : " + cookies[i].getName() + "<br />");
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
}
}
%>
<a href="cookietest.jsp">쿠키확인</a>
2) 쿠키로 로그인 기능 구현
① login.html (form 태그로 loginOK.jsp 페이지에 넘겨줌)
<form action="loginOk.jsp" method="post">
아이디 : <input type="text" name="id" size="10"><br />
비밀번호 : <input type="password" name="pw" size="10"><br />
<input type="submit" value="로그인">
</form>

② loginOK.jsp
- 로그인 성공시 : 쿠키를 생성하고 welcome.jsp 페이지로 넘김
- 로그인 실패시 : login.html 페이지로 돌아감
<%!
String id, pw;
%>
<%
id = request.getParameter("id");
pw = request.getParameter("pw");
if(id.equals("abcde") && pw.equals("12345")) {
Cookie cookie = new Cookie("id", id);
cookie.setMaxAge(60);
response.addCookie(cookie);
response.sendRedirect("welcome.jsp");
} else {
response.sendRedirect("login.html");
}
%>
③ welcome.jsp (로그인 성공시 리디렉션 되는 화면)
<%
Cookie[] cookies = request.getCookies();
for(int i=0; i<cookies.length; i++) {
String id = cookies[i].getValue();
if(id.equals("abcde")) out.println(id + "님 안녕하세요." + "<br />");
}
%>
<a href="logout.jsp">로그아웃</a>

④ logout.jsp (로그아웃 처리)
<%
Cookie[] cookies = request.getCookies();
if(cookies != null) {
for(int i=0; i<cookies.length; i++) {
if(cookies[i].getValue().equals("abcde")){
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
}
}
}
//response.sendRedirect("login.html");
response.sendRedirect("cookietest.jsp");
%>
'강의 정리 > JSP & Servlet (Seoul Wiz)' 카테고리의 다른 글
15. 예외 페이지 (0) | 2019.08.14 |
---|---|
14. 세션 (0) | 2019.08.08 |
12. 액션태그 (0) | 2019.08.06 |
11. JSP (3) (0) | 2019.08.05 |
10. JSP (2) (0) | 2019.08.05 |