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