簡體   English   中英

在JSP中添加Expires或Cache-Control標頭

[英]Add an Expires or a Cache-Control header in JSP

如何在JSP中添加ExpiresCache-Control標頭? 我想在包含頁面中為我的靜態組件添加遠期到期日期,例如圖像,CSS和JavaScript文件。

要禁用JSP頁面的瀏覽器緩存,請創建一個映射在*.jspurl-pattern上的Filter ,並在doFilter()方法中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.

這樣,您就不需要在所有JSP頁面上對其進行復制,並使用scriptlet將它們混亂。

要為CSS和JS等靜態組件啟用瀏覽器緩存,請將它們全部放在像/static/resources這樣的公共文件夾中,並創建一個映射到/static/*/resources/*url-pattern上的Filter ,並基本完成doFilter()方法中的以下內容:

httpResponse.setDateHeader("Expires", System.currentTimeMillis() + 604800000L); // 1 week in future.

也可以看看:

<%
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
%>
<%
    response.setHeader("Cache-Control", "no-cache"); //HTTP 1.1
    response.setHeader("Pragma", "no-cache"); //HTTP 1.0
    response.setDateHeader("Expires", 0); //prevents caching at the proxy server
%>

像Tomcat這樣的Servlet容器帶有一組預定義的過濾器。 請參閱例如Expires Filter 使用現有的可能比創建自己的類似過濾器更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM