java - 在 Apache Tomcat 中发送关于 MIME 类型响应的特定 header

标签 java jsp tomcat servlets

我有一个正在运行的 Apache Tomcat 服务器。如果我有类似的东西:

webapp/
    image1.png

然后,我可以使用以下方式简单地访问它:

example.com/image1.png

这是完美的,除了我无法控制要发送的 header 。我希望为某些 MIME 类型(例如 image/png)发送特定的 Expires header 。这些 header 将是静态的,所以我真的不介意我是否必须在某些 XML 文件中指定它并且不能是动态的。

Apache Tomcat 可以吗?另一种明显的方法是从文件中读取并使用适当的 header 将其输出到浏览器,但我认为这可能有点矫枉过正。

最佳答案

使用 Tomcat 过滤器来应用此 header 。

<web-app ...>
    ...
    <filter>
       <filter-name>ExpiresFilter</filter-name>
       <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
       <init-param>
          <param-name>ExpiresByType image</param-name>
          <param-value>access plus 10 minutes</param-value>
       </init-param>
       <init-param>
          <param-name>ExpiresByType text/css</param-name>
          <param-value>access plus 10 minutes</param-value>
       </init-param>
       <init-param>
          <param-name>ExpiresByType application/javascript</param-name>
          <param-value>access plus 10 minutes</param-value>
       </init-param>
    </filter>
    ...
    <filter-mapping>
       <filter-name>ExpiresFilter</filter-name>
       <url-pattern>/*</url-pattern>
       <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    ...
 </web-app>

更多信息请访问 Tomcat Filter Documentation

关于java - 在 Apache Tomcat 中发送关于 MIME 类型响应的特定 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10896339/

相关文章:

java - 如何在 Android Studio 中修复此 "Duplicate class error"

java - RichFaces:TabPanel 和参数

javascript - 如何使用基于时间的javascript显示jsp页面的弹出窗口?

java - 在struts的索引属性中添加新项目

java - 从 Servlet 中的 java 类获取属性(在 JSP 中看不到转发的请求)

java - 实现一个包含 k = Date object v = array 的 hash map

java - 缓存修改通知?

javascript - 父窗口打开子窗口

java - Eclipse WTP 教程错误

tomcat - 从 Tomcat servlet 连接到 HTTP 服务器时出现 AccessControlException