【问题标题】:How to prevent session attributes from persisting on the server?如何防止会话属性在服务器上持续存在?
【发布时间】:2015-07-31 06:02:32
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 你确定数据在服务器内存,而不是浏览器内存?

标签: java jsp session tomcat duplicate-data


【解决方案1】:

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

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

如果调用这个方法没有返回任何会话,用户应该被重定向到登录。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      相关资源
      最近更新 更多