如何使用java清除浏览器缓存

如何使用java清除浏览器缓存,java,guice-servlet,Java,Guice Servlet,我在治疗过程中遇到了问题。当我注销会话时 结束,但当按下浏览器后退按钮时,我进入上一页。我正在使用JSPServlet技术,下面给出了我的注销代码 request.getSession().invalidate(); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); response.s

我在治疗过程中遇到了问题。当我注销会话时 结束,但当按下浏览器后退按钮时,我进入上一页。我正在使用JSPServlet技术,下面给出了我的注销代码

                    request.getSession().invalidate();
        response.setHeader("Cache-Control","no-cache"); 
        response.setDateHeader("Expires", 0);
        response.setHeader("Pragma","no-cache"); 
        response.sendRedirect("home.jsp");
谁能告诉我问题出在哪里?这个问题的解决方案是什么

                    request.getSession().invalidate();
        response.setHeader("Cache-Control","no-cache"); 
        response.setDateHeader("Expires", 0);
        response.setHeader("Pragma","no-cache"); 
        response.sendRedirect("home.jsp");
<script>
    history.forward();
 </script>

它将解决您的后退按钮问题。

是否仅在注销页面上设置缓存头?如果是这样,您需要将它们放在每个页面上,因为您来自的页面没有它们,并且将被缓存。

编写代码如下:

                    request.getSession().invalidate();
        response.setHeader("Cache-Control","no-cache"); 
        response.setDateHeader("Expires", 0);
        response.setHeader("Pragma","no-cache"); 
        response.sendRedirect("home.jsp");
     //...
     response.setHeader("Cache-Control","no-cache"); //Forces caches to obtain a new copy of the page from the origin server
     response.setHeader("Cache-Control","no-store"); //Directs caches not to store the page under any circumstance
     response.setDateHeader("Expires", 0); //Causes the proxy cache to see the page as "stale"
     response.setHeader("Pragma","no-cache"); //HTTP 1.0 backward compatibility

     //can check userId or something likes this.In this sample, i checked with userName.
     String userName = (String) session.getAttribute("User");
     if (null == userName) {
         request.setAttribute("Error", "Session has ended.  Please login.");
         RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
         rd.forward(request, response);
    }

我已经使用了这个,但我没有工作。你需要刷新页面才能生效。请注意,通常只有当浏览器窗口关闭时,会话才会真正结束。重新设计页面后,它也不起作用。请尝试使用session.removeValue()方法暂时删除一个值。通过传递需要删除的值的字符串标识符。试着让我知道你能给我完整的密码吗?