Spring MVC構成HTMLなどのリソースリクエストをブロックしない
に質問
1.このように構成されたdispatch-servletは、すべての要求をブロックします(jspはコンテナのデフォルトのサーブレットによってブロックされますが、以下に説明します).ただし、コントローラの@RequestMapper(「url」)は、すべて満たされていません.2.たとえば./xxpath/xxx.html, xxx.cssなどは,対応するコントローラがマッピングできない.失われ、対応は応答コードとなり404となる.
解決策
1.Spring MVCのブロック範囲を変更することができる.サーブレットコンテナには、Spring MVCのブロックよりも優先されるデフォルトのブロックがあります.
メソッド1に基づく
①webを修正する.xmlプロファイルのdispatchの範囲は、例えばRESTスタイルの「/*.do」に変更しますが、すべてのリクエストに「.do」を接尾辞で付けるのは面倒で、完全にRESTできません.以下の2つがSpring MVCが提案した良い解決方法です.
②Spring MVCをwebに保持する.xmlファイル内のすべての構成をブロックし、ブロックされた静的リソース要求をdefaultサーブレット管理に返す【推奨】
③Spring MVCをwebに保持する.xmlファイルのすべての構成をブロックし、2次マッピングSpring MVCコンテナ部分url Spring MVCプロファイルに以下のフィルタリングが必要なディレクトリファイルリソースを追加すればよい(複数追加可能)
メソッド2に基づく
webでいいです.xmlファイルでサーブレットを構成するデフォルトのブロック
これは対応するものを構成しなくてもよい…ただし、dispatchの前、すなわち次のSpring MVCのdispatch配信要求のサーブレットの前に配置する必要がある
<servlet-mapping>
<servlet-name>dispatcherservlet-name>
<url-pattern>/url-pattern>
servlet-mapping>
1.このように構成されたdispatch-servletは、すべての要求をブロックします(jspはコンテナのデフォルトのサーブレットによってブロックされますが、以下に説明します).ただし、コントローラの@RequestMapper(「url」)は、すべて満たされていません.2.たとえば./xxpath/xxx.html, xxx.cssなどは,対応するコントローラがマッピングできない.失われ、対応は応答コードとなり404となる.
解決策
1.Spring MVCのブロック範囲を変更することができる.サーブレットコンテナには、Spring MVCのブロックよりも優先されるデフォルトのブロックがあります.
メソッド1に基づく
①webを修正する.xmlプロファイルのdispatchの範囲は、例えばRESTスタイルの「/*.do」に変更しますが、すべてのリクエストに「.do」を接尾辞で付けるのは面倒で、完全にRESTできません.以下の2つがSpring MVCが提案した良い解決方法です.
②Spring MVCをwebに保持する.xmlファイル内のすべての構成をブロックし、ブロックされた静的リソース要求をdefaultサーブレット管理に返す【推奨】
<mvc:default-servlet-handler />
③Spring MVCをwebに保持する.xmlファイルのすべての構成をブロックし、2次マッピングSpring MVCコンテナ部分url Spring MVCプロファイルに以下のフィルタリングが必要なディレクトリファイルリソースを追加すればよい(複数追加可能)
<mvc:resources location="" mapping=""/>
メソッド2に基づく
webでいいです.xmlファイルでサーブレットを構成するデフォルトのブロック
<servlet-mapping>
<servlet-name>defaultservlet-name>
<url-pattern>/js/*.jsurl-pattern>
<url-pattern>/css/*.cssurl-pattern>
<url-pattern>/testPage/*.htmlurl-pattern>
<url-pattern>/image/*url-pattern>
servlet-mapping>
これは対応するものを構成しなくてもよい…ただし、dispatchの前、すなわち次のSpring MVCのdispatch配信要求のサーブレットの前に配置する必要がある
<servlet>
<servlet-name>dispatcherservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
servlet>
<servlet-mapper>
<servlet-name>dispatcherservlet-name>
...
servlet-mapper>