DispatcherServlet源码分析
一、客户端发送请求的总体过程
DispatcherServlet是SpringMVC的入口,DispatcherServlet其实也是一个Servlet。服务器处理客户端请求的步骤如下:
1、DispatcherServlet继承FrameworkServlet,当客户端发送请求的时候, 会调用Servlet对应的doGet、doPost、doDelete等方法。
2、doGet、doPost、doDelete里面会调用processRequest方法
3、processRequest方法进一步调用doService方法
4、DispatcherServlet实现了doService方法,在doService方法中对Request参数进行处理,然后调用doDispatch方法
5、在doDispatch方法中获取并调用处理器映射器、处理器适配器,获取并返回执行结果。
DispatcherServlet是Web中处于比较核心的位置,被称为前端控制器。SpringMVC中常用的几个概念,处理器映射器(HandlerMapping)、处理器适配器(HandlerAdapter)和视图解析器(ViewResolver)都在DispatcherServlet的doDispatch中有所体现。
二、springMVC工作原理
下面是文字步骤说明:
1、用户发送请求到前端控制器(DispatcherServlet)。
2、前端控制器请求处理器映射器(HandlerMapping)去查找处理器(Handler)。
3、找到以后处理器映射器(HandlerMappering)向前端控制器返回执行链(HandlerExecutionChain)。
4、前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)。
5、处理器适配器去执行Handler。
6、处理器执行完给处理器适配器返回ModelAndView。
7、处理器适配器向前端控制器返回ModelAndView。
8、前端控制器请求视图解析器(ViewResolver)去进行视图解析。
9、视图解析器向前端控制器返回View。
10、前端控制器对视图进行渲染。
11、前端控制器向用户响应结果。