我正在尝试将最新时间保存在Cookie中。因此,在每次控制器调用之后,我都使用HandlerInterceptor的postHandle来拦截调用。我正在更新cookie中的值。但价值观没有更新。任何人都知道它为什么不起作用。
代码:
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler, ModelAndView ex)
throws Exception {
boolean isSet = true;
if (request.getSession().getAttribute("userId") != null){
for (Cookie cookies: request.getCookies()) {
if ("RequestTime".equals(cookies.getName())) {
isSet = false;
cookies.setValue(Long.toString(System.currentTimeMillis()));
response.addCookie(cookies);
}
}
if(isSet){
Cookie cookie = new Cookie("RequestTime", Long.toString(System.currentTimeMillis()));
response.addCookie(cookie);
}
}
}
答案 0 :(得分:0)
当你创建cookie时,你应该设置cookie的路径,当你想在项目中共享这个cookie时,你应该将cookie路径设置为“/”,如
if (request.getSession().getAttribute("userId") != null){
Cookie cookie = new Cookie("RequestTime",Long.toString(System.currentTimeMillis()));
cookie.setPath("/")
response.addCookie(cookie); }
默认Cookie路径是当前请求网址。
注意:如果您想要共享来自不同子域的cookie,您还应该设置cookie域。
cookie.setDomain(".test.com")