2015-06-15 56 views
0

在我的项目中,我使用HttpSession来维护用户状态。当我点击链接注销servlet并成功注销时,如果我按回按钮,它会重新加载配置文件页面。session.invalidate方法重新加载后面的同一页按钮

LogoutServlet.java

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

LoginServlet.java

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

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

回答

0

我能想象3个可能的原因:您正在使用单点登录

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