我正在使用java servlets / jstl
开发一个小项目我已经创建了一个带有会话的登录,我希望浏览器即使在浏览器缓存之后也能保持该会话。
我写了这段代码:
HttpSession session=request.getSession();
session.setMaxInactiveInterval(604800);
session.setAttribute("loggedOnUser", true);
我已将会话超时设置为一周。但每当我关闭浏览器并重新打开它时,我需要再次登录。当我查看浏览器的cookie时,包含sessionId的cookie在浏览器关闭时仍会过期。我认为“setMaxInactiveInterval”会将其更改为一周。有谁知道问题是什么?
答案 0 :(得分:3)
我建议设置该Cookie的最大年龄:
HttpSession session = request.getSession();
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(Integer.MAX_VALUE);
response.addCookie(cookie);
答案 1 :(得分:1)
当浏览器重新启动时,某些浏览器会删除cookie,这就是为什么在重新启动后创建新请求时服务器在请求中看不到cookie并将其视为新会话