我们在我们的应用程序中使用 struts 1.2.4。 该应用程序当前允许缓存安全 (https) 页面(不强制执行缓存控制)。我想更改该行为并向所有响应添加 cache-control:no-cache。
struts 是否提供了一些框架来全局设置缓存策略?
我该怎么做?
更新: Bon Espresso 的以下回答有效。我不得不补充 “缓存控制”,“无缓存,无存储,必须重新验证” 和过滤器的日期标题。
最佳答案
使用过滤器,在 web.xml 中配置过滤器
<filter>
<filter-name>cacheControlFilter</filter-name>
<filter-class>com.package.CacheControlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cacheControlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
还有你的过滤器类
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
public class CacheControlFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
resp.setHeader("Expires", "Tue, 25 Dec 1993 23:59:59 GMT");
resp.setHeader("Last-Modified", new Date().toString());
resp.setHeader("Cache-Control", "no-cache");
resp.setHeader("Pragma", "no-cache");
chain.doFilter(request, response);
}
}
关于java - struts 1 中的响应过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8799699/