在JSP中添加Expires或Cache-Control标头

Sam*_*Sam 29 java jsp http cache-control

如何在JSP中添加ExpiresCache-Control标头?我想在包含页面中为我的静态组件添加远期到期日期,例如图像,CSS和JavaScript文件.

Bal*_*usC 71

要禁用浏览器缓存,JSP页面,创建一个Filter被映射上url-pattern*.jsp和做基本上在下面的doFilter()方法:

HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1
httpResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0
httpResponse.setDateHeader("Expires", 0); // Proxies.
Run Code Online (Sandbox Code Playgroud)

这样,您就不需要在所有JSP页面上对其进行复制,并使用scriptlet将它们混乱.

为了使像CSS和JS静电元件浏览器缓存,把他们都在一个共同的文件夹一样/static/resources并创建一个Filter被映射上url-pattern/static/*/resources/*和做基本上在下面的doFilter()方法:

httpResponse.setDateHeader("Expires", System.currentTimeMillis() + 604800000L); // 1 week in future.
Run Code Online (Sandbox Code Playgroud)

也可以看看:

  • 谢谢它对我帮助很大.但是在seconde线上是不是有错误?它应该是:httpResponse.setHeader("Cache-Control","no-cache,no-store,must-revalidate"); (2认同)

Dar*_*rov 10

<%
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
%>
Run Code Online (Sandbox Code Playgroud)