SpringMVC执行流程源码解析

文章目录

      • 1 发送请求
      • 2 根据请求查找Handler
      • 3 根据处理器找到合适的处理器适配器
      • 4 调用处理器,获得ModelAndView
      • 5 处理ModelAndView
      • 6 判断请求转发还是重定向

下面是SpringMVC流程图,看文章之前先看下图会加深理解。
SpringMVC执行流程源码解析_第1张图片

1 发送请求

客户端发送请求之后会执行DispatcherServlet#doService,请求参数会被封装到request(910行的写法是JSP+Servlet时代很常见的写法,实际DispatcherServlet是Servlet的子类)。封装完成后会执行DispatcherServlet#doDispatch
SpringMVC执行流程源码解析_第2张图片

2 根据请求查找Handler

SpringMVC根据请求返回HandlerExecutionChain(包含目标Handler跟若干拦截器),查找的方法是DispatcherServlet#getHandler
SpringMVC执行流程源码解析_第3张图片
SpringMVC执行流程源码解析_第4张图片

3 根据处理器找到合适的处理器适配器

第二步找到Handler之后,需要找到一个合适的处理器适配器来执行Handler
SpringMVC执行流程源码解析_第5张图片
如果找不到合适处理器映射器就会抛出异常
SpringMVC执行流程源码解析_第6张图片

4 调用处理器,获得ModelAndView

可以看到SpringMVC有4个处理器适配器,但是所有的处理器适配器最终都返回ModelAndView对象
SpringMVC执行流程源码解析_第7张图片
SpringMVC执行流程源码解析_第8张图片

5 处理ModelAndView

这里处理结果集Result
SpringMVC执行流程源码解析_第9张图片
调用reader方法,获取视图名称
SpringMVC执行流程源码解析_第10张图片
执行View类的render方法
SpringMVC执行流程源码解析_第11张图片

6 判断请求转发还是重定向

SpringMVC执行流程源码解析_第12张图片

你可能感兴趣的:(SSM核心技术,Spring,源码,源码解析,SpringMVC执行流程分析)