在 Tomcat 中通过 web.xml 配置缓存控制响应头

你可以在你的 Web 应用的 WEB-INF/web.xml 文件中,通过配置过滤器(Filter)来给特定资源(比如 index.html)添加缓存控制的响应头。

示例:配置一个简单的缓存控制过滤器给 index.html

1. 编写一个过滤器类

java 复制代码
java复制
package com.example.filter;

import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class NoCacheFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 初始化(可不实现)
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        if(response instanceof HttpServletResponse){
            HttpServletResponse httpResp = (HttpServletResponse) response;
            httpResp.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
            httpResp.setHeader("Pragma", "no-cache"); // HTTP 1.0
            httpResp.setDateHeader("Expires", 0); // Proxies
        }
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        // 销毁(可不实现)
    }
}

2. 在 web.xml 中声明并映射该过滤器

xml 复制代码
xml复制
<filter>
    <filter-name>noCacheFilter</filter-name>
    <filter-class>com.example.filter.NoCacheFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>noCacheFilter</filter-name>
    <!-- 只拦截index.html -->
    <url-pattern>/index.html</url-pattern>
</filter-mapping>

这样,当访问 index.html 时,Tomcat 返回的响应头就带上了禁止缓存的指令,浏览器就会每次重新请求,不会触发 304。

相关推荐
heartbeat..25 分钟前
Servlet 全面解析(JavaWeb 核心)
java·网络·后端·servlet
vx_bisheyuange33 分钟前
基于SpringBoot的疗养院管理系统
java·spring boot·后端
京东零售技术35 分钟前
2025京东零售技术年度精选 | 技术干货篇(内含福利)
前端·javascript·后端
布列瑟农的星空1 小时前
2025年度总结——认真生活,快乐工作
前端·后端
sunnyday04261 小时前
Spring Boot 项目中使用 Dynamic Datasource 实现多数据源管理
android·spring boot·后端
晴虹1 小时前
lecen:一个更好的开源可视化系统搭建项目--页面设计器(表单设计器)--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一个懂你的人
前端·后端·低代码
苏三的开发日记1 小时前
Hive的安装与配置
后端
小楼v2 小时前
一篇学会在IDEA中的Git常用操作及冲突的解决方法
git·后端
EMQX2 小时前
利用 EMQX 消息队列解决关键物联网消息传递挑战
人工智能·后端·物联网·mqtt·emqx
red润2 小时前
Python环境变量自动配置:实现生产与开发环境无缝切换
后端·python