所有的请求在springMVC中都会经过DispatcherServelet类进行处理:
- DispatcherServelet继承关系:
它也是一个servelet,而servelet必须重写doGet或者doPost之类的方法处理请求
其父类含有doGet等方法:
重写了HttpServelet中的方法
这些方法如下所示:
都是调用了processRequest方法
调用了doservice()方法:
doservice()方法为一个抽象方法
需要继承重写,其子类则对这个方法进行了覆盖重写
doservice()方法中部分代码如下:
核心为doDispatch()方法,每个请求都会到这个方法进行处理,输入一个请求参数为/user:
获取哪个处理器进行处理,怎么获取的呢?继续分析:
进入getHandler()方法:
其中一个映射细节如下:
即所有请求映射注解信息会保存在这里面,根据注解信息寻找能够处理这条请求的映射
再次进入下一步的方法
指定处理的控制器方法: