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

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 MVC 概述 Spring MVC 是 Spring 框架的一部分,主要用于构建基于 Java 的 Web 应用程序。它是一种模型-视图-控制器(Model-View-Controller,MVC)设计模式的具体实现...

    精通Spring MVC 4

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

    Spring mvc工作流程.m4a

    Spring mvc工作流程.m4a

    Spring MVC jar包

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...

    Spring MVC 学习记录总结1

    在这个学习记录总结中,我们将深入理解Spring MVC的核心概念、主要组件以及其工作流程。 1. Spring MVC 概述 Spring MVC 是Spring框架的一部分,它基于Spring IoC(Inversion of Control,控制反转)容器,简化了...

    Spring MVC 第一个例子

    Spring MVC 工作流程 1. 用户发送 HTTP 请求到应用服务器。 2. DispatcherServlet 接收到请求,通过 HandlerMapping 查找匹配的控制器方法。 3. HandlerAdapter 执行找到的控制器方法,并将结果封装到 ...

    开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp

    标题中的"开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp"表明这是一个关于Spring MVC框架的开发教程,其中包含了源代码供学习者参考。Spring MVC是Spring框架的一个核心组件...

    Spring MVC 核心流程图

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

    spring mvc demo下载地址

    Spring MVC 是一个基于Java的轻量...通过深入研究这个Spring MVC demo,你将能掌握基本的Spring MVC工作流程,为后续更复杂的Web应用开发打下坚实基础。记得动手实践,理论结合实际,才能更好地理解和运用这些知识点。

    Spring MVC 4.2.3

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够...在实际工作中,深入理解和熟练掌握Spring MVC,将对提升开发效率和应用质量起到关键作用。

    最全最经典spring-mvc教程

    Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...

    简单实用spring MVC教程

    Spring MVC 工作流程** 1. 用户发送请求到 DispatcherServlet。 2. DispatcherServlet 查询 HandlerMapping,找到对应的 Controller 方法。 3. Controller 处理请求,可能涉及 Service 层和 DAO 层。 4. Controller...

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

    三、Spring MVC核心流程图:描述了Spring MVC处理请求的流程,包括前端控制器接收请求,经过分发器分发给具体的控制器,然后由控制器处理业务逻辑,最后将结果返回给用户。 四、Spring MVC DispatcherServlet说明:...

    Spring MVC框架实例

    Spring MVC 工作流程** 1. 用户发起请求到 DispatcherServlet。 2. DispatcherServlet 查找 HandlerMapping,确定请求对应的 Controller。 3. 使用 HandlerAdapter 调用 Controller 处理请求。 4. Controller 处理...

    spring mvc 4.0

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring ...

    Spring MVC使用Demo

    通过分析这些文件,你可以看到Spring MVC的实际应用,加深对其工作流程的理解。 总之,"Spring MVC使用Demo"是一个很好的学习资源,涵盖了从环境搭建到实际编码的全过程。通过学习和实践,开发者能够熟练掌握Spring...

    Mastering Spring MVC 4(2015.09)源码

    Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个教程“Spring MVC - A Tutorial”旨在帮助开发者深入理解和掌握Spring MVC的核心概念和...

Global site tag (gtag.js) - Google Analytics