-> 웹 브라우저가 보관하는 데이터
웹 브라우저는 웹 서버에 요청을 보낼 때 쿠키를 함께 전송하며, 웹 서버는 웹 브라우저가 전송한 쿠키를 사용해서 필요한 데이터를 읽을 수 있다. 쿠키는 웹 서버와 웹 브라우저 양쪽에서 생성할 수 있는데, JSP에서 생성하는 쿠키는 웹 서버에서 생성하는 쿠키이다. 쿠키의 동작 방식은 아래와 같다.
<%
// 쿠키 생성
Cookie userCookie = new Cookie("user_id", "12345");
// 쿠키 속성 설정
userCookie.setMaxAge(86400); // 24시간 동안 유효
userCookie.setSecure(true);
userCookie.setHttpOnly(true);
userCookie.setPath("/");
// 쿠키를 HTTP 응답에 추가
response.addCookie(userCookie);
%>
Cookie[] cookies = request.getCookies();
request.getCookies() 메서드는 Cookie 배열을 리턴한다. 이 메서드는 읽어올 쿠키가 존재하지 않으면 null을 리턴한다. null 여부를 확인하지 않고 쿠키를 사용하면 NullPointerException이 발생하므로, 항상 null 여부를 확인하자.
<%@ page contentType="text/html; charset=utf-8" %>
<%@ page import = "java.net/URLEncoder" %>
<%
Cookie cookie1 = new Cookie("id","modvirus");
cookie1.setDomain(".somehost.com");
response.addCookie(cookie1);
Cookie cookie2 = new Cookie("only","onlycookie");
response.addCookie(cookie2);
Cookie cookie3 = new Cookie("invalid","invalidcookie");
cookie3.setDomain("javacan.tistory.com");
response.addCookie(cookie3);
%>
<html>
<head><title> 쿠키 생성 </title></head>
<body>
다음과 같이 쿠키를 생성했습니다.〈br〉
<%= cookiel.getName() %>=<%= cookiel.getValue() %>
[<%= cookie1.getDomain() %>]
<br>
<%= cookie2.getName() %>=<%= cookie2.getValue() %>
[<%= cookie2.getDomain() %>]
<br>
<%= cookie3.getName() %>=<%= cookie3.getValue() %>
[<%= cookie3.getDomain() %>]
</body>
</html>
Cookie cookie = new Cookie("name","value");
cookie.setPath("/chap09");
쿠키이름=쿠키값; Domain=도메인값; Path=경로값; Expires=GMT형식의 만료일시
예를 들어, 로그인에 성공하면 "AUTH"라는 쿠키를 생성하고, "AUTH" 쿠키가 존재하면 로그인한 상태라고 인식하는 것이다.