转自:http://www.open-open.com/lib/view/open1365861546828.html
Spring MVC工作流程图
图一
图二
Spring工作流程描述
1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
2. DispatcherServlet 对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象 (包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;
3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)
4. 提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息
数据转换:对请求消息进行数据转换。如String转换成Integer、Double等
数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等
数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中
5. Handler 执行完成后,向DispatcherServlet 返回一个ModelAndView对象;
6. 根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的 ViewResolver)返回给DispatcherServlet ;
7. ViewResolver 结合Model和View,来渲染视图
8. 将渲染结果返回给客户端。
Spring工作流程描述
为什么Spring只使用一个Servlet(DispatcherServlet)来处理所有请求?
详细见J2EE设计模式-前端控制模式
Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?
符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。
相关推荐
struts1工作原理 struts2工作原理 struts1和struts2比较 spring mvc工作原理 struts和spring mvc比较
本文详细介绍spring MVC的原理和开发心得体会。
Spring MVC原理,简要说明了Spring MVC的实现原理,适合初学者
_第一课:spring mvc 原理深度解析1
spring mvc 工作原理
可以了解spring mvc的开发环境,以及注解使用,对理解spring mvc的工作原理有直观的帮助。
适合新手了解认识spring mvc,和搭建spring mvc 框架
spring mvc 框架 原理 机制 实例学习
开涛spring mvc教程PDF版,时候初学者理解spring mvc原理
Spring MVC非注解测试,用于理解spring mvc原理,然后再结合源码分析,更好的理解spring mvc
手头有个项目用到了Spring MVC框架,一个星期要完成编码,我还不了解MVC框架的原理!于是乎找了本介绍Spring的书,翻到MVC那一章节,没想到两个小时,基本将MVC的原理都搞明白了,哈哈。
3、HandlerAdapter详解这里spring mvc 采用适配器模式来适配调用指定Handler,根据Handler的不同种类采用不同的Adapter,
Spring+Mvc手写基本源码+思想流程图,快速理解spring+mvc原理。可根据流程图来自己写一个源码框架
作为架构师和Java开发者,深入理解Spring MVC的原理和实践应用是非常重要的。本文通过分析Spring MVC的核心组件和执行流程,提供了一个全面的学习指南。 Spring MVC基于Model-View-Controller(MVC)架构模式,优化...
《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7...
如果面试问你Spring MVC的原理
Spring MVC MYBatis企业应用实战,详细描述spring mvc原理及注解,怎么与mybatis整合,构建企业级web实战
基于spring2.5的采用XML配置的spring MVC项目 基于spring2.5注解实现的spring MVC项目 基于spring 3.0项目开发实例 基于spring 3.0mvc 框架的文件上传实现 Spring中的拦截器
这个博客清晰的讲述了mvc和spring mvc 的运行原理,大家可以参考一下,有啥不足之处请多多指教,本人第一次发博客,希望通过这个平台来与IT的朋友们一起交流学习。
内部包括spring 及 spring mvc 架构及设计原理,aop实现原理,拦截器等,共17个文档。spring 学习不二选择