如何在 JSP 中添加 Expires
或 Cache-Control
header ?我想在包含页面中为我的静态组件(例如图像、CSS 和 JavaScript 文件)添加一个遥远的到期日期。
最佳答案
要禁用 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.
这样您就不需要将它复制粘贴到所有 JSP 页面上并用 scriptlet 将它们弄得一团糟。
要为 CSS 和 JS 等静态组件启用浏览器缓存,请将它们全部放在一个公共(public)文件夹中,例如 /static
或 /resources
并创建一个 Filter
映射到 url-pattern
的 /static/*
或 /resources/*
并且在 doFilter()
中基本上执行以下操作方法:
httpResponse.setDateHeader("Expires", System.currentTimeMillis() + 604800000L); // 1 week in future.
另见:
关于java - 在 JSP 中添加 Expires 或 Cache-Control header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055268/