其他分享
首页 > 其他分享> > DispatherServlet执行流程

DispatherServlet执行流程

作者:互联网

一.Servlet简介

DispatherServlet在org.springframework.web.servlet包下,在spring-mvc模块下面,一个普通的ssm项目你可以通过web.xml对其进行配置,Spring-boot项目直接用类DispatcherServletAutoConfiguration进行配置,SpringBoot有个spring-autoConfig模块,使用配置类的方式,默认会拦截所有请求,调用 doService方法。

二.DispatherServlet如何实现调度的

              在doService方法内先进行准备工作,然后调用doDispath方法, 看下方法里面都执行了什么

                   

               首先通过request去找相应的MapperHandler,找不到就写一个404在respon里面,看getHandler怎么执行的

                  

                      通过一个HandlerMapping集合,遍历 集合中的HandlerMaping去找相应的HandlerExcutionChain,

然后调用HandlerExcutionChain的getHandler()方法获取相应的Handler,然后获取相应的适配器,具体代码如下:

HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());

然后执行applyPreHandle方法,获取所有的拦截器,然后执行preHandler方法,之后才是执行适配器的handle()方法,返回一个ModelAndView代码如下:

ModelAndView mv = ha.handle(processedRequest, response, mappedHandler.getHandler());

然后执行postHandle()方法,这里可以看出来拦截器的执行时机,代码如下:

mappedHandler.applyPostHandle(processedRequest, response, mv);

 

 

 

标签:DispatherServlet,流程,然后,getHandler,执行,方法,mappedHandler
来源: https://blog.csdn.net/A1028151949/article/details/89513521