springmvc执行流程

springMvc主要应用于表示层,和之前的servlet开发相比较,极大的简化了开发.用一个controller就可以包含很多servlet的请求,参数的获取也变得灵活多样并且简单。可以通过springmvc配置拦截器啊什么的组件,更加便捷的进行开发

那么springmvc的执行过程是怎么样的呢,可以用这两张图梳理一下:

springmvc中加入了一个前端控制器的概念,将所有的请求交给前端控制器来处理,而真正的业务逻辑成为处理器。那么当一次请求过来的时候springmvc是怎么处理的呢?那么就看一下下面这张图:

这里就有了springmvc三大组件:

* 处理器映射器     负责根据URL寻找对应的处理器方法
* 处理器适配器     负责真正的去调用某个处理器方法
* 视图解析器       负责将逻辑视图转换成物理视图

可与图中模块一一对应

DispatcherServlet:前端控制器

HandlerMapping: 处理器映射器

HandlerAdapter:处理器适配器  

ViewReslover:视图解析器

Handler:处理器

整个过程如图所示,文字描述如下;

1. 用户通过浏览器发送请求至DispatcherServlet
2. DispatcherServlet收到请求调用HandlerMapping
3. HandlerMapping找到具体的处理器链返回给DispatcherServlet
4. DispatcherServlet会根据返回的处理器链调用HandlerAdapter
5. HandlerAdapter经过适配调用具体的Handler(controller)
6. Controller执行完成返回一个执行结果
7. HandlerAdapter将Handler的结果ModelAndView对象返回给DispatcherServlet
8. DispatcherServlet将ModelAndView对象传给ViewReslover
9. ViewReslover解析后得到具体View,并返回给DispatcherServlet
10. DispatcherServlet根据View进行视图渲染(即将模型数据填充至视图中)
11. DispatcherServlet会将渲染后的视图响应给浏览器 

更多推荐

Java面试题(9)-springmvc执行流程