在处理静态资源时我们希望的是直接交给Tomcat配置的DefaultServlet处理,在Tomcat配置的DefaultServlet中,默认处理路径为“/”:
如果在SpringMVC项目中web.xml配置的DispatcherServlet默认处理路径也为“/”,那么所转发的静态资源请求会先交给DispatcherServlet处理,但DispatcherServlet是处理不了静态资源的,所以请求了该静态资源的页面会报404
要解决这个问题,就需要在项目的配置文件servletmvc.xml文件中配置默认控制器:
<!-- 配置默认的servlet处理静态资源 -->
<mvc:default-servlet-handler/>
<!-- 配置视图控制器 -->
<mvc:annotation-driven/>
需要注意的是,配置默认的servlet处理静态资源时,需一同开启视图控制器,否则会将所有请求转发给DefaultServlet处理