spring mvc DispatchServlet

dispatcherservlet是spring的web框架(以下简称springweb)中的核心servlet."spring的web框架—— 象其它web框架一样——是一个请求驱动的web框架,其设计围绕一个能将请求分发到控制器的servlet,它也提供其它功能帮助web应用开发。"----《spring framework 开发参考手册(中文版)》而在springweb框架中这个servlet就是 org.springframework.web.servlet.dispatcherservlet。这个servlet的继承关系如下图所示:springweb首先将传统的httpservlet抽象类包装成了bean;FrameworkServlet抽象出了web框架中的 servlets的一些基本行为,比如对application context的访问;DispatcherServlet的主要工作就是将一个request分发到一个合适的处理器上,并将处理返回的 ModelAndView绘制出来返回给客户端。

DispatchServlet层级关系:



dispatcherservlet主要的方法:init(),doService(),doDispatch()

一 init()初始化。dispatcherservlet继承体系中init()方法的实现位于httpServletBean 中,httpServletBean首先调用initbeanwrapper(),初始化beanwrapper,然后调用抽象方法 initservletbean(),这个方法的实现位于他的子类frameworkservlet中;framewordservlet中的 initservletbean()方法将调用initwebapplicationcontext(),初始化 webapplicationcontext,然后同样调用他的抽象方法initframeworkservlet(),而这个抽象方法的实现位于最终的 dispatcherservlet中;dispatcherservlet中的initframeworkservet()将依次初始化 multipar(用作文件上传)解析器、本地化信息解析器、主题解析器处理器映射等等内容。所以dispatcherservlet的初始化顺序为 init();initbeanwrapper();

initservletbeaninitwebapplicationcontext()

initframework();initmultipartresolver();initlocaleresolver();initthemeresolver();inithandlermappings();inithandleradapters();inithandlerexceptionresolvers();initviewresolvers();

二 doService()处理请求,主要用来中转请求给doDispatch()处理

三 doDispatch()处理请求,请求前后环绕拦截,异常转发等

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值