Http Cookie

์ฝœ๋ผ๋ง˜ยท2023๋…„ 6์›” 27์ผ
0

JSP

๋ชฉ๋ก ๋ณด๊ธฐ
16/17
post-thumbnail

๐Ÿ Http Cookie

  • key์™€ value๋กœ ๋œ ๊ฐ’
  • ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•œ ์ฟ ํ‚ค๋ฅผ ์‘๋‹ต์— ์‹ค์–ด๋ณด๋‚ด๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋ณด๊ด€ํ•œ๋‹ค
  • ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ํ•ด๋‹น ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ๋งˆ๋‹ค ๋ณด๊ด€ํ•˜๊ณ  ์žˆ๋˜ ์ฟ ํ‚ค๋ฅผ ์š”์ฒญ์— ํ•จ๊ป˜ ์‹ค์–ด ์ „๋‹ฌํ•œ๋‹ค
  • ์ฟ ํ‚ค์— ์ €์žฅ๋˜๋Š” ๊ฐ’์€ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์–ธ์ œ๋“ ์ง€ ์œ„/๋ณ€์กฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ์•ˆํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค(๋ณด์•ˆ์ด ์—†๋‹ค)
  • ์ฟ ํ‚ค๋Š” ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— name/value๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๊ณ  ๋กœ์ปฌ/์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ถ”๊ฐ€๋œ๋‹ค๋Š” ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค

๐Ÿ Cookie์˜ ์„ค์ •๊ฐ’๋“ค

๐Ÿคบ maxAge

  • ์ฟ ํ‚ค์˜ ์ˆ˜๋ช…์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค (์ดˆ ๋‹จ์œ„)
  • ๊ธฐ๋ณธ๊ฐ’์€ -1์ด ๋œ๋‹ค
  • 0์€ ์‚ญ์ œ / -1์€ ์„ธ์…˜์„ ์˜๋ฏธํ•œ๋‹ค

๐Ÿคบ path

  • ์ฟ ํ‚ค๊ฐ€ ์–ด๋–ค URI ๋ฒ”์œ„์—์„œ ์‚ฌ์šฉ๋ ์ง€๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ๊ธฐ๋ณธ๊ฐ’์€ ํ˜„์žฌ ๊ฒฝ๋กœ๊ฐ€ ๋œ๋‹ค

๐Ÿ ์ฟ ํ‚ค ์ถ”๊ฐ€/์‚ญ์ œํ•˜๊ธฐ

โ€ป ์–ด๋–ค ์ฟ ํ‚ค์˜ ๊ฐ’ ๋˜๋Š” ์ˆ˜๋ช…์„ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•  ๋•Œ name ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ path๊นŒ์ง€ ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•ด์•ผ ํ•ด๋‹น ์ฟ ํ‚ค๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค

๐Ÿคบ ์ฟ ํ‚ค ์ถ”๊ฐ€ํ•˜๊ธฐ

โœ” list.jsp >>

<%
	// ๋ชจ๋“  ์š”์ฒญ์€ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๊ด€๋œ ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ๊ฐ€์ ธ์˜จ๋‹ค
	Cookie[] cookies = request.getCookies();
	for(Cookie cookie : cookies){
		System.out.println(cookie.getName()+ " = " + cookie.getValue());
	}
%>

๐Ÿ“บ ํ™”๋ฉด ์ถœ๋ ฅ(์ฝ˜์†”) >>


๐Ÿคบ ์ฟ ํ‚ค ์‚ญ์ œํ•˜๊ธฐ

โœ” list.jsp >>

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<%
	// ๋ชจ๋“  ์š”์ฒญ์€ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๊ด€๋œ ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ๊ฐ€์ ธ์˜จ๋‹ค
	Cookie[] cookies = request.getCookies();
	// EL / JSTL์˜ ๋ฐ˜๋ณต๋ฌธ์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์–ดํŠธ๋ฆฌ๋ทฐํŠธ์— ๋“ฑ๋ก
	pageContext.setAttribute("cookies", cookies);
	for(Cookie cookie : cookies){
		System.out.println(cookie.getName()+ " = " + cookie.getValue());
	}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Cookie List</title>
</head>
<body>
	<div style="display:grid; grid-template-columns:1fr 100px;">
	<!-- c:forEach๋Š” Getter๊ฐ€ ๋‹ฌ๋ฆฐ Object ๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค -->
		<c:forEach items="${cookies }" var="cook">
			<div>
			${cook.name }=${cook.value} 
			</div>
			<div>
			<a href="./delete.jsp?name=${cook.name }">[์‚ญ์ œ]</a>
			</div>
		</c:forEach>
	</div>
</body>
</html>

โœ” delete.jsp >>

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<% 
	String cookie_name = request.getParameter("name");
	// ์ฟ ํ‚ค์˜ ์ˆ˜๋ช…์„ 0์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ฟ ํ‚ค๊ฐ€ ์‚ญ์ œ๋œ๋‹ค
	// ์ฟ ํ‚ค๋Š” ํ•˜๋‚˜๋งŒ ๊บผ๋‚ด๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„์„œ ๋ฒˆ๊ฑฐ๋กญ๋‹ค
	Cookie[] cookies = request.getCookies();
	if(cookies != null){
		for(Cookie cookie : cookies){
			if(cookie.getName().equals(cookie_name)){
				cookie.setMaxAge(0); //์ฟ ํ‚ค์˜ ์ˆ˜๋ช…์„ 0์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ญ์ œ 
				response.addCookie(cookie);
			}
		}
	}
	response.sendRedirect("./list.jsp");
%>

profile
์ฝœ๋ผ๋ง˜ ์ฝ”๋”ฉ์ผ๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€