本文共 933 字,大约阅读时间需要 3 分钟。
首先启动项目,进行初始化操作:
initStrategies()函数主要对DispatcherServlet类中的几个属性进行初始化操作,其中的几个属性为:接下来我们来看DispatcherServlet类中的doDispatch方法:
我们再看几个重要的地方: 在这里,DispatherServlet通过getHandler方法获取一个HandlerExecutionChain对象,HandlerExecution是由HandlerMapping根据请求映射返回的,其中包含Handler和拦截器HandlerInterceptor我们看看getHandler的代码:
在DispatcherServlet中的getHandler()方法中,使用了一个while循环,然后根据请求在处理映射器中寻找到对应的Handler,并由HandlerMapping对象创建HandlerExecutionChain对象 getHandler执行的就是上面这个过程getHandler()设计一个设计模式——拦截过滤器模式(拦截过滤器模式用于对应用程序的请求或相应做一些预处理/后处理,定义过滤器,并在请求传给实际目标应用程序之前应用在请求上)
HandlerMapping对象的getHandler()方法是一个接口:
它的实现类为AbstractHandlerMapping 我们看一下getHandlerExecutionChain方法: 到这里,DispatcherServlet已经获取了用户请求对应的HandlerExecutionChain对象,接下来就是获取HanlderAdapter对象转载地址:http://uhjmb.baihongyu.com/