我们在之前已经介绍了dispatcherServlet的配置,今天小博老师再跟大家介绍一下dispatcherServlet的工作原理和类继承关系。下面这张图将主要的向管理类及方法抽离出来,方便查看,根据类的结构说明整个请求是如何工作的。
从类图中很容易看出DispatcherServlet最终继承的是HttpServlet,也就是说它同样满足Servlet的工作原理。Servlet初始化时需要调用init方法,该方法由在HttpServletBean实现,init方法调用了initServletBean,该方法在FrameworkServlet中实现。initServletBean方法会初始化配置文件,如{servlet-name}-servlet.xml。
请求到达后Servlet将调用service方法进行处理,如果是get方法请求,Servlet将调用doGet方法,doGet方法在FrameworkServlet中实现,doGet方法又会调用processRequest方法,processRequest则调用doService方法处理,而doService方法在DispatcherServlet中实现,doService再调用了DispatcherServlet的doDispatch方法,该方法则会根据request找到转发对象,并进行请求转发操作。