我在两个不同的容器(Tomcat和Jetty)上部署web应用程序,但它们用于提供静态内容的默认servlet处理URL结构的方式不同,而我想使用相同的URL结构 (详情)。
因此,我希望在Web应用程序中包含一个小的servlet来提供自己的静态内容(图像、CSS等)。这个servlet应该具有以下属性:
- 没有外部依赖
- 简单可靠
- 支持
If-Modified-Since
头(即自定义getLastModified
方法) - (可选)支持gzip编码、etags等
是否有这样的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>
除非是针对static
路径的请求,否则所有请求都应该传递给主servlet。问题在于Tomcat的默认servlet不考虑ServletPath(因此它会在主文件夹中查找静态文件),而Jetty则考虑ServletPath(因此它将在static
文件夹中查找)。
default
/
- Maciek Kreft