我希望我的浏览器不要存储缓存,当我更新服务器的内容时,我总是拥有文档的第一个版本。
但是当我在浏览器上擦除缓存时,一切都还可以。 无论如何,在运行我的webApp时,是否告诉浏览器不要存储缓存? 我正在使用Java EE(JSP)和Apache Tomcat Server。
答案 0 :(得分:3)
您可以使用ServletFilter来确保HTTP响应包含指示浏览器不缓存的标头:
public class NoCachingFilter implements Filter {
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Cache-Control", "no-cache");
httpResponse.setDateHeader("Expires", 0);
httpResponse.setHeader("Pragma", "no-cache");
httpResponse.setDateHeader("Max-Age", 0);
chain.doFilter(request, response);
}
}
然后配置web.xml以对所有请求使用该过滤器:
<filter>
<filter-name>NoCachingFilter</filter-name>
<filter-class>my.pkg.NoCachingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>NoCachingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>