十一、Spring MVCの静的資源に対する解析
2582 ワード
シナリオ1:TomcatのdefaultServiceletをアクティブにして静的ファイルを処理するは、複数のファイルを構成し、各ファイルを1つ構成します.DispatcherServletの前に書いてdefaultServletが先にブロックされるようにすると、これはSpringには入らないので、性能が一番いいと思います. Tomcat,Jetty,JBoss,and GlassFishデフォルトサーブレットの名前--「default」 Google App Engineデフォルトサーブレットの名前「_ah_default」 Resinデフォルトサーブレットの名前--「resin-file」 WebLogicデフォルトサーブレットの名前--「Fileサーブレット」 *WebSphereデフォルトサーブレットの名前--「SimpleFileサーブレット」
シナリオ2:spring 3.0.4以降のバージョンではmvc:resourcesが提供されます/images/**は、ResourceHttpRequestHandlerにマッピングする処理を行い、locationは静的リソースの場所を指定する.Webアプリケーションのルートディレクトリの下、jarパケットの中で、静的リソースをjarパケットに圧縮することができます.Cache-periodは、静的リソースをweb cache にすることができる.次のエラーが発生した場合は、 シナリオ3、使用は「/**」urlをSimpleUrlHandlerMappingのurlMapに登録し、静的リソースへのアクセスをHandlerMappingからorgに転送する.springframework.web.servlet.resource.DefaultServeretHttpRequestHandlerは処理して戻る.DefaultServeretHttpRequestHandlerが使用するのは、個々のServertコンテナ独自のデフォルトのServeretである. 補足説明:複数のHandlerMappingの実行順序の問題: D e f a ultAnnotationHandlerMappingのorder属性値は、0 です.自動登録SimpleUrlHandlerMappingのorder属性値は、2147483646 です.自動登録SimpleUrlHandlerMappingのorder属性値は、2147483647 です. springはorder値が小さいことを先に実行します.a.jpgピクチャファイルにアクセスするときは、まずD e f a ultAnnotationHandlerMappingでプロセッサを探します.きっと見つからないに違いありません.a.jpgというActionはありません.さらにorder値の昇順で探すと、最後のSimpleUrlHandlerMappingは「/**」に一致するので、必ず一致して、画像に応答します.
default
*.jpg
default
*.js
default
*.css
シナリオ2:spring 3.0.4以降のバージョンではmvc:resourcesが提供されます
が構成されていない可能性があります.エラーWARNING: No mapping found for HTTP request with URI [/mvc/user/findUser/lisi/770] in DispatcherServlet with name 'springMVC'
要素を使用して、SimpleUrlHandlerMapingのurlMapにmappingのURI pattern値をkey、ResourceHttpRequestHandlerをvalueとして登録することで、静的リソースへのアクセスをHandlerMappingからResourceHttpRequestHandlerに巧みに転送して処理して返すので、classpathディレクトリをサポートし、JArパッケージ内の静的リソースへのアクセスさらに注意すべき点は、SimpleUrlHandlerMappingにdefaultHandlerを設定しないことである.static uriのdefaultHandlerがResourceHttpRequestHandlerなので、