Spring深度解析-18、关于DispatcherServlet

什么是DispatcherServlet

DispatcherServlet在Spring MVC中属于MVC模式的C controller控制层,用于集中处理来自前端的请求,来自前端的请求通过DispatcherServlet进行分发处理,并且返回视图。

什么时候去加载DispatcherServlet

在ContextLoaderListener实现了spring mvc容器的根上下文的初始化,这个根上下文被整个web应用共享,而这个根上下文又被保存至ServletContext,这个ServletContext被tomcat中的所有应用共享。
而DispatcherServlet会持有自己的上下文,用于保存spring mvc的Bean对象他的上下文作为由ContextLoaderListener实现的根上下文的子上下文。
那么什么时候去加载DispatcherServlet?
首先通过上文的描述可以明确一点:DispatcherServlet必然在ContextLoaderListener加载完成之后才会去加载。
具体的加载时机:
要根据web.xml中servlet关于load-on-startup的配置来确定:
1、如果没有配置,或者配置为负数,那么在第一次request请求时加载
2、如果配置为大于等于0,那就在容器启动时加载,且启动的顺序根据配置数值的大小来排序,数字越小,越先启动。

从DispatcherServlet的继承体系了解它的作用

DispatcherServlet继承自FrameworkServlet、HttpServletBean、HttpServlet,因此他可以通过Servlet的API来对请求做出处理与相应。
DispatcherServlet主要做了两个事情:
1、初始化,通过HttpServlet的init来触发初始化操作,而在Servlet初始化时就会调用init方法。
2、处理请求。作为一个Servlet、Web容器会调用到Servlet的doGet和doPost方法,这些方法被FrameworkServlet重写,因此在初始化DispatcherServlet后,Web容器的请求会调用到FrameworkServlet的doGet、doPost,经过一些处理后,调用到DispatcherServlet的doDispatch,而doDispatch就是DispatcherServlet处理请求的核心入口。

明天看源码。。今天加班没时间了。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值