如何防止会话属性在服务器上持久存在?

时间:2015-07-31 06:02:33

标签: java jsp session tomcat duplicate-data

我是java web开发的新手。我创建了一个部署在servlet/jsp上的Tomcat 7 Web应用程序。在身份验证之后,用户会浏览具有自己的表单的少数页面。输入存储为会话属性,并在注销前显示在确认中。

对于注销,我使用了session.invalidate() and sendRedirect("Logout.jsp")

如果我再次运行该应用程序,它将返回我的新输入,但它也将复制所有旧的会话输入。

我已禁用会话持久性并放置上下文cachingAllowed="false"

似乎所有会话属性都存储在服务器内存中。这个问题是由服务器配置引起的吗?

2 个答案:

答案 0 :(得分:0)

确保使用request.getSession(boolean b)方法而不是request.getSession()

登录用户应该可以访问的所有页面都应该调用request.getSession(false)

如果对此方法的调用未返回任何会话,则应将用户重定向到登录。

答案 1 :(得分:0)

确保您的信息存储在会话中,如下所示:

HttpSession session = request.getSession();
session.setAttribute("info", info);

当你想删除它时,你应该这样做:

HttpSession session = request.getSession();
session.removeAttribute("info");