Java Http头设置问题

Java Http头设置问题,java,html,header,Java,Html,Header,如何在Http响应中添加缓存控制属性,我正在使用代码库,其中前端完全是JavaScript/Jquery,后端是java,我无法找到添加的位置&要添加什么代码以查看缓存控制设置为无缓存,我跟随了一些web链接,但仍然不走运 我尝试添加代码isJavaScript,如下所示,以便在呈现网页但不工作时动态加载它: ('head')。追加('') 我尝试在web.xml中添加一个过滤器,但也不起作用 更新 在这张图片中,我可以看到头被添加了,但是js文件仍然被缓存 对于Java EE6+,您只需编

如何在Http响应中添加缓存控制属性,我正在使用代码库,其中前端完全是JavaScript/Jquery,后端是java,我无法找到添加的位置&要添加什么代码以查看缓存控制设置为无缓存,我跟随了一些web链接,但仍然不走运

  • 我尝试添加代码isJavaScript,如下所示,以便在呈现网页但不工作时动态加载它:

    ('head')。追加('')

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

  • 更新

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


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

    使用JavaEE6+时,您只需编写一个带有@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);
    

    谢谢mplungjan,是的,我有一个使用完整链接,可以进行更改,但仍然找不到有效的链接:(请检查此链接:谢谢mplungjan,是的,我有一个使用完整链接,可以进行更改,但仍然找不到有效的链接。)(请检查此链接: