执行流程原理图
执行流程文字描述
1.用户向服务器发送请求,被前端控制器所捕获。dispatcherServlet
2.DispatcherServlet对请求请求信息(包括url、HTTP方法、请求报文头、请求参数、Cookie等)进行解析,然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;
3.根据HandlerExecutionChain.getHandler选择合适的 HandlerAdapter ,然后开始执行我们写的controller层的代码,返回一个 ModelAndView 对象。
4.根据视图解析器,解析视图,返回一个view对象。
5.渲染视图,将model对象填充到view中,进行渲染视图,最后返回客户端。
执行流程源码
1.调doService方法
2.调用doDispatch(request, response)核心方法
3.返回给dispatcherServlet,HandlerExecutionChain对象
4.通过 HandlerAdapter 查找对应的适配器
5.通过适配器,执行我们真正写的controller方法中具体的操作,返回mv
6.通过视图解析器,解析返回view对象
7.把model中的数据填充到view渲染,返回给前端。