2 つの異なるコンテナー (Tomcat と Jetty) に Web アプリケーションをデプロイしますが、静的コンテンツを提供するためのデフォルトのサーブレットは、使用したい URL 構造を処理する方法が異なります (詳細)。
したがって、独自の静的コンテンツ (画像、CSS など) を提供するために、webapp に小さなサーブレットを含めることを検討しています。サーブレットには次のプロパティが必要です。
- 外部依存なし
- シンプルで信頼性の高い
- ヘッダーのサポート
If-Modified-Since
(つまり、カスタムgetLastModified
メソッド) - (オプション) gzip エンコーディング、etags などのサポート
そのようなサーブレットはどこかで入手できますか? 私が見つけることができる最も近いものは、サーブレットブックの例 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
ます。問題は、Tomcat のデフォルト サーブレットが ServletPath を考慮しないことです (そのため、メイン フォルダー内の静的ファイルを検索します) が、Jetty は考慮します (そのため、static
フォルダー内を検索します)。