我是java web开发的新手。我创建了一个部署在servlet/jsp
上的Tomcat 7
Web应用程序。在身份验证之后,用户会浏览具有自己的表单的少数页面。输入存储为会话属性,并在注销前显示在确认中。
对于注销,我使用了session.invalidate() and sendRedirect("Logout.jsp")
。
如果我再次运行该应用程序,它将返回我的新输入,但它也将复制所有旧的会话输入。
我已禁用会话持久性并放置上下文cachingAllowed="false"
。
似乎所有会话属性都存储在服务器内存中。这个问题是由服务器配置引起的吗?
答案 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");