`
youyu4
  • 浏览: 424954 次
社区版块
存档分类
最新评论

Spring MVC 工作流程

 
阅读更多

Spring MVC 工作流程

 

工作图



 流程图



 

 

 

工作流程描述

 

      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工作流程的问题

 

1. 为什么Spring只使用一个Servlet(DispatcherServlet)来处理所有请求?

详细见J2EE设计模式-前端控制模式

      你也可以定义多个DispatcherServlet,只不过通常业务场景下,一个就可以了。根据业务需求可以定义多个DispatcherServlet,这也是为什么SpringMVC有两个context甚至更多的原因

 

2. Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?

符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。

 

 

参考:

http://blog.csdn.net/zuoluoboy/article/details/19766131/

  • 大小: 91.5 KB
  • 大小: 32.8 KB
分享到:
评论

相关推荐

    spring mvc工作流程

    spring mvc执行流程 Spring工作流程描述

    精通Spring MVC 4

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring MVC4中,我们将会从头开始构建一个有用的Web应用。本书共计10章,分别介绍了...

    Spring mvc工作流程.m4a

    Spring mvc工作流程.m4a

    Spring MVC 核心流程图

    Spring MVC 核心流程图,清晰介绍了spring mvc中的控制流程

    spring mvc源代码

    spring mvc4.1.4 源代码 spring mvc4.1.4 源代码spring mvc4.1.4 源代码spring mvc4.1.4 源代码spring mvc4.1.4 源代码

    Spring MVC入门教程

    三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解 七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc...

    Spring MVC+MyBatis开发从入门到项目实战

    第4篇是Spring MVC与MyBatis的项目整合实战,通过对水果网络销售平台的需求分析、功能设计、数据库设计以及模块详细编码实现,让读者了解整合项目开发的整体流程。 《Spring MVC+MyBatis开发从入门到项目实战》对...

    Spring MVC 入门实例

    首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/hello.do(事实上请求路径是 /hello.do) 的请求后, Spring 将这个请求交给一个名为 helloController ...

    Spring MVC 教程 快速入门 深入分析

    三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解 七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring mvc...

    SpringMVCDemo:Spring MVC 框架知识案例

    1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 3.Spring MVC 请求参数的获取案例 4.Spring MVC 域对象共享数据案例 5.Spring MVC @ModelAttribute 注解案例 6.Spring MVC 国际化案例 7....

    spring框架的MVC

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且...

    Spring MVC依赖包

    Spring mvc依赖包 Spring mvc都做了些什么 Controller为中心完成对系统流程的控制管理 从请求中搜集数据 对传入的参数进行验证 将结果返回给视图 针对不同的视图提供不同的解决方案 针对jsp视图技术提供标签库 拦截...

    SpringMVC框架架构介绍

    三、spring mvc 核心流程图 四、spring mvc DispatcherServlet说明 五、spring mvc 双亲上下文的说明 六、springMVC-mvc.xml 配置文件片段讲解 七、spring mvc 如何访问到静态的文件,如jpg,js,css? 八、spring ...

    spring mvc项目

    可用于分析spring mvc源码、spring mvc父子容器初始化流程、session和cookie机制、spring session等,也可以用于学习Java Web(servlet、filter、listener等)、spring源码等。 该项目使用servlet3.0规范,无web.xml...

    spring boot+spring mvc+spring整合开发音乐小程序(含简单服务端)

    spring boot+spring mvc+spring整合开发**音乐**小程序(含简单服务端) 项目描述 spring boot+spring mvc+spring代理请求**音乐接口获取数据,然后提供给**小程序做显示 运行环境 jdk8+IntelliJ IDEA+maven ...

    基于jpa+hibernate+spring+spring mvc注解方式项目

    基于jpa+hibernate+spring+spring mvc注解方式项目案例带整体架构及一个页面操作小流程适合新手

    Spring MVC jar包

    Spring MVC属于SpringFrameWork的后续产品,已经...Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。

    Spring mvc小程序

    Spring MVC示例程序,仅供参考

    spring+spring mvc+mybatis+mysql+dubbo整合开发任务流程后台管理系统

    全套完整的spring+spring mvc+mybatis+mysql+dubbo整合开发任务流程后台管理系统

Global site tag (gtag.js) - Google Analytics