【问题标题】:session.invalidate method is reloading the same page on back button [duplicate]session.invalidate 方法正在后退按钮上重新加载同一页面[重复]
【发布时间】:2015-06-15 16:29:08
【问题描述】:

在我的项目中,我使用 HttpSession 来维护用户状态。当我点击注销 servlet 的链接并成功注销时,但如果我按下返回按钮,它会再次重新加载配置文件页面。

LogoutServlet.java

HttpSession session=request.getSession(false);
session.invalidate();
response.sendRedirect("index.html");

LoginServlet.java

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

【问题讨论】:

  • 浏览器真的会重新加载页面,还是只是从缓存中显示?无论如何,为了进一步调试,配置文件页面(可能还有登录 servlet)的更多代码会很有用。

标签: session servlets


【解决方案1】:

我可以想象 3 个可能的原因:

  • 您使用的是单点登录系统(类似于 CAS),当您关闭会话时会自动重新连接 => 在这种情况下,您会显式断开与 SSO 的连接(不是最常见的问题)
  • 浏览器的后退按钮显示页面的缓存版本。您可以通过要求完全刷新页面来确认这一点 - 通常 Ctrl-F5 会这样做,但您会在 wikipedia => 上找到更多引用,在这种情况下,除了控制浏览器上的缓存配置和缓存参数之外,您无法做更多的事情页面(HTTP 标头过期)
  • 该 URL 包含对用户的引用并且可以公开访问:显示正常 => 如果您不希望这样,您应该使该页面仅供登录用户访问。

【讨论】:

    猜你喜欢
    • 2013-10-13
    • 1970-01-01
    • 2014-03-30
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多