有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我不熟悉java web开发。我已经创建了一个部署在Tomcat 7上的servlet/jspweb应用程序。经过身份验证后,用户只需浏览几个有自己表单的页面。输入存储为会话属性,并在注销前显示在确认上

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

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

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

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


共 (2) 个答案

  1. # 1 楼答案

    确保使用请求。getSession(布尔b)方法,而不是请求。getSession()

    所有登录用户应该可以访问的页面都应该调用请求。getSession(错误)

    若对该方法的调用未返回任何会话,则应将用户重定向至登录

  2. # 2 楼答案

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

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

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

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