我正在编写我的SPring MVC Web应用程序。
我已将会话时间设置为10080分钟,等于1周。 现在我想让用户每次打开浏览器时都保持登录状态:
sessionService.setcurrentUser(myuser);
HttpSession session = request.getSession();
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(timeout);
response.addCookie(cookie);
我的Cookie Max Age应该与会话超时相同吗?
cookie.setMaxAge(10080);
这是好的做法吗?
答案 0 :(得分:7)
您应该在web.xml
中配置它,而不是通过黑客攻击默认会话cookie。
<session-config>
<session-timeout>10080</session-timeout>
</session-config>
请注意,您不应在会话中存储太多数据和/或服务器有足够的内存。
答案 1 :(得分:2)
以下帖子包含有趣的信息 就良好做法而言,您可能需要考虑两件事:
答案 2 :(得分:1)
您使用Cookie来引用您的会话ID。如果cookie的超时低于会话,则它将不再找到您的会话。因此,建议将cookie的超时设置为至少超出会话的超时时间。