ホームページ > Java > &#&チュートリアル > 静的コンテンツを効率的に提供するためにサーブレット マッピングをカスタマイズするにはどうすればよいですか?

静的コンテンツを効率的に提供するためにサーブレット マッピングをカスタマイズするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-15 05:00:40
オリジナル
221 人が閲覧しました

How to Customize Servlet Mapping for Efficient Static Content Serving?

静的コンテンツを提供するためのサーブレット マッピングのカスタマイズ

背景:

Web アプリケーションをデプロイする場合コンテナーが異なると、静的コンテンツ処理を処理するデフォルトのサーブレットにバリエーションが発生する可能性があります。これにより、必要な URL 構造との競合が発生する可能性があります。

サーブレット要件:

この問題に対処するには、次の特性を持つカスタム サーブレットが必要です。

  • 外部依存関係なし
  • シンプルで信頼性の高い
  • If-Modified-Since ヘッダーをサポート (カスタマイズ可能な getLastModified メソッド)
  • gzip エンコード、etag などのオプションのサポート

マッピングに関する考慮事項:

目的の 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>
ログイン後にコピー

提案された解決策:

要件を満たす外部サーブレットは利用可能ですが、より簡単なアプローチが考案されています。 。コンテンツ ファイルを拡張子によってデフォルトのサーブレットにマッピングし、その他すべてを「myAppServlet」という名前のカスタム サーブレットにマッピングすることで、目的の機能を実現できます。結果のマッピングは次のようになります:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>myAppServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
ログイン後にコピー

利点:

このアプローチにより、静的コンテンツ (画像、CSS など) のリクエストがデフォルトで確実に処理されます。他のすべてのリクエストはカスタム サーブレットにルーティングされます。 Jetty コンテナと Tomcat コンテナの両方でシームレスに動作します。

以上が静的コンテンツを効率的に提供するためにサーブレット マッピングをカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート