java - Java Web App 中单个动态和静态文件的缓存设置

标签 java jsp caching tomcat

是否可以在 Tomcat 上运行的 Web 应用程序的特定文件的 HTTP header 响应中应用不同的缓存控制?我希望通过 Web 应用程序执行此操作,而不必更改 Tomcat 的配置,因为这些设置会随着每次部署而改变。

例如,这是我想要的示例:

  • 从不缓存:/,/index.jsp(我知道可以在 JSP 或 servlet 类的 header 中定义缓存)。
  • 缓存:/js/、/img/、/css/*(将这些文件缓存 3 个月)

感谢您的回答。

谢谢

最佳答案

这绝对是一份 ServletFilters 的工作因为它们允许您拦截请求。

通过这种方式,您可以轻松地为缓存设置正确的 HTTP header

几分钟前,我开始使用两个 ServletFilters 编写解决方案。

一个过滤器缓存资源,一个不缓存资源。

但是,我偶然发现了cache-filter它已经为您完成了工作...

看起来您需要将 Never 缓存资源指向

NoCacheFilter

和可缓存的资源到

CacheFilter

关于java - Java Web App 中单个动态和静态文件的缓存设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9448798/

相关文章:

java - DebugPlugin.getDefault() 中的 NPE

html - 我的 css 导入失败

java - JSP 默认对象验证

java - Guava 缓存允许陈旧读取吗?

java - 如何获得该程序的格式化显示? (初学者)

java - JDBC - 无法连接到 MySQL

java - 您可以向 Hibernate 实体添加在序列化时被忽略的 getter 和 setter 吗?

java - Servlet Listners 和加载外部 Jars 性能

caching - AppFabric缓存集群的SCM管理

hibernate - 如何在 Grails 应用程序中监控 Hibernate 统计信息(缓存命中和未命中)?