본문 바로가기
Spring

[스프링] Cookie 사용하기(@CookieValue, HttpServletResponse)

by jeonghaemin 2020. 12. 1.
728x90

쿠키 생성

  • 쿠키를 생성하려면 파라미터에 HttpServletResponse 객체가 필요하다.
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;

@Controller
@RequestMapping("/hello")
public class HelloController {
    @PostMapping
    public String submit(HttpServletResponse response) {

      //쿠키  객체 생성, "cookieName"이라는 이름으로 쿠키를 생성하고, 그 값은 "cookieValue"로 설정
      Cookie rememberCookie = new Cookie("cookieName", "cookieVlaue");

      // 쿠키 경로 설정, "/"는 모든 경로에서 사용하겠다는 뜻
      rememberCookie.setPath("/");

      // 쿠키를 유지할 시간 설정(단위 : 초)
      rememberCookie.setMaxAge(60*60*24*30); // 30일 동안 쿠키 유지.

      response.addCookie(rememberCookie);

      return "hello";

    }

}

쿠키 전달 받기

  • @CookieValue 애노테이션을 이용하여 쿠키를 전달 받을 수 있다.
  • value 속성을 전달 받을 쿠키의 이름을 지정한다.
  • required 속성을 true로 지정 시, value 속성의 이름을 가진 쿠키가 존재하지 않을 시에 스프링 MVC는 익셉션을 발생시킨다.
import org.springframework.web.bind.annotation.CookieValue;
import javax.servlet.http.Cookie;

@Controller
@RequestMapping("/hello")
public class HelloController {
    @GetMapping
    public String form(@CookieValue(value = "cookieName", required = false) Cookie coookie) {

        //이름이 "cookieName"인 쿠기가 존재한다면?
        if(cookie != null) {

              //cookieValue 변수에 쿠키 값을 저장한다.
             String cookieValue = cookie.getValue();         
        }

        return "hello";
    }
}

댓글