由于在web.xml文件中的spring前端控制器中配置了下面的话:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
其中的/会拦截所有的url,包括了在jsp页面上引入js文件(src)、css文件(href)、还有图片(src)......等都会被spring MVC
的前端控制器给拦截,导致如果不配置相应配置的话,就不能正确访问到文件、引入文件的路径等。
可以配置springMVC前端控制器拦截的url来省去在spring-core.xml文件中的开启静态资源访问这个步骤
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>//配置成只拦截所有的.do请求,这样就不会拦截.js .css .jpg 等后缀的了
<url-pattern>/*.do</url-pattern>
</servlet-mapping>
但是直接通过开启配置静态资源访问的话,springMVC的前端控制器拦截的urlwei为/的情况下,需要在spring-core.xml文件中
配置:
<mvc:resources location="/jsp/" mapping="/jsp/**"></mvc:resources>
<mvc:resources location="/images/" mapping="/images/**"></mvc:resources><mvc:resources location=" " mapping=" " />的意思是:由springMVC框架自己处理静态资源,location是静态资源的目录位置,
(maven项目)默认是在webapp目录下面寻找,mapping是你引入的时候的写法,前后名称尽量保持一致。
与<mvc:resources>对应的还有<mvc:default-servlet-handler/> 意思是:将静态资源的处理由springMVC框架交回给web服务器自己处理
(以上带有个人理解)