Java struts.service.static=true,struts.service.static.browserCache=false不工作

Java struts.service.static=true,struts.service.static.browserCache=false不工作,java,struts2,Java,Struts2,使用struts.service.static=true和struts,service.static.browserCache=false标记的浏览器缓存不起作用 我有一个要求,当用户注销并单击“后退”按钮时,它会显示欢迎屏幕,以避免我在Struts.xml <constant name="struts.serve.static" value="true" /> <constant name="struts.serve.static.browserCache" va

使用
struts.service.static=true
struts,service.static.browserCache=false
标记的浏览器缓存不起作用 我有一个要求,当用户注销并单击“后退”按钮时,它会显示欢迎屏幕,以避免我在
Struts.xml

   <constant name="struts.serve.static" value="true" />
   <constant name="struts.serve.static.browserCache" value="false" />

但它仍然没有发生,最后我尝试放置
struts.service.static=true

struts,serve.static.browserCache=false
在消息资源属性文件中,它不起作用。您能帮助我解决这个问题吗?即使它不起作用

上面的常量将被S2用来从jar内部发送静态内容,而S2将写入头来告诉浏览器缓存内容,以便后续请求浏览器不需要从服务器获取内容。这是提高网站速度的标准方法,与浏览器后退按钮无关

注销用户时,请确保会话无效。您面对的是浏览器的缓存副本

当您请求页面浏览器的副本时,请检查其缓存是否相同,如果是,则代替请求服务器从其缓存中提供内容。只需单击要求用户登录的任何链接,您将看到该链接不起作用,因为在这种情况下,浏览器正在请求服务器提供内容

如果要控制此操作,可以将缓存控制标头设置为请求浏览器不缓存内容,例如

response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
请浏览此线程以了解详细信息


S2将使用上述常量从jar内部为静态内容提供服务器,S2将写入标头以通知浏览器缓存内容,以便在后续请求中,浏览器无需从服务器获取内容。这是一种标准的网站加速方法,与浏览器返回无关按钮

注销用户时,请确保会话无效。您面对的是浏览器的缓存副本

当您请求页面浏览器的副本时,请检查其缓存是否相同,如果是,则代替请求服务器从其缓存中提供内容。只需单击要求用户登录的任何链接,您将看到该链接不起作用,因为在这种情况下,浏览器正在请求服务器提供内容

如果要控制此操作,可以将缓存控制标头设置为请求浏览器不缓存内容,例如

response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
请浏览此线程以了解详细信息


您的问题说您将“service.static.browserCache”设置为“false”,而您的代码片段说它在struts.xml中设置为true,您到底想做什么?如果要缓存请求,请在struts.xml中,如果不想缓存请求,请执行“else”“@jay,这意味着您不想缓存您的响应。您如何确定响应是否已缓存,有任何具体的标题/观察结果吗?@jay我提到我的要求,即如果用户单击“后退”按钮,则“后退”按钮在注销后将不起作用,它将在未登录的情况下再次显示主屏幕。我想避免这种情况。据我所知,浏览器后退按钮功能是客户端浏览器的功能,struts 2无法处理。一个可能被证明有用的解决方法是拥有历史;所有页面的页眉中都有代码(理想情况下应该是整个应用程序中使用的单个文件/模板)。您的问题是将“service.static.browserCache”设置为“false”,而您的代码片段则是将struts.xml中的“service.static.browserCache”设置为true,您到底想做什么?如果要缓存请求,请在struts.xml中,如果不想缓存请求,请执行“else”“@jay,这意味着您不想缓存您的响应。您如何确定响应是否已缓存,有任何具体的标题/观察结果吗?@jay我提到我的要求,即如果用户单击“后退”按钮,则“后退”按钮在注销后将不起作用,它将在未登录的情况下再次显示主屏幕。我想避免这种情况。据我所知,浏览器后退按钮功能是客户端浏览器的功能,struts 2无法处理。一个可能被证明有用的解决方法是拥有历史;代码出现在所有页面的页眉中(理想情况下应该是整个应用程序中使用的单个文件/模板)。