SpringMVC核心控制器DispatcherServlet类结构源码阅读

SpringMVC是近年来出现的一个非常优秀的web框架,它是基于MVC思想设计的,采用松散耦合可插播组件结构,比其他的MVC框架更加灵活,更具可扩展性,此外SpringMVC在视图解析、数据绑定等方面等有着非常不错的表现,而已成为当今最受欢迎的MVC框架。1体系结构SpringMVC的核心是DispatcherServlet,它主要用于接收请求后,协调各个组件完成对请求的响应。和其他J2
摘要由CSDN通过智能技术生成

SpringMVC是近年来出现的一个非常优秀的web框架,它是基于MVC思想设计的,采用松散耦合可插播组件结构,比其他的MVC框架更加灵活,更具可扩展性,此外SpringMVC在视图解析、数据绑定等方面等有着非常不错的表现,而已成为当今最受欢迎的MVC框架。

1体系结构

SpringMVC的核心是DispatcherServlet,它主要用于接收请求后,协调各个组件完成对请求的响应。和其他J2EE的MVC框架一样,SpringMVC也是利用前端Servlet接收请求,处理请求,最后返回相应结果的。而DispatcherServlet即是SpringMVC对应的前端Servlet。

图1.1 SpringMVC体系结构

SpringMVC在接收到请求后,主要是按照以下的流程处理并响应请求的。

(1)客户端发起Http请求,web应用服务器(如Tomcat)接收到请求后,如果请求格式匹配web.xml中配置的DispatcherServlet拦截请求格式(如*.html),那么web服务器将会把该请求转交给DispatcherServlet进行处理。

(2)DispatcherServlet接收到请求后,会根据请求的信息(如URL,请求方法等)从HandlerMapping中找到处理对应请求的处理器(Handler)。

(3)DispatcherServlet会将HandlerMapping返回的Handler交给HandlerAdapter进行包装。再统一由HandlerAdapter的适配器接口实现类通过接口实现调用Handler(具体HandlerAdapter如何实现利用适配器接口调用Handler后续会进行分析)。

(4)Handler处理完请求对应的业务逻辑后会返回ModleAndView给DispatcherServlet。其中ModleAndView包含Handler处理后返回的逻辑视图名以及数据对象。

(5)DispatcherServlet利用ModleAndView中的逻辑视图名通过ViewResolver解析到真正的视图对象View。

(6)DispatcherServlet获取到视图对象View后,会整合ModleAndView中的数据对象Modle进行视图渲染。

(7)渲染完成后返回客户端响应信息。

2类结构

图1.2

既然DispatcherServlet归根到底是SpringMVC用于接收请求的Servlet,那就必须讲一下DispatcherServlet的类结构(如图1.2所示)。DispatcherServlet类结构主要是包含用于接收请求的Servlet部分以及用于监听容器事件的Listener部分。DispatcherServlet主要是通过继承FrameworkServlet实现对用户请求的处理以及为每一个请求的Servlet管理WebApplicationContext实例。

类结构的Servlet部分中,Servlet接口是Servlet类型的顶级接口,定义了所有子类都必须实现的方法,如Servlet生命周期中的核心方法init(ServletConfig config),service(ServletRequestreq, ServletResponse res)以

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值