JSP

JSP 쿠키

테라시아 2024. 11. 29. 19:24

쿠키(Cookie)
    웹 브라우저가 보관하고 있는 데이터(로컬에)        
    웹 서버에 요청을 보낼 때 쿠키를 헤더에 담아 전송
    웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키 전송

    장단점
    - 클라이언트의 특정 폴더에 정보를 저장하므로 서버 부하 낮음
    - 데이터 저장 용량의 한계
    - 일반 사용자가 브라우저 설정에서 쿠키 차단을 사용하면 사용 불가
    - 정보가 사용자 PC에 저장되므로 보안 위협 존재

    - 동작 방식
    1) 쿠키 생성 : 웹 서버가 쿠키를 생성하고 response에 쿠키를 담아서
                  웹 브라우저에 전송
    2) 쿠키 저장 : 웹 브라우저는 응답에 있는 쿠키를
                  메모리 또는 디스크에 저장 
    3) 쿠키 전송 : 웹 브라우저는 쿠키 요청이 올 때마다
                  웹 서버에 전송

 

☆ Code

 

★ cookie

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Create Cookie</title>
</head>
<%
	Cookie cookie = new Cookie("id", "Watermelon");
	response.addCookie(cookie);
	cookie = new Cookie("id2", "Strawberry");
	response.addCookie(cookie);
%>
<body>
	<h1>Cookie Creation</h1>
	<hr>
	<a href="10_get_cookie.jsp">Send Cookie</a>
</body>
</html>

 

★ get_cookie

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Display & Modify Cookie</title>
</head>
<%
	String id = "";
	String cookie_check = request.getHeader("Cookie");
	System.out.println("Cookie Check Result : " + cookie_check);
	
	if(cookie_check != null){
		System.out.println("[GetCookie] Cookie(s) found");
		Cookie[] cookies = request.getCookies();
		for(Cookie cookie : cookies){
			System.out.println("[GetCookie] " + cookie.getName() + ":" + cookie.getValue());
			if(cookie.getName().equals("id2")){
				id = cookie.getValue();
				break;
			}
		}	
	}
%>
<body>
	<h1>Get Cookie</h1>
	<hr>
	<h1>User ID : <%=id%></h1>
	<a href="10_delete_cookie.jsp">Delete Cookie</a>
</body>
</html>

 

★ delete_cookie

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Delete Cookie</title>
</head>
<%
	String cookie_check = request.getHeader("Cookie");
	System.out.println("Cookie Check Result : " + cookie_check);
	
	if(cookie_check != null){
		System.out.println("[GetCookie] Cookie(s) found");
		Cookie[] cookies = request.getCookies();
		for(Cookie cookie : cookies){
			cookie.setMaxAge(0);
			response.addCookie(cookie);
		}	
	}
%>
<body>
	<h1>Delete All Cookies OK</h1>
</body>
</html>

'JSP' 카테고리의 다른 글

JSP ajax  (0) 2024.11.30
JSP 세션  (1) 2024.11.30
JSP forward 태그  (0) 2024.11.28
JSP 액션태그  (0) 2024.11.27
JSP 스크립트 태그  (0) 2024.11.22