浏览器重启后恢复浏览器会话(重复Cookie问题)

时间:2018-05-15 15:38:10

标签: java hibernate spring-mvc session cookies

我希望浏览器在浏览器重启后恢复我的Web应用程序会话。 我使用以下代码来执行此操作:

HttpSession browserSession = request.getSession();
Cookie cookie = new Cookie("SESSION", browserSession.getId());
cookie.setMaxAge(Integer.MAX_VALUE);
response.addCookie(cookie);

在创建上述SESSION cookie之前,运行我的应用程序时已存在SESSION cookie。

只有当我将其名称命名为“SESSION”时才会恢复浏览器会话,如果我使用其他名称命名,则会创建cookie并且即使我重新启动浏览器但仍未恢复应用会话,它仍然存活。

最初我尝试获取并设置现有的“SESSION”cookie值和最大年龄,但它不起作用。 如果我使用上面的代码但是有2个“SESSION”cookie,我可以恢复浏览器会话。 有没有办法只保留1个“SESSION”cookie? 或者我的方法是错的?

1 个答案:

答案 0 :(得分:0)

你的方法是对的。不要担心重复的cookie,因为会自动删除浏览器会话。而另一个(您将年龄设置为Integer.MAX_VALUE)将保留在cookie数据库中。

重新启动浏览器后再次访问该站点时,它只有1个SESSION cookie,服务器肯定会分配给定id的特定会话。

在Apache Tomcat 8.0中测试