Cookie cookie = new Cookie(키, 값);
cookie.setMaxAge(유지시간_초단위);
response.addCookie(cookie);
2. 클라이언트의 Cookies 폴더에 파일로 저장된다.
3. 저장한 쿠키 데이터를 적용 시킬 페이지에서 쿠키를 불러온다.
Cookie[] cookies = request.getCookies();
for(int i=0; i<cookies.length; i++) {
String key = cookies[i].getName();
if (key.equals(키)) {
String value = cookies[i].getValue();
}
}
예제) ID를 입력 받고 ID저장 체크 박스를 클릭 시 쿠키에 기록되는 것을 확인한다.
LoginProcess.java
package com.study;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginProcessServlet extends HttpServlet {
public void doPost(HttpServletRequest _request, HttpServletResponse _response)
throws IOException, ServletException {
_request.setCharacterEncoding("EUC-KR");
String id = _request.getParameter("id");
String pw = _request.getParameter("pw");
String id_chk = _request.getParameter("id_chk"); // on 또는 null 값이 온다.
System.out.println("ID : " + id);
System.out.println("PW : " + pw);
System.out.println("ID저장 : " + id_chk);
// DB에 ID, PW가 있는지 확인
// ID가 체크되어 있다면
if (id_chk != null && id_chk.trim().equals("on")) {
// 쿠키에 기록하는 작업을 수행
Cookie cookie = new Cookie("id", id);
cookie.setMaxAge(60*50*24*365); // 1년으로 설정
_response.addCookie(cookie);
} else {
Cookie cookie = new Cookie("id", id);
cookie.setMaxAge(0); // 0으로 설정 시 쿠키 설정을 하지 않는다는 의미
_response.addCookie(cookie);
}
_response.sendRedirect("main.htm");
}
}