gpt4 book ai didi

caching - 如何要求浏览器不存储缓存 Java EE/Tomcat

转载 作者:行者123 更新时间:2023-11-28 22:38:46 26 4
gpt4 key购买 nike

我希望我的浏览器不存储缓存,当我更新我的服务器的内容时​​,我总是有文档的第一个版本。

但是当清除浏览器上的缓存时一切正常。无论如何告诉浏览器在运行我的 webApp 时不要存储缓存?我正在使用 Java EE (JSP) 和 Apache Tomcat 服务器。

最佳答案

您可以使用 ServletFilter 来确保 HTTP 响应包含 header 以指示浏览器不要缓存:

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>

关于caching - 如何要求浏览器不存储缓存 Java EE/Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7092998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com