SpringMVC的执行流程
- 用户发出的请求到前端控制器DispatcherServlet;
- DispatcherServlet收到请求调用HandlerMapping处理器映射器;
- 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器一并返回给DispatcherServlet;
- DispatcherServlet调用处理器适配器;
- 处理器适配器调用具体的处理器;
- controller执行完成后返回ModelAndView;
- 处理器适配器将controller的执行结果返回给DispatcherServlet;
- DispatcherServlet将返回的ModelAndView传给视图解析器;
- ViewReslover解析后返回具体View;
- DispatcherServlet根据View进行渲染视图;
- 相应给用户 。
组件:
1、前端控制器DispatcherServlet(不需要程序员开发):
作用接收请求,响应结果,相当于转发器,中央处理器。
有了DispatcherServlet减少了其它组件之间的耦合度。
2、处理器映射器HandlerMapping(不需要程序员开发):
**作用:**根据请求的url查找Handler
3、处理器适配器HandlerAdapter:
**作用:*按照特定规则(HandlerAdapter要求的规则)*去执行Handler
4、处理器Handler(需要程序员开发):
**注意:**编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
5、视图解析器View resolver(不需要程序员开发):
**作用:**进行视图解析,根据逻辑视图名解析成真正的视图(view)
6、视图View(需要程序员开发jsp):
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)