我正在使用struts.serve.static=true
和struts.serve.static.browserCache=false
,但后退按钮即使在注销后也能正常工作。当我点击后退按钮时,它将转到上一个屏幕。我该如何解决这个问题?
答案 0 :(得分:2)
S2将使用上述常量告诉浏览器是否需要缓存静态内容。
struts.serve.static=true
上面的属性由FilterDispatcher
struts.serve.static.browserCache=true
也使用FilterDispatcher
,仅在struts.serve.static=true
时才有效。
关于浏览器后退按钮,我们无法禁用浏览器后退按钮作为其浏览器API的一部分,当您点击后退按钮时,浏览器将从其缓存中提供内容,而不会访问服务器。
您可以要求浏览器不使用缓存控制标头来缓存内容,而是在浏览器上尊重它们。在JSP中使用以下代码
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Expires", "0");
或者,您可以创建一个Interceptor并使用所需的操作对其进行配置,以便可以设置标头。 有关如何在S2中控制缓存的更多详细信息,请查看以下主题
答案 1 :(得分:1)
创建自定义拦截器以将标头添加到每个response
比向每个jsp添加response.setHeader
更简单(如果您使用的是Struts2)。
请检查this link以获得一个很好的例子。