java - 在 JSP 中添加 Expires 或 Cache-Control header

标签 java jsp http cache-control

如何在 JSP 中添加 ExpiresCache-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/

相关文章:

java - 字符串中字符的位置和重复

java - Jetty - 使用 JSP 将 WAR 部署到嵌入式 Jetty

java - 在 web.xml 中声明 JSP taglib 指令

java - 我无法使用 spring boot 在我的 jsp 中使用 c taglib

java - 中止从 servlet 上传以限制文件大小

python - 使用 HTTP 基本身份验证的 python Flask REST API 的安全性

java - 将一个 Json 与另一个 Json 组合(JAVA)

java - 避免覆盖 Apache poi 中的 xlsx 文件

java - 发送前查找电子邮件大小

php - 如果网站已启动,如何从 php/html 检查?