Spring MVC使用篇(一)—— 整体流程与组件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36378917/article/details/83541235

Spring MVC请求流程

Spring MVC整体请求流程
Spring MVC整体请求流程如下:
1、用户单机某个请求路径,发起一个request请求,次请求会被前端控制器(DispatherServlet)处理。
2、前端控制器(DispatherServlet)请求处理映射器(HandlerMapping)去查找Handler。可以依据注解或者XML配置去查找。
3、处理器映射器(HandlerMapping)根据配置找到相应的Handler(可能包含若干个Interceptor拦截器),返回一个执行链(HandlerChain)给前端控制器(DispatherServlet)。
4、前端控制器(DispatherServlet)请求处理器适配器(HandlerAdapter)去执行相应的Handler(常称为Controller)。
5、处理器适配器(HandlerAdapter)执行Handler。
6、Handler执行完毕后会返回给处理器适配器(HandlerAdapter)一个ModelAndView对象(Spring MVC底层对象,包括Model数据模型和View视图信息)。
7、处理器适配器(HandlerAdapter)接收到Handler返回的ModelAndView后,将其返回给前端控制器(DispatherServlet)。
8、前端控制器(DispatherServlet)接收到ModelAndView后,会请求视图解析器(View Resolver)对视图进行解析。
9、视图解析器(View Resolver)根据View信息匹配到相应的视图结果,反馈给前端控制器(DispatherServlet)。
10、前端控制器(DispatherServlet)收到View具体视图后,进行视图渲染,将Model中的模型数据填充到View视图中的request域,生成最终的视图(View)。
11、前端控制器(DispatherServlet)向用户返回请求结果。

Spring MVC各个组件功能简介

  • 前端控制器(DispatcherServlet)
    其作用是接收用户请求,然后给用户反馈结果。它的作用相当于一个转发器或中央处理器,控制整个流程的执行,对各个组件进行统一调度,以降低组件之间的耦合性,有利于组件之间的拓展。
  • 处理器映射器(HandlerMapping)
    其作用是根据请求的URL路径,通过注解或者XML配置,寻找匹配的处理器(Handler)信息。
  • 处理器适配器(HandlerAdapter)
    其作用是根据映射器找到的处理器(Handler)信息,按照特定的规则执行相关的处理器(Handler)。
  • 处理器(Handler)
    其作用是执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装至ModelAndView对象中。
  • 视图解析器(View Resolver)
    其作用是进行解析操作,通过ModelAndView对象中的View信息将逻辑视图名解析成真正的视图View(如通过一个JSP路径返回一个真正的JSP页面)。
  • 视图(View)
    其本身是一个接口,实现类支持不过的View类型(JSP、FreeMarker、Excel等)。

在上面的组件中,需要开发人员进行开发的是处理器(Handler)和视图(View)。一般来讲,要开发处理该请求的具体代码逻辑,以及最终展示给用户的界面。

猜你喜欢

转载自blog.csdn.net/weixin_36378917/article/details/83541235