この記事では主に静的ファイルにアクセスするための Spring MVC の関連情報を詳しく紹介します。興味のある方は参考にしてください。
DispatcherServlet URL のサフィックス付きの "*.do" をインターセプトする方法はありません。静的リソースにアクセスできないという問題。
REST スタイルを実装するために DispatcherServlet が「/」をインターセプトし、すべてのリクエストをインターセプトする場合、*.js や *.jpg などの静的ファイルへのアクセスもインターセプトされます。
私たちはこの問題を解決する必要があります。
目的: 静的ファイルには正常にアクセスでき、静的ファイルが見つからない場合でも 404 は報告されません。
オプション 1: 静的ファイルを処理するために Tomcat のdefaultServlet をアクティブにする
Xml コード
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping>
複数のファイルを 1 つずつ構成するには
DispatcherServlet の前に書き込むには、defaultServlet を使用しますインターセプトリクエストがSpringに入らないように最初にリクエストしてください。パフォーマンスは最高だと思います。
Tomcat、Jetty、JBoss、および GlassFish に付属するデフォルトのサーブレットの名前 -- 「default」
Google App Engine に付属するデフォルトのサーブレットの名前 -- 「_ah_default」
Resin には「resin-file」が付属しています
WebLogic にはデフォルトのサーブレットの名前が付いています -- 「FileServlet」
オプション 2:
Spring 3.0 .4 以降のバージョンでは、mvc:resources が提供されます。 使用方法:
Xml コード
<!-- 对静态资源文件的访问 --> <mvc:resources mapping="/images/**" location="/images/" />
次のエラーが発生する場合は、
エラー警告: 'springMVC' という名前の DispatcherServlet に URI [/mvc/user/findUser/lisi/770] の HTTP リクエストのマッピングが見つかりません
マッピング URI を登録するには、
もう 1 つの注意点は、SimpleUrlHandlerMapping に defaultHandler を設定しないことです。静的 URI の defaultHandler は ResourceHttpRequestHandler であるため、それ以外の場合は静的リソースのリクエストを処理できません。 -servlet -handler/>
<mvc:default-servlet-handler/>
DefaultServletHttpRequestHandler は各サーブレット コンテナのデフォルトのサーブレットを使用します。
追加説明: 複数の HandlerMapping 問題の実行順序:
DefaultAnnotationHandlerMapping の順序属性値は: 0
画像にアクセスするには、マッチングのレイヤーを通過する必要があります。パフォーマンスがどうなっているかわからないですか?
以上が静的ファイルにアクセスする Spring MVC の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。