쿠키의 개요
HTTP 헤더를 이용한 쿠키 설정
Set-Cookie: name=value; expires=date; domain=domain; path=path; secure
속성 | 설명 |
---|---|
name | 쿠키 이름을 지정한다. |
value | 쿠키 값을 지정한다. |
expires | 쿠키의 만료 기간을 지정한다. |
domain | 저장된 쿠키를 서버에게 전송할 떄의 도메인을 지정한다. |
path | 쿠키가 전송될 서버의 URL을 지정하고, 유효한 URL 일 경우 쿠키 객체를 전송한다. |
secure | 이 속성을 추가하면 보안적인 채널(SSL 등)로 전송되어야 한다. |
서블릿 API를 이용한 쿠키 설정
메소드 | 설명 |
---|---|
setValue(String value) | 쿠키 값을 설정한다. |
setMaxAge(int seconds) | 쿠키 만료 기간을 지정한다. |
getValue() | 쿠키 값을 얻어 온다. |
getMaxAge() | 쿠키 만료 기간을 얻어 온다. |
getName() | 쿠키 이름을 얻어 온다. |
예제
cookieTest.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Cookie cookie =new Cookie("name", "lee");
cookie.setMaxAge(600);
response.addCookie(cookie);
%>
<html>
<head>
<meta charset="UTF-8">
<title>Cookie Test</title>
</head>
<body>
<h2><%=cookie.getName() %></h2>
<h2><%=cookie.getValue() %></h2>
<h2><%=cookie.getMaxAge() %></h2>
<a href="cookieTest2.jsp">쿠키 값 불러오기</a>
</body>
</html>
cookieTest2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String name="";
String value="";
String cookie=request.getHeader("Cookie");
if(cookie!=null){
Cookie cookies[]=request.getCookies();
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("name")){
name=cookies[i].getName();
value=cookies[i].getValue();
}
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Cookie Test</title>
</head>
<body>
<h2>쿠키 이름 = <%=name %></h2>
<h2>쿠키 값 = <%=value %></h2>
</body>
</html>
sessionLogin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Login</title>
</head>
<body>
<form action="sessionLogin2.jsp" method="post">
<table border=0 width=400 height=100>
<tr bgcolor="yellow">
<td align=right><font size=2>아이디</font></td>
<td><input type="text" name="id" size=10></td>
</tr>
<tr bgcolor="yellow">
<td align=right><font size=2>비밀번호</font></td>
<td><input type="password" name="pass" size=12></td>
</tr>
<tr bgcolor="yellow">
<td colspan=2 align=center>
<input type="submit" value="로그인">
<input type="reset" value="다시 작성">
</td>
</tr>
</table>
</form>
</body>
</html>
sessionLogin2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%session.setAttribute("id", request.getParameter("id")); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Login</title>
</head>
<body>
<center>
<h3>로그인 되었습니다.</h3>
<h3>로그인 아이디 : <%=(String)session.getAttribute("id") %></h3>
<a href="sessionLogout.jsp">로그아웃</a>
</center>
</body>
</html>
sessionLogout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
if (session.getAttribute("id") == null || session.getAttribute("id") == ""){
%>
<script>
location.href="sessionLogin.jsp"
</script>
<%
}
session.removeAttribute("id");
%>
<h3>로그아웃 되었습니다.</h3>
<a href="sessionLogin.jsp">로그인 페이지로 이동</a>
쿠키를 이용한 사용자 화면 설정 정보 유지
예제
cookieExample.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String language="korea";
String cookie = request.getHeader("Cookie");
if(cookie!=null){
Cookie cookies[]=request.getCookies();
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("language")){
language=cookies[i].getValue();
}
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%if(language.equals("korea")){%>
<h3>안녕하세요. 이것은 쿠키 예제입니다.</h3>
<%}else{ %>
<h3>Hello. This is Cookie example.</h3>
<%} %>
<form action="cookieExample2.jsp" method="post">
<input type="radio" name="language" value="korea"
<%if(language.equals("korea")){%>checked<%}%>>한국어 페이지 보기
<input type="radio" name="language" value="english"
<%if(language.equals("english")){%>checked<%}%>>영어 페이지 보기
<input type="submit" value="설정">
</form>
</body>
</html>
cookieExample2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
Cookie cookie=new Cookie("language",request.getParameter("language"));
cookie.setMaxAge(60*60*24);
response.addCookie(cookie);
%>
<script>
location.href="cookieExample.jsp"
</script>
cookieExample.jsp 실행 후 개발자 도구에서 쿠키 확인
잘 읽었습니다. 좋은 정보 감사드립니다.