SpringMVCの傍受は、静的リソースの問題を解決します

エレガントなの.htmlまたは早期Spring MVCのは、静的なリソースを処理しませんので。.doという接尾辞を持ってしたくないとして、RESTスタイルのURL資源なので、web.xmlで構成要求のDispatcherServletマッピングは、しばしば* .doという、*使用します。 XHTMLや他の手段。これは、URLは、URLの接尾辞ではなく、真のRESTスタイルのURLでなければならない要求を決定します。

要求がのDispatcherServletが「/」に設定マッピングされている場合、スプリングMVCは静的リソースに対する要求を含むすべての要求のWebコンテナを、捕捉し、それらは通常のスプリングMVC要求処理として扱われ、したがって、対応するプロセッサは、エラーになります見つけることができません。

Springフレームワークは、すべてのURLリクエストをキャプチャすることができますが、また、Webコンテナによって転送静的リソースに対する要求を処理するようにする方法、要求は「/」に提供することができているのDispatcherServletマッピングの設定があります。RESTは、最も重要な機能のSpring3.0の一つであり、そのチームは春の静的リソースは、このタスクを処理するために真剣に考えているので、それは古典的な2ソリューションを提供します。

それはすべての要求を取り込むことができるようにweb.xmlファイルの構成を調整するためのDispatcherServlet:

コードをコピー
<サーブレット> 
        の<servlet-name>のspringMVC </サーブレット名> 
        の<servlet-class>のorg.springframework.web.servlet.DispatcherServlet </サーブレットクラス> 
        の<load-on-startup> 1 </のload-on-startup > 
    </サーブレット> 
    <のservlet-mapping> 
        の<servlet-name>のspringMVC </サーブレット名> 
        の<url-pattern> / </のurl-pattern> 
    </のservlet-mapping>
コードをコピー

 

すべてのURLリクエストの上のURLパターンを設定することにより、Spring MVCのののDispatcherServletを傍受されています。

使用方法<MVC:デフォルト・サーブレット・ハンドラを/>

<MVC:デフォルト・サーブレット・ハンドラ/>

springMVC-servlet.xmlに配置された:<MVCデフォルト・サーブレット・ハンドラ/>は、Spring MVCのコンテキストでorg.springframework.web.servlet.resource.DefaultServletHttpRequestHandlerを定義した後、それはのDispatcherServletに入る、検査官のようになりますURLのスクリーニングは、静的リソース要求であることが判明した場合、その要求はDispatcherServletの処理を継続する前に静的リソースでない場合、要求は、デフォルトのWebアプリケーション・サーバーのサーブレットによって処理されて転送します。

一般的なサーブレット、Webアプリケーション・サーバーのデフォルト名は「デフォルト」で、これDefaultServletHttpRequestHandlerはそれを見つけることができます。Webアプリケーションサーバーのすべてのデフォルトのサーブレット名は「デフォルト」でない場合は、デフォルト・サーブレット-name属性で指定した表示する必要があります。

<MVCは:デフォルトのサーブレット・ハンドラ・デフォルト・サーブレット名=「Webサーバーのサーブレット名は、デフォルトを使用します」/>

2.使用方法<MVC:リソース/>

<MVC:デフォルト・サーブレット・ハンドラ/>春のMVCフレームワークを経由して静的リソースWebアプリケーション・サーバー・プロセスに対処するために返されます。<MVC:リソース/>さらに、Spring MVCのフレームワークにより、独自の静的リソースを処理し、いくつかの有用な付加価値機能を追加します。

まず、<MVC:リソース/>そのようなクラスパスとして、そのようなWEB-INFディレクトリとして、静的リソースはどこにでも置くことができます、あなたもJavaScriptとその他の静的ファイルをJARパッケージを打つことができます。静的リソースは、場所属性がリソースタイプであるため、として使用することができ、場所属性で場所を指定し、「クラスパス:」プレフィックスは、このようなリソースの場所などのリソースを指定します。Webコンテナの伝統的な静的リソースのみ、Webコンテナのルートパスに配置することができます。<MVC:リソース/>は、完全にこの制限がなくなります。

第二に、<MVC:リソース/>静的なリソースの最適化を提供するために、現在よく知られたページスピード、YSlowの、その他のブラウザの最適化原理に基づきます。一度cacheSecondsプロパティにより、ブラウザのキャッシュを静的リソースを指定することができ、そして一年間ブラウザのキャッシュを利用する時間を設定することができます。静的リソースの出力がされるときに良好な応答パケットヘッダは、有効期限とキャッシュ制御値の設定値に応じ。

変化がない場合は、静的リソースの取得要求を受信すると、リクエストヘッダに静的リソースの最終変更された値をチェックし、プロセスは直接対応するステータスコード303を返し、ブラウザを使用することなく、静的なリソースよりも、クライアント・データ・キャッシュを促します完全に帯域幅を節約し、アプリケーションのパフォーマンスを向上させるために、クライアントへの出力の内容。

追加はでspringMVC-サーブレットを、次のとおりです。

<MVC:リソース場所= "/、クラスパス:/ META-INF / publicResources /" マッピング= "/リソース/ **" />

 

上記の構成の下では、Webルート「/」クラスパスおよび/ META-INF / publicResources /ディレクトリ/リソース・パスにマッピングされました。ウェブ画像はあなたが/resources/images/bg.gifことができ、ルート・パスは、これら二つのJSリソースディレクトリは、bg.gif画像下の画像では、jsの下にあり、ファイルtest.jsという仮定の下で持っていると/リソース/のJS / test.jsは、これら二つの静的リソースを参照してください。

ウェブルートは、また、画像/ bg1.gifとJS / test1.jsを持っていると仮定し、それはまた、Webページ内/resources/images/bg1.gifと/resources/js/test1.jsで参照することができます。

おすすめ

転載: www.cnblogs.com/aligege/p/11620383.html