SpringMVC由浅入深day01_6源码分析(了解)

时间:2024-04-17 05:57:54

源码分析(了解)

通过前端控制器源码分析springmvc的执行过程。

入口

SpringMVC由浅入深day01_6源码分析(了解)

第一步:前端控制器接收请求

调用doDiapatch

SpringMVC由浅入深day01_6源码分析(了解)

第二步:前端控制器调用处理器映射器查找 Handler

SpringMVC由浅入深day01_6源码分析(了解)

SpringMVC由浅入深day01_6源码分析(了解)

第三步:调用处理器适配器执行Handler,得到执行结果ModelAndView

SpringMVC由浅入深day01_6源码分析(了解)

第四步:视图渲染,将model数据填充到request域。

SpringMVC由浅入深day01_6源码分析(了解)

视图解析,得到view:

SpringMVC由浅入深day01_6源码分析(了解)

调用view的渲染方法,将model数据填充到request域

渲染方法:

SpringMVC由浅入深day01_6源码分析(了解)

SpringMVC由浅入深day01_6源码分析(了解)

  6.1 springmvc处理流程源码分析

1. 用户发送请求到DispatherServlet前端控制器

2. DispatherServlet调用HandlerMapping(处理器映射器)根据url查找Handler

SpringMVC由浅入深day01_6源码分析(了解)

SpringMVC由浅入深day01_6源码分析(了解)

3. DispatherServlet调用HandlerAdapter(处理器适配器)对HandlerMapping找到Handler进行包装、执行。HandlerAdapter执行Handler完成后,返回了一个ModleAndView(springmvc封装对象)

DispatherServlet 找一个合适的适配器:

SpringMVC由浅入深day01_6源码分析(了解)

适配器执行Hanlder

SpringMVC由浅入深day01_6源码分析(了解)

4. DispatherServlet拿着ModelAndView调用ViewResolver(视图解析器)进行视图解析,解析完成后返回一个View(很多不同视图类型的View)

SpringMVC由浅入深day01_6源码分析(了解)

视图解析:

SpringMVC由浅入深day01_6源码分析(了解)

5. DispatcherServlet进行视图渲染,将Model中数据放到request域,在页面展示

SpringMVC由浅入深day01_6源码分析(了解)

将model数据放在request域:

SpringMVC由浅入深day01_6源码分析(了解)