스프링 MVC의 HttpServletResponse
에있는 쿠키를 삭제하는 방법을 알고 싶습니다. 쿠키를 만들고 쿠키를 삭제할 로그인 방법이 있지만 작동하지 않습니다. 여기 서블릿 응답에서 쿠키 삭제
@RequestMapping(method = RequestMethod.POST)
public ModelAndView Login(HttpServletResponse response, String user, String pass) {
if (user != null && pass != null && userMapper.Users.get(user).getPass().equals(pass)){
Cookie cookie = new Cookie("user", user);
cookie.setPath("/MyApplication");
cookie.setHttpOnly(true);
cookie.setMaxAge(3600);
response.addCookie(cookie);
Map model = new HashMap();
model.put("user", user);
return new ModelAndView("home", "model", model);
}
return new ModelAndView("login");
}
@RequestMapping(value="/logout", method = RequestMethod.POST)
public ModelAndView Logout(HttpServletRequest request, HttpServletResponse response) {
Cookie[] cookies = request.getCookies();
for(int i = 0; i< cookies.length ; ++i){
if(cookies[i].getName().equals("user")){
//Cookie cookie = new Cookie("user", cookies[i].getValue());
//cookie.setMaxAge(0);
//response.addCookie(cookie);
cookies[i].setMaxAge(0);
response.addCookie(cookies[i]);
break;
}
}
return new ModelAndView("login");
}
내가에만 maxAge
을 변경할 필요하다고 생각하지만 브라우저에서 쿠키가 변경되지 않습니다. 나는 주석 처리 된 블록에서 같은 이름의 쿠키를 재 작성하려고 시도했으나 작동하지 않습니다.
시도해 보았습니다. cookie.setvalue ("") ?? –
가능한 [Java 서블릿에서 쿠키를 제거하는 방법] 복제본 (http://stackoverflow.com/questions/890935/how-do-you-remove-a-cookie-in-a-java-servlet) – skaffman
예, setValue ("")가 작동하지 않았습니다 ... – Cruz