如果springmvc工程的web.xml中配置了前端控制器,且其路径为’/’ 如下
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
那么,有可能在你访问工程中的静态资源时,会访问失败。
原因是:如果你访问的地址在web.xml中没有做单独配置,且url-pattern的值为’/’,即缺省值,找不到mapping的请求都会被前端控制器捕获,并由前端控制器,继续在controll中查找,是否有匹配的mapping.
如果最终没有找到匹配mapping,那就什么也不做,即找不到资源。
作为静态资源,我们一般是直接存放在工程目录下,没有配置mapping.此时若想访问资源,那就有两种方法。
方法一:在spring-mvc.xml配置开放资源路径,即访问这些路径时,springmvc不会再处理,而是直接可以访问。
<!-- 配置开放资源访问 -->
<mvc:resources mapping="/jquery/**" location="/jquery/"/>
mapping="/jquery/**“是配置要访问的地址
location=”/jquery/"是配置要访问的资源的路径
方法二:在spring-mvc.xml配置默认处理方式
<!-- 配置当springmvc找不到匹配的mapping时,把请求交由原始容器处理,
我们的原始容器一般是tomcat,tomcat可以直接访问这些静态资源 -->
<mvc:default-servlet-handler/>