Cookie cookie = new Cookie("이름(key)", "값(value)");
Cookie userId = new Cookie("userId", req.getParameter("userId");
Cookie name = new Cookie("name", URLEncoder.encode(req.getParameter("name"), "UTF-8"));
cookie.setMaxAge(초)
userId.setMaxAge(60*60*24); => 1일
name.setMaxAge(60*60*48); => 2일
resp.addCookie(cookie);
resp.addCookie(userId);
resp.addCookie(name);
private void setCookieExam(HttpServletRequest req, HttpServletResponse resp) throws IOException {
// 쿠키 생성하기
Cookie userId = new Cookie("userId", req.getParameter("userId"));
// 쿠키값에 한글을 사용시 인코딩 처리를 해준다.
Cookie name = new Cookie("name", URLEncoder.encode(req.getParameter("name"),"UTF-8"));
// URL인코더로 인코딩하면 모양이 %로 되있음 (%16진수 %16진수 .. )그래서 다른말로 퍼센트인코딩이라고도 함
// 쿠키 소멸 시간 설정 (초단위) => 지정하지 않으면 웹브라우저를 종료할 때 쿠키를 함께 삭제한다.
userId.setMaxAge(60*60*24); // 1일
name.setMaxAge(60*60*48); // 2일
// 응답헤더에 쿠키 추가하기
resp.addCookie(userId);
resp.addCookie(name);
// 응답헤더에 인코딩 및 Content-Type 설정
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
String title = "쿠키설정 예제";
out.println("<!DOCTYPE html>\n"
+ " <html>\n"
+ " <head>\n"
+ " <title>" + title + "</title>"
+ " </head>\n"
+ " <body>"
+ " <h1 align=\"center\">" + title + "<h1>\n"
+ " <ul>\n "
+ " <li><b>ID</b>: "
+ req.getParameter("userId") + "</li>\n"
+ " <li><b>이름</b>: "
+ req.getParameter("name") + "</li>\n"
+ " </ul>\n"
+ " </body>"
+ " </html>");
}
private void readCookieExam(HttpServletRequest req, HttpServletResponse resp) throws IOException {
Cookie cookie = null;
// 현재 도메인에서 사용중인 쿠키정보배열 가져오기
Cookie[] cookies = req.getCookies();
// 응답헤더에 인코딩 및 Content-Type 설정
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
String title = "쿠키정보 읽기 예제";
out.println("<!DOCTYPE html>\n"
+ "<html>\n"
+ "<head><title>" + title + "</title></head>\n"
+ "<body>\n");
if(cookies != null) {
out.println("<h2>" + title + "</h2>");
for(int i = 0 ; i < cookies.length ; i++) {
cookie = cookies[i];
out.println("name : " + cookie.getName() + "<br>");
out.println("value : " + URLDecoder.decode(cookie.getValue(),"UTF-8") + "<br>");
out.println("<br>");
}
}else {
out.println("<h2> 쿠키정보가 없습니다.<h2>");
}
out.println("</body>");
out.println("</html>");
}
private void deleteCookieExam(HttpServletRequest req, HttpServletResponse resp) throws IOException {
Cookie cookie = null;
// 현재 도메인에서 사용중인 쿠키정보배열 가져오기
Cookie[] cookies = req.getCookies();
// 응답헤더에 인코딩 및 Content_Type 설정
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
String title = "쿠키정보 삭제 예제";
out.println("<!DOCTYPE html>\n"
+ " <html>\n"
+ " <head>"
+ " <title>" + title + "</title>"
+ " </head>\n"
+ " <body>\n");
if(cookies != null) {
out.println("<h2>" + title + "</h2>");
for(int i = 0 ; i < cookies.length ; i++) {
cookie = cookies[i];
if(cookie.getName().equals("userId")) {
// 쿠키 제거하기
cookie.setMaxAge(0);
resp.addCookie(cookie);
out.println("삭제한 쿠키 : " + cookie.getName() + "<br>");
}
out.print("name : " + cookie.getName() + ", ");
out.print("value : " + URLDecoder.decode(cookie.getValue(),"UTF-8"));
out.println("<br>");
}
}else {
out.println("<h2> 쿠키정보가 없습니다.<h2>");
}
out.println("</body>");
out.println("</html>");
}