삶 가운데 남긴 기록 AACII.TISTORY.COM
쿠키 Cookie 본문
쿠키(Cookie)
클라이언트 단위로 상태정보를 유지해야 할 때 쿠키를 사용합니다.
예를들어 로그인 후 로그아웃 할 때까지 인증 상태를 유지 한다던지, 쇼핑몰 장바구니에 선택한 상품 정보들을 유지 한다던지 같은 유지 정보들을 관리합니다.
쿠키는 텍스트로 name=value 형태로 저장하며 만료 일자나 시간을 지정할 수 있습니다.
쿠키 저장(전송)
작업중인 패키지에 클래스 CookieTest.java를 생성합니다.
package net.aacii.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/cookie1")
public class CookieTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
Cookie c1 = new Cookie("id","guest");
c1.setPath("/");
resp.addCookie(c1);
Cookie c2 = new Cookie("code","0001");
c2.setMaxAge(60*60*3); //유효기간 3시간 설정
c2.setPath("/");
resp.addCookie(c2);
out.println("쿠키 전송 완료");
out.close();
}
}
테스트는 브라우저에서 http://localhost:8080/jsp/cookie1
를 입력하여 테스트 합니다.
쿠키 추출
CookieTest2.java 클래스를 생성합니다.
package net.aacii.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/cookie2")
public class CookieTest2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
Cookie[] list = req.getCookies();
for(int i = 0; list!=null && i < list.length; i++) {
out.println(list[i].getName()+":"+list[i].getValue()+"<br>");
}
out.close();
}
}
http://localhost:8080/jsp/cookie1 테스트후 http://localhost:8080/jsp/cookie2 를 테스트 해보면 /cookie1 에서 저장했던 쿠키의 name과 value 값을 가져오는 것을 확인할 수 있습니다.
728x90
'DEV&OPS > Java' 카테고리의 다른 글
세션을 이용한 로그인 (0) | 2022.06.14 |
---|---|
세션 Session (0) | 2022.06.14 |
ServletContext (0) | 2022.06.13 |
서블릿 설정(web.xml)과 변수 (0) | 2022.06.10 |
Method GET POST (0) | 2022.06.10 |