Spring-mvc配置“/”路径过滤问题

时间:2020-12-01 15:33:54

首先大家都知道"/*"可以匹配所有url,包括带扩展名的,一般只用在过滤器上。

一般Spring-mvc的核心

<servlet>
  <servlet-name>springDispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:bean.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>

<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
  <servlet-name>springDispatcherServlet</servlet-name>

<!--  配置资源过滤路径为"/" -->

  <url-pattern>/</url-pattern>
</servlet-mapping>

而"/"其实也能拦截“.js”,“.css”,".png"等静态资源的访问。造成静态资源的加载出错。

spring配置文件加<mvc:default-servlet-handler />

<!-- 它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。 -->

网上还有一种

<!-- 放行静态资源 -->

<mvc:resources location="/js/" mapping="/js/**"/>

<mvc:resources location="/css/" mapping="/js/**"/>

<mvc:resources location="/images/" mapping="/js/**"/>

可以试试!