当我们在web.xml中前端控制器DispatchServlet的请求映射配置为"/"时,我们对静态资源的引用出现了页面404,页面图片,css,js等问题。
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这是因为当我们在前端控制器的请求映射配置为"/"的时候,Spring MVC接收到的所有请求当成普通请求,包括对静态资源的请求。这样,所有的静态资源的请求会被看出一个普通的后台控制器请求,导致请求找不到而报404。
当然如果你配置的是*.do这样的方式则不会出现这样的问题,因为*.do只处理以它结尾的请求,对静态资源文件不会做任何处理。