如何在 Http Response 中添加 Cache-Control属性,我正在开发前端完全 JavaScript / Jquery 的代码库,并且结束了一个java我无法在哪里添加&添加什么代码以查看 Cache-Control 设置为 no-cache ,我关注了一些网站链接但仍然没有运气。
我尝试添加代码 JavaScript ,如下所示,在网页呈现但不能正常工作时动态加载:
{{1}}
我尝试在 web.xml 中添加过滤器,但也无效。
更新
在这张图片中,我可以看到添加了标题,但js文件仍然被缓存。
答案 0 :(得分:0)
使用Java EE6 +,您应该编写带有@WebFilter注释的过滤器,并将HTTP标头设置为响应。这是您可以使用的过滤器。请注意,之后不会覆盖标题。
@WebFilter("/*")
public class HttpHeaderFilter implements Filter {
@Override
public void init(final FilterConfig filterConfig) {
// Nothing to do.
}
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
final HttpServletResponse res = (HttpServletResponse) response;
res.setHeader("cache-control", "private, max-age=" + 60 * 60 * 12);
chain.doFilter(request, response);
}
@Override
public void destroy() {
// Nothing to do.
}
}
要禁用缓存,您应使用以下标题。
final HttpServletResponse res = (HttpServletResponse) response;
// HTTP 1.1.
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate, max-age=0");
// HTTP 1.0.
response.setHeader("Pragma", "no-cache");
// Proxies.
response.setDateHeader("Expires", 0);
答案 1 :(得分:0)
在Pic中,我可以看到添加了标题但仍然缓存了js文件。