gpt4 book ai didi

java - Http header 设置问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:59 25 4
gpt4 key购买 nike

如何在 Http Response 中添加 Cache-Control 属性,我正在开发前端完全是 JavaScript/Jquery 的代码库,后端是 java,我无法获取在哪里添加以及添加哪些代码来查看 Cache-Control 设置为 no-cache,我跟踪了一些网络链接,但仍然没有运气。

  1. 我尝试添加代码 JavaScript 如下,以便在网页呈现但无法正常工作时动态加载它:

    ('head').append('<meta content="no-cache" http-equiv="Cache-Control">')

  2. 我尝试在 web.xml 中添加过滤器,但也不起作用。

更新

在这张图片中,我可以看到添加了 header ,但 js 文件仍然被缓存。

enter image description here

最佳答案

使用 Java EE6+,您只需编写一个带有 @WebFilter 注释的过滤器,并将 HTTP header 设置为响应。这是您可以使用的过滤器。请注意, header 随后不会被覆盖。

@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.
}

}

要禁用缓存,您应该使用以下 header 。

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);

关于java - Http header 设置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37108502/

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