图解springmvc 执行流程

2022-09-14 17:40:33 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

核心对象

  • DispatcherServlet 核心控制器负责请求,响应,数据的分发。
  • HandlerMapping 处理器映射器,负责到controller中,找到对应的方法,返回给核心控制器。
  • HandleAdapter 处理适配器,将handle找到的方法执行,执行结果,即ModelAndView数据和视图返回给核心控制器。
  • HttpMessageConvertor 消息转换器,数据类型的转换,如日期…
  • ViewResolver 视图解析器,核心控制器调度视图解析器,视图解析器,返回视图。

核心控制器获得实体,渲染,将数据响应到页面。

执行流程图

具体的执行过程

  1. 用户发起request请求,请求至DispatcherServlet前端控制器
  2. DispatcherServlet前端控制器请求HandlerMapping处理器映射器查找Handler,DispatcherServlet:前端控制器,相当于中央调度器,各各组件都和前端控制器进行交互,降低了各各组件之间耦合度。
  3. HandlerMapping处理器映射器,根据url及一些配置规则(xml配置、注解配置)查找Handler,将Handler返回给DispatcherServlet前端控制器。
  4. DispatcherServlet前端控制器调用适配器执行Handler,有了适配器通过适配器去扩展对不同Handler执行方式(比如:原始servlet开发,注解开发)
  5. 适配器执行Handler,Handler是后端控制器,当成模型。(Controller)
  6. Handler执行完成返回ModelAndView,ModelAndView:springmvc的一个对象,对Model和view进行封装。
  7. 适配器将ModelAndView返回给DispatcherServlet
  8. DispatcherServlet调用视图解析器进行视图解析,解析后生成view,视图解析器根据逻辑视图名解析出真正的视图。 View:springmvc视图封装对象,提供了很多view,jsp、freemarker、thymeleaf、pdf、excel。。。
  9. ViewResolver视图解析器给前端控制器返回view
  10. DispatcherServlet调用view的渲染视图的方法,将模型数据填充到request域 。
  11. DispatcherServlet向用户响应结果(jsp页面、json数据。。。。)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154116.html原文链接:https://javaforall.cn

0 人点赞