1

大家,

我正在用 JSP 编写一个 Web 应用程序,我是 JSP 和 java 的新手,谁能告诉我如何摆脱浏览器缓存。

我将简要描述一下我的问题...从登录页面登录的用户被带到主页,会话已设置。当他们从主页单击注销时,他们在内部被带到注销页面,会话被破坏并且用户被重定向到登录页面。

现在的问题是当他们点击浏览器的后退按钮时,之前访问过的页面再次显示,虽然如果我触发主页或其他需要登录浏览器的访问页面,注销后重定向到登录页面,那很好,我唯一的问题是后退按钮。

我尝试过的代码片段如下:

    <script type="text/javascript">
    function noBack() { window.history.forward(); }
    noBack();
    window.onload = noBack;
    window.onpageshow = function (evt) { if (evt.persisted) noBack(); }
    window.onunload = function () { void (0); }
    </script>

<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">

    <%  
      response.setHeader("Cache-Control", "no-cache");  
      response.setHeader("Pragma", "no-cache");  
      response.setDateHeader("max-age", 0);  
      response.setDateHeader("Expires", 0);  
    %>

拜托,谁能帮帮我???:( :(

4

2 回答 2

0

我也遇到过这种情况,但事实证明后退按钮的设计不同。人们引用HTTP 1.1 标准前 10 个网页设计错误来解释让 Back 显示您加载的确切页面(未过期)很重要,即使它搞砸了注销功能。就像银行一样,警告用户在重要时关闭窗口。

于 2013-01-08T09:22:21.510 回答
0

用这个:

<%
    response.setHeader( "Cache-Control", "no-store, no-cache, must-revalidate");  //HTTP 1.1
    response.setHeader("Pragma","no-cache"); //HTTP 1.0
    response.setDateHeader ("Expires", -1); //prevents caching at the proxy server
%>

这是告诉浏览器不要缓存页面。您必须在不必缓存的每个页面中包含此代码。

但是请阅读页面。有一个完整的答案。

于 2014-02-20T10:11:34.080 回答