之前的web.xml中的映射只有
1 <servlet-mapping> 2 <servlet-name>springDispatcherServlet</servlet-name> 3 <url-pattern>/</url-pattern> 4 </servlet-mapping>
Spring主要也是通过DispatcherServlet实现了Servlet这个接口,又叫前端控制器,来自前端的请求会先到达这里,它负责到后台去匹配合适的handler,‘/’表示会拦截所有请求。
DispatcherServlet的主要工作流程如下:
- 前端请求到达DispatcherServlet。
- 前端控制器请求HandlerMappering 查找Handler。
- 如果查找到存在的处理器,进一步去调用service和dao层
- 返回结果再到controller层,渲染具体的视图,返回结果给页面。
因为我们的请求到达了DispatcherServlet但是又没有匹配,所以在jsp中引用css和js以及html等静态文件都是出现404问题。
解决方法:在web.xml中添加映射:
1 <servlet-mapping> 2 <servlet-name>default</servlet-name> 3 <url-pattern>*.css</url-pattern> 4 </servlet-mapping> 5 <servlet-mapping> 6 <servlet-name>default</servlet-name> 7 <url-pattern>*.gif</url-pattern> 8 </servlet-mapping> 9 <servlet-mapping> 10 <servlet-name>default</servlet-name> 11 <url-pattern>*.jpg</url-pattern> 12 </servlet-mapping> 13 <servlet-mapping> 14 <servlet-name>default</servlet-name> 15 <url-pattern>*.js</url-pattern> 16 </servlet-mapping>