JQuery에서 쿠키를 저장하고 Spring Controller에서 저장된 쿠키를 체크하는 기능이 필요할 때가 있다.

일단, JQuery에서 쿠키를 처리하는 플러그인을 받는다. jquery-cookie 에서 다운받거나

bower를 쓴다면 아래 처럼 실행한다.

bower install jquery.cookie

JS파일에서 어떤 응답을 처리한 다음에 쿠키를 저장한다면 다음과 같이 하면 된다.

$.ajax({
    type : "POST",
    dataType : "JSON",
    data: JSON.stringify(param),
    contentType : "application/json; charset=UTF-8",
    url: '/test/testurl'
    error : function() {
        alert('error');
    },
    success : function(result) {
        $.cookie('testCookie', '12345');       
    }
});

testCookie라는 값에 “12345” 라는 문자열을 저장했다. 기타 옵션은 jquery-cookie github 사이트에서 확인하면 된다.

다음은 Spring Controller에서 cookie를 체크하는 기능이다.

@RequestMapping(value = "/check/cookie", method = RequestMethod.GET)
protected String cookieCheck(@CookieValue(value="testCookie", required=false, defaultValue="") String testCookie) {            
    System.out.println("testCookie=="+testCookie);
    return "/test.jsp";
}

@CookieValue 어노테이션을 사용한다. 지정한 쿠키값이 없을 경우에 예외가 발생하지 않도록 required를 false로 조정할 수 있다. 또한 defaultValue로 쿠키값이 없을 경우 초기값을 지정할 수 있다. 이렇게 하면 간단히 JQuery하고 Spring간의 Cookie를 연동할 수 있게 된다.