如何在struts2中禁止缓存?

在我的Web应用程序中,当用户注销时,他不应该访问他以前在登录时查看的页面。但是,由于浏览器缓存,他可以在单击后退按钮时查看这些页面。

我定义了一个Interceptor来处理这个:

public String intercept(ActionInvocation invocation) throws Exception { // TODO Auto-generated method stub final ActionContext context = invocation.getInvocationContext(); HttpServletResponse response = (HttpServletResponse)context.get(StrutsStatics.HTTP_RESPONSE); if(response!=null){ response.setHeader("Cache-control", "no-cache, no-store"); response.setHeader("Pragme", "no-cache"); response.setHeader("Expires", "-1"); } return invocation.invoke(); } 

struts.xml

         

添加此内容后,我运行应用程序时出现404错误。

我尝试在页面中添加响应标头:

  

但是,必须逐个将它添加到所有页面,这将是乏味的。 此外,用户可以始终重新提交表单,并且无需实际输入登录凭据即可再次访问这些页面。

理想情况下,我应该做些什么来阻止浏览器缓存?

更改此代码

 response.setHeader("Pragme", "no-cache"); 

 response.setHeader("Pragma", "no-cache"); 

因为您的代码中有错误,所以无法应用此拦截器,在修复错误后可以使用它来阻止缓存。