출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

 

 

구성 요소

이름 : 각각의 쿠키를 구별하는 데 사용되는 이름
값 : 쿠키의 이름과 관련된 값
유효시간 : 쿠키의 유지 시간
도메인 : 쿠키를 전송할 도메인
경로 : 쿠키를 전송할 요청 경로


쿠키 이름의 제약
쿠키의 이름은 아스키 코드의 알파벳과 숫자만을 포함할 수 있다.
콤마(,), 세미콜론(;), 공백(' ') 등의 문자는 포함할 수 없다.
'$'로 시작할 수 없다.

 

예제

makeCookie.jsp

<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%

// 쿠키 객체를 생성
Cookie c1 = new Cookie("userID", "V");
// response.addCookie(쿠키객체)
response.addCookie(c1);

Cookie c2 = new Cookie("userName", URLEncoder.encode("김태형", "UTF-8"));

response.addCookie(c2);


%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>쿠키생성, 저장</h1>
	<h3> <%= c1.getName()%>=<%=c1.getValue() %></h3>
	<h3> <%= c2.getName()%>=<%= URLDecoder.decode(c2.getValue(), "utf-8")%></h3>
	
	<a href="viewCookie.jsp">쿠키 정보 보기</a>
	
</body>
</html>

viewCookie.jsp

<%@page import="java.net.URLDecoder"%>
<%@ 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>

 <%
 
 	// 쿠키 가져오기!
 	Cookie[] cookies = request.getCookies();
 
 	if(cookies != null && cookies.length>0){
 		
 		for(int i=0; i<cookies.length; i++){
 			String name = cookies[i].getName();
 			String value = URLDecoder.decode(cookies[i].getValue(),"UTF-8");
 			
 			out.println("<h1>"+name+" : "+value+"</h1>");
 		}
 		
 	}else{
 		out.println("<h1>저장된 쿠키가 없습니다.</h1>");
 		
 	}
 
 %>

</body>
</html>

 

 


 

쿠키 값 변경

쿠키값 그냥 똑같은 이름으로 해주면 덮어써짐!

 

예제

쿠키 수정하기 > editCookie.jsp 를 추가!

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%
	// V를 BTS로 변경
	Cookie cookie = new Cookie("userID", "BTS");
	response.addCookie(cookie);

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<h1>쿠키 userID의 값이 변경되었습니다.</h1>
<a href="viewCookie.jsp">바뀐 쿠키 정보 확인 </a>

</body>
</html>

 


 

쿠키 삭제하기

쿠키의 유지시간을 0으로 설정해준다.

예제

쿠키 수정하기 > deleteCookie.jsp 를 추가!

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>


<%
	// 쿠키 삭제를 위해 쿠키의 유지 시간을 0으로 설정해준다.
	Cookie cookie = new Cookie("userID","");
	cookie.setMaxAge(0);
	response.addCookie(cookie);
	
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>쿠키 userID의 값이 삭제되었습니다.</h1>
<a href="viewCookie.jsp">삭제된 쿠키 정보 확인 </a>

</body>
</html>

 

 

 


 

알아만두기

 


 

ex) 하루동안 보지 않기

 

예제

<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%

// 쿠키 객체를 생성
Cookie c1 = new Cookie("userID", "V");
// response.addCookie(쿠키객체)
response.addCookie(c1);

Cookie c2 = new Cookie("userName", URLEncoder.encode("김태형", "UTF-8"));
c2.setMaxAge(60*20); // 20분 뒤 삭제!
response.addCookie(c2);


%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>쿠키생성, 저장</h1>
	<h3> <%= c1.getName()%>=<%=c1.getValue() %></h3>
	<h3> <%= c2.getName()%>=<%= URLDecoder.decode(c2.getValue(), "utf-8")%></h3>
	
	<a href="viewCookie.jsp">쿠키 정보 보기</a>
	
</body>
</html>

 

+ Recent posts