프로그래밍/web
[Spring]Cookie와 활용법(읽기, 생성 및 저장)
good programmer
2021. 9. 20. 17:35
쿠키란 ?
쿠키란 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다. (출처: 위키백과)
쿠키의 구조
유효기간 : 유효기간이 지나면 쿠키 데이터가 소멸됨.
도메인 : 현재 쿠키가 어떤 서버로 전송되어져야 하는지 지정하는 속성.
path : path로 지정한 곳에서 쿠키 데이터르 읽을 수 있음. 디폴트 값으로 쿠키를 생성한 곳에서만 쿠키를 읽을 수 있게 되어있음.
Spring Controller에서 쿠키 생성.
@RequestMapping("/createCookie")
public String createCookie(HttpServletResponse response) {
logger.info("쿠키 생성");
Cookie cookie = new Cookie("useremail","blueskii");
cookie.setDomain("localhost");
cookie.setPath("/");
// 30초간 저장
cookie.setMaxAge(30*60);
cookie.setSecure(true);
response.addCookie(cookie);
return "redirect:/ch05/content";
}
4. 쿠키 객체 생성
6,7,9,10 쿠키 객체 domain, path, expire, secure 설정.
11 쿠키 객체를 response에 담아서 보내줌.
크롬에서 inspect -> application 에서 쿠키가 정상적으로 생성된 것 확인 가능.
spring controller에서 쿠키 읽기
방법 1)
@RequestMapping("/getCookie1")
public String getCookie1(@CookieValue String useremail, @CookieValue("useremail") String umail) {
logger.info("실행");
logger.info(umail);
return "redirect:/ch05/content";
}
2 annotation을 통해서 cookieValue를 손쉽게 가져올수 있음.
방법 2)
@RequestMapping("/getCookie2")
public String getCookie2(HttpServletRequest request) {
Cookie[] list = request.getCookies();
for(Cookie cookie:list) {
if(cookie.getName().equals("useremail")) {
logger.info(cookie.getValue());
}
}
return "redirect:/ch05/content";
}
httpServletRequest 객체를 통해서 쿠키 리스트를 가져오고, 그 중에서 name을 생성할때 설정한 useremail을 통해서 가져올 수 있음.
JavaScript에서 쿠키 읽기
function getCookie() {
console.log(document.cookie);
}