我在用struts.serve.static=true
and struts.serve.static.browserCache=false
,但后退按钮即使在注销后也能工作。当我单击后退按钮时,它将转到上一个屏幕。我该如何解决这个问题?
S2 将使用上述常量来告诉浏览器是否需要缓存静态内容。
struts.serve.static=true
以上属性由以下人员使用FilterDispatcher
- 如果为 true,则 Struts 从其 jar 内提供静态内容。
- 如果为 false,则静态内容必须在 /struts 中可用
also struts.serve.static.browserCache=true
被使用FilterDispatcher
并且只有在以下情况下才会起作用struts.serve.static=true
.
- 如果 true -> Struts 将写出静态内容的标头,以便它们
由 Web 浏览器缓存(使用 Date、Cache-Content、Pragma、Expires)
标题)。
- 如果为 false -> Struts 将写出静态内容的标头,以便它们
不被网络浏览器缓存(使用 Cache-Content、Pragma、Expires
标题)
简而言之,这两个常量都是告诉浏览器是否需要缓存 S2 提供的静态内容的一种方式。
关于浏览器后退按钮,我们无法禁用浏览器后退按钮,因为它是浏览器 API 的一部分,当您点击后退按钮时,浏览器将从其缓存中提供内容,而无需访问服务器。
您可以使用缓存控制标头要求浏览器不要缓存内容,但这取决于浏览器是否尊重它们。在 JSP 中使用以下代码
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
或者,您可以创建一个拦截器并使用所需的操作对其进行配置,以便可以设置标头。
请通过以下线程了解有关如何控制 S2 中的缓存的更多详细信息
- 在 Struts2 中处理浏览器后退-前进按钮 http://struts.1045723.n5.nabble.com/Handling-Browser-Back-Forward-Button-in-Struts2-td3491225.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)