一、什么是Spring MVC
1、spring官网:https://spring.io/
2、Spring Web MVC是建立在Servlet API基础之上的MVC框架,从一开始就包含在Spring框架中;它的正式名称是Spring Web MVC,通常被称为Spring MVC。
二、Spring MVC的几个重要组件
1、前端控制器DispatcherServlet:拦截所有请求,并将请求转发给其他组件,相当于Spring MVC的控制单元;
2、处理器映射器HandlerMapper:根据请求的url查找处理器;
3、处理器适配器HandlerAdapter:执行处理器;
4、处理器Handler(Controller):业务逻辑;
5、视图解析器ViewResolver:解析逻辑视图,创建view对象;
6、拦截器;
三、Spring MVC执行流程
1、用户发送请求到DispatcherServlet;
2、DispatcherServlet请求处理器映射器查找处理器;
3、处理器映射器找到处理器后,返回一个处理器执行链对象给DispatcherServlet;
4、DispatcherServlet请求处理器适配器执行处理器;
5、处理器适配器执行处理器;
6、处理器执行完之后,返回ModelAndView给处理器适配器;
7、处理器适配器返回ModelAndView给DispatcherServlet;
8、DispatcherServlet请求视图解析器解析ModelAndView;
9、视图解析器解析完成之后,返回View对象给DispatcherServlet;
10、DispatcherServlet使用模型和View对象渲染页面,响应用户请求
四、Spring MVC 对静态资源的处理
1、当DispatcherServlet拦截路径配置为/
时,DispatcherServlet会拦截静态资源,就让处理器映射器查找静态资源对应的处理器,这时就会报404错误;
2、Servlet容器(Tomcat、Jetty、WebLogic等)都提供了默认的Servlet专门处理静态资源,在Tomcat中这个Servlet名称时default;
3、解决:在Spring MVC容器添加以下配置
<mvc : default-servlet-handler />