SpringMVC不拦截静态资源的三种处理⽅式⽅法SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采⽤通配符的⽅式增加的话仍然会被拦截,可采⽤如下⽅案进⾏解决:
⽅案⼀、中增加针对静态资源不进⾏过滤(涉及l)
<mvc:resources location="/" mapping="/**/*.js"/>
<mvc:resources location="/" mapping="/**/*.css"/>
<mvc:resources location="/assets/" mapping="/assets/**/*"/>
<mvc:resources location="/images/" mapping="/images/*" cache-period="360000"/>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/*"/>
<mvc:exclude-mapping path="/**/fonts/*"/>
<mvc:exclude-mapping path="/**/*.css"/>
<mvc:exclude-mapping path="/**/*.js"/>
<mvc:exclude-mapping path="/**/*.png"/>
<mvc:exclude-mapping path="/**/*.gif"/>
<mvc:exclude-mapping path="/**/*.jpg"/>
<mvc:exclude-mapping path="/**/*.jpeg"/>
<mvc:exclude-mapping path="/**/*login*"/>
<mvc:exclude-mapping path="/**/*Login*"/>
<bean class="interceptor.VisitInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
⽅案⼆、使⽤默认的静态资源处理Servlet处理静态资源(涉及l, l)
在l中启⽤默认Servlet
<mvc:default-servlet-handler/>
在l中增加对静态资源的处理
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>/assets/*"</url-pattern>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>
但是当前的设置必须在Spring的Dispatcher的前⾯
⽅案三、修改Spring的全局拦截设置为*.do的拦截(涉及l)
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
springboot和过滤器
<param-value>l</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
这样设置,Spring就会只针对以'.do'结尾的请求进⾏处理,不再维护静态资源
针对这三种⽅案的优劣分析:
第⼀种⽅案配置⽐较臃肿,多个时增加⽂件⾏数,不推荐使⽤;第⼆种⽅案使⽤默认的Servlet进⾏资源⽂件的访
问,Spring拦截所有请求,然后再将资源⽂件交由默认的Sevlet进⾏处理,性能上少有损耗;第三种⽅案Spring只是处理
以'.do'结尾的访问,性能上更加⾼效,但是再访问路径上必须都以'.do'结尾,URL不太⽂雅;
综上所述,推荐使⽤第⼆和第三中⽅案
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。