JSP/개념공부

JSP 쿠키(Cookie) 생성, 수정, 삭제 방법

푸코잇 2023. 6. 27. 17:26
728x90

웹페이지에서 로그인을 하다 보면 종종 아이디 저장이라는 버튼을 볼 수 있다.

이때 아이디 저장이 활성화되면 해당 웹페이지를 열었을 때 이전에 로그인했던 아이디가 적혀있는 걸 볼 수 있다.

이는 JSP에서 쿠키(Cookie)를 이용하여 구현할 수 있다.

 

쿠키(Cookie)란?

 

웹 브라우저가 보관하고 있는 데이터로 웹 서버에 요청을 보낼 때 헤더에 담아서 전송한다.

쿠키가 삭제되기 전까지 쿠키에 응답 데이터를 담아 전송하게 된다.

 

쿠키(Cookie) 장단점

 

  • 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있다.
  • 정보가 사용자 컴퓨터(로컬)에 저장되기 때문에 보안에 위협받을 수 있다.
  • 사용자 컴퓨터 사양에 따라 데이터 저장 용량에 한계가 있다.
  • 일반 사용자가 브라우저 내의 기능인 "쿠키 차단"을 사용했을 경우 쿠키를 받을 수 없다.

 

쿠키(Cookie) 동작방식

 

  • 쿠키 생성 : 웹 서버에서 쿠키를 생성하고 쿠키에 응답 데이터를 담아서 웹 브라우저에 전송한다.
  • 쿠키 저장 : 웹 브라우저는 응답 데이터를 담고있는 쿠키를 메모리나 파일로 저장한다.
  • 쿠키 전송 : 웹 브라우저는 쿠키 요청이 있을때마다 웹 서버에 전송한다.

 

쿠키(Cookie) 사용법

 

  • setCookie.jsp (쿠키 생성)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	/* 쿠키 생성 */ 
	Cookie cookie = new Cookie("id", "apple");
	response.addCookie(cookie);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 생성</title>
</head>
<body>
	<h3>쿠키 생성</h3>
	<a href="getCookie1.jsp">쿠키 전송</a>
</body>
</html>

 

  • getCookie1.jsp (쿠키 출력 및 수정)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 출력 및 수정</title>
</head>
<body>
	<!-- 쿠키 출력 -->
	<%
		String cookie_check = request.getHeader("Cookie");
		if(cookie_check != null){
			Cookie[] cookies = request.getCookies();
			for(Cookie cookie : cookies){
				if(cookie.getName().equals("id")){
				%>
				<p>아이디 : <%=cookie.getValue()%></p>
				<%	
				}
			}
	%>
	
	<!-- 쿠키 수정 -->
	<%
			for(Cookie cookie : cookies){
				if(cookie.getName().equals("id")){
					Cookie new_cookie = new Cookie("id", "banana");
					response.addCookie(new_cookie);
				}
			}
		}
	%>
	<a href="getCookie2.jsp">변경된 쿠키 값 확인하기</a>
</body>
</html>
  • getCookie2.jsp (쿠키 수정 확인 및 삭제)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 수정 확인 및 삭제</title>
</head>
<body>
	<!-- 쿠키 수정 확인 -->
	<%
		String cookie_check = request.getHeader("Cookie");
		if(cookie_check != null){
			Cookie[] cookies = request.getCookies();
			for(Cookie cookie : cookies){
				if(cookie.getName().equals("id")){
				%>
				<p>아이디 : <%=cookie.getValue()%></p>
				<%
				}
			}
			/* 쿠키 삭제 */
			for(Cookie cookie : cookies){
				cookie.setMaxAge(0);
				response.addCookie(cookie);
			}
		}
	%>
	<a href="delete_check.jsp">쿠키 삭제 확인</a>
</body>
</html>
  • delete_check.jsp(쿠키 삭제 확인)
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 삭제 확인</title>
</head>
<body>
	<%
		String cookie_check = request.getHeader("Cookie");
		if(cookie_check == null){
	%>
	<p>쿠키가 삭제되었습니다.</p>
	<%
		}else{
	%>
	<p>쿠키가 삭제되지 않았습니다. 기존 쿠키를 모두 지운 후 다시 시도해보세요!</p>
	<%
		}
	%>
</body>
</html>

 

  • 실행결과

 

setCookie.jsp
getCookie1.jsp
getCookie2.jsp
delete_check.jsp

 

'JSP > 개념공부' 카테고리의 다른 글

JSP EL과 JSTL 이란?  (0) 2023.08.06
JSP 세션(Session)이란?  (0) 2023.07.25
JSP Ajax GET 방식과 POST 방식  (0) 2023.06.24
JSP Ajax(Asynchronus Javascript and XML)란?  (0) 2023.06.08
JSP GET 방식과 POST 방식 차이  (0) 2023.06.07