Springmvc框架基于组件方式的执行流程
SpringMVC的整体请求流程如下
1.第一步,用户单击某个请求路径,发起一个request请求,此请求会被前端控制器(DispacherServlet)处理。
2.第二步,前端控制器(DispatcherServlet)请求处理器映射器(HandlerMapping)去查找Handler。可以根据注解或者XML配置去查找。
3.第三步,处理器映射器(HandlerMapping)根据配置找到相应的Handler(可能包含若干个Interceptor拦截器),返回给前端控制器(DispatcherServlet)
4.第四步,前端控制器(DispacherServlet)请求处理器适配器(HandlerAdapter)去执行相应的Handler(常称为Controller).
5.第五步,处理器适配器(HandlerAdapter)执行Handler.
6.第六步,handler执行完毕后会返回处理器适配器(HandlerAdapter)一个ModelAndView对象(SpingMVC底层对象,包括Model数据模型和View视图信息)。
7.第七步,处理器适配器(HandlerAdapter)接收到Handler返回的ModelAndView后,将其返回给前端控制器(DispacherServlet)。
8.第八步,前端控制器(DispacherServlet)接收到ModelAndView后,会请求视图解析器(ViewResolver)对视图进行解析。
9,第九步,视图解析器(ViewResolver)根据View信息匹配到相应的试图结果,反馈给前端控制器(DispacherServlet).
10.第十步,前端控制器(DispacherServlet)收到View具体视图后,进行试图渲染,将Model中的模型数据填充到View视图中的resquest域,生成最终的视图(View).
11.第十一步,前端控制器(DispacherServlet)向用户返回请求结果。
组件功能说明如下:
前端控制器(DispacherServlet)其作用是接收用户请求,然后给用户反馈结果。它的作用相当以一个转发器或中央处理器,控制整个流程的执行,对各个组件进行统一的调度,以降低组件之间的耦合性,有利组件之间的扩展。
处理器映射器(HandlerMapping):其作用是根据请求的URL路径,通过注解或者XML配置,寻找配置的处理器(handler)信息。
处理器适配器(HandlerAdapter):其作用是根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的处理器(Handler)