You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tomcat 8.5的web.xml中配置Cache-Control、Pragma和Expires头?

解决方案

通用自定义过滤器方案(无依赖全场景适用)

这是兼容性最好的实现,不需要引入第三方依赖,适配所有符合Servlet规范的Web容器:

  1. 先编写自定义过滤器类:
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class NoCacheResponseFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse resp = (HttpServletResponse) response;
        resp.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
        resp.setHeader("Pragma", "no-cache");
        resp.setHeader("Expires", "0");
        chain.doFilter(request, response);
    }
}
  1. 在web.xml中添加过滤器配置,全局生效:
<filter>
    <filter-name>noCacheFilter</filter-name>
    <filter-class>你自己的包路径.NoCacheResponseFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>noCacheFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Spring生态项目现成方案

如果你使用Spring/Spring Boot框架,可以直接用Spring内置的HeaderWriterFilter,不需要自定义代码,直接配置web.xml即可:

<filter>
    <filter-name>cacheHeaderFilter</filter-name>
    <filter-class>org.springframework.web.filter.HeaderWriterFilter</filter-class>
    <init-param>
        <param-name>headersToWrite</param-name>
        <param-value>
            Cache-Control: no-cache, no-store, must-revalidate
            Pragma: no-cache
            Expires: 0
        </param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>cacheHeaderFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Tomcat容器专属方案

如果你的服务运行在Tomcat 7及以上版本,可以直接用Tomcat自带的HeaderFilter,无需额外开发:

<filter>
    <filter-name>responseHeaderFilter</filter-name>
    <filter-class>org.apache.catalina.filters.HeaderFilter</filter-class>
    <init-param>
        <param-name>headers</param-name>
        <param-value>
            Cache-Control: no-cache, no-store, must-revalidate
            Pragma: no-cache
            Expires: 0
        </param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>responseHeaderFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

内容的提问来源于stack exchange,提问作者Ritwik1711

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:06:03