Spring MVC Displatch Servletフロントエンドコントローラとブロッカーを配置する方法
18920 ワード
自分が宿題をしている時に、jspの中で画像をガイドして正常に表示できない状況に遭遇しました.その後、カスタムのintercepterが画像をブロックしていることに気づきました.だから、画像を入手できませんでした.
.xmlファイルのコード
_; web.xmlの部分構成情報(Dispactch Servletの設定):
第一の方法:ブロック内にブロッキング不要なリソースパスを配置する(私のは写真です)
この方法を使うにはweb.xmlにservlet-mappingを追加する必要があります.
第3の方法:特定のものをweb.xmlに配置する.
Dispring MVCは、DispartServlet要求マッピングが「/」に設定されている場合、静的リソースの要求を含むWebコンテナのすべての要求をキャプチャし、Spring MVCは、それらを通常の要求処理として扱い、対応するプロセッサが見つけられなくなり、エラーを引き起こす.
.xmlファイルのコード
_; web.xmlの部分構成情報(Dispactch Servletの設定):
<servlet>
<servlet-name>DispatcherServletservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:springmvc-config.xmlparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
<servlet-name>DispatcherServletservlet-name>
<url-pattern>/url-pattern>
servlet-mapping>
_; springmvc-config.xmlにおける構成情報の一部(静的リソースのアクセスマップを構成することは、静的リソースをブロックしないこと):
<mvc:resources location="/js/" mapping="/js/**" >mvc:resources>
<mvc:resources location="/css/" mapping="/css/**">mvc:resources>
<mvc:resources location="/fonts/" mapping="/fonts/**">mvc:resources>
<mvc:resources location="/images/" mapping="/images/**">mvc:resources>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.edu.bdu.interceptor.LoginInterceptor">bean>
mvc:interceptor>
mvc:interceptors>
よくこのように配置されていますので、静的資源は全部放出されたと思いますが、何度も実験してもブロックされました.ですから、ブロックがブロックされたのではないかと思います.ブロックの配置を修正します.第一の方法:ブロック内にブロッキング不要なリソースパスを配置する(私のは写真です)
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/**/*.png"/>
<mvc:exclude-mapping path="/**/*.gif"/>
<mvc:exclude-mapping path="/**/*.jpg"/>
<bean class="com.edu.bdu.interceptor.LoginInterceptor">bean>
mvc:interceptor>
mvc:interceptors>
第二の方法:標準ブロックをweb.xmlに設定し、静的リソースをブロックしない.この方法を使うにはweb.xmlにservlet-mappingを追加する必要があります.
<servlet-mapping>
<servlet-name>defaultservlet-name>
<url-pattern>/js/*url-pattern>
<url-pattern>/css/*url-pattern>
<url-pattern>/fonts/*url-pattern>
<url-pattern>/images/*url-pattern>
servlet-mapping>
_; springmvc-config.xmlに追加する(私が使っているtomcatのデフォルトservletの名前はdefaultです)<mvc:default-servlet-handler default-servlet-name="default"/>
このような方法で配置すればいいです.ブロックにも書きません.第3の方法:特定のものをweb.xmlに配置する.
<servlet>
<servlet-name>DispatcherServletservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:springmvc-config.xmlparam-value>
init-param>
<load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
<servlet-name>DispatcherServletservlet-name>
<url-pattern>*.actionurl-pattern>
servlet-mapping>
このような方法でspringブロック時に「.action」の最後の要求だけをブロックすると、静的資源のメンテナンスがなくなります.もういらないです.ブロックにも書かなくてもいいです.Dispring MVCは、DispartServlet要求マッピングが「/」に設定されている場合、静的リソースの要求を含むWebコンテナのすべての要求をキャプチャし、Spring MVCは、それらを通常の要求処理として扱い、対応するプロセッサが見つけられなくなり、エラーを引き起こす.