我将一个 webapp 部署在两个不同的容器(Tomcat 和 Jetty)上,但是它们用于提供静态内容的默认 servlet 对于处理我想要使用的 URL 结构(详情)有不同的方式。
因此,我希望在 webapp 中包含一个小的 servlet 来提供它自己的静态内容(图片、 CSS 等)。Servlet 应该具有以下属性:
If-Modified-Since
头(即自定义 getLastModified
方法)这样的 servlet 在哪里可用吗? 我能找到的最接近的是 servlet 书中的 例子4-10。
更新: 我想使用的 URL 结构——如果你想知道的话——很简单:
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
因此,所有请求都应该传递给主 servlet,除非它们是针对 static
路径的。问题是 Tomcat 的默认 servlet 没有考虑 ServletPath (因此它在主文件夹中查找静态文件) ,而 Jetty 考虑了(因此它在 static
文件夹中查找静态文件)。