gpt4 book ai didi

java - Chrome 没有缓存

转载 作者:太空宇宙 更新时间:2023-11-04 13:01:56 24 4
gpt4 key购买 nike

我遇到了 JBOSS 和 Chrome 的问题。我们的应用程序使用标准 session 管理处理。

当用户使页面超过 session 超时限制,然后单击页面上的链接时,应用程序会将他们带回登录页面以重新登录。这正在按预期工作。问题是,当他们用户重新登录并转到与以前相同的页面并单击相同的链接时,Chrome 会将他们带回登录页面,即使他们刚刚登录。

如果我们在 Chrome 上手动清除缓存,然后返回页面,则链接可以正常工作。似乎 Chrome 缓存了带有此链接信息的页面,以便登录而不是它应该去的地方。

我们将以下内容添加到 jsp 页面,但它不起作用:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">

顺便说一句,这在 IE 上运行良好,但仅在 Chrome 上有效。

我们通过在 spring Controller 类本身中添加以下代码找到了解决该问题的方法:

    response.setHeader("Cache-Control","no-cache"); 
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", -1);

但这需要将此代码添加到我们拥有的每个 Controller 类中,并且并非我们拥有的所有应用程序都使用 spring。

是否有一个 JBOSS 服务器参数可以设置为强制没有缓存响应,或者我可以将此参数添加为 web.xml 中的属性?

我正在尝试找到一种简单的方法来做到这一点,而不必在很多地方进行更改。

我们在 JBOSS EAP 6.1 上使用 Java 和 Spring(还有 Struts)和 HTML5

谢谢

最佳答案

一种 Java 解决方案是创建一个 Filter 类或 Spring MVC 拦截器来管理发送回浏览器的所有请求/响应,浏览器会将 header 设置到所有响应中。

作为记录,如果您使用网络服务器将流量重定向到应用程序服务器,您也可以在其中设置这些变量,Apache 有一些模块来管理它。

关于java - Chrome 没有缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34861777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com