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

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 demo下载地址

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

    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 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