SpringMVC——Spring中的DispatcherServlet怎么工作?

上一篇博客大致讲了apache Tomcat如何将请求封装经过filter请求到servlet

链接:tomcat如何将请求分发到servlet

这里说说到了Servlet如何处理。

先上一张类图。

SpringMVC——Spring中的DispatcherServlet怎么工作?_第1张图片

这是Servlet到DispatcherServlet的继承关系,servlet里面有一个init方法,一般在第一次请求来得时候调用(有特殊情况,load-on-startup的值大于0的时候在实例化servlet调用)。

在init方法里使用了Spring最爱用的模板模式,子类去实现父类留好的模板方法,实现自己的特殊操作,对应到DispatcherServlet就是一些初始化,比如关键的如何让url对应到Controller的方法上的initHandlerMapping()方法等。


接下来看另一个相似的图

SpringMVC——Spring中的DispatcherServlet怎么工作?_第2张图片

一样的结构,不同的时这里我们讲的是service方法的实现。

service方法就是本文最开始提到的tomcat里执行完filter然后执行Servlet的service方法。

同样的模板方法,在httpServlet类里封装了对GET POST请求不同的处理,普通的Servlet实现直接继承即可。

在后面的继承关系中,最后又将其封装非processRequest方法,直到子类最后关键的实现doDispatch()这一关键的实现。

关于doDispatch()方法,后续继续更新。


你可能感兴趣的:(Spring知识)