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 MVC 工作流程描述
为什么Spring只使用一个Servlet(DispatcherServlet)来处理所有请求?
详细见J2EE设计模式-前端控制模式
Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?
符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。
来自:http://blog.csdn.net/xtu_xiaoxin/article/details/8796499
相关推荐
标题中的"开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp"表明这是一个关于Spring MVC框架的开发教程,其中包含了源代码供学习者参考。Spring MVC是Spring框架的一个核心组件...
三、Spring MVC核心流程图:描述了Spring MVC处理请求的流程,包括前端控制器接收请求,经过分发器分发给具体的控制器,然后由控制器处理业务逻辑,最后将结果返回给用户。 四、Spring MVC DispatcherServlet说明:...
而Spring MVC是Spring框架的一部分,用于构建高性能、灵活的Web应用程序。 【描述】"使用MAVEN 结合SPRING DWR hiberante validation"提到了另外三个技术:DWR(Direct Web Remoting)、Hibernate和Validation。DWR...
Spring MVC 是一个强大的Java Web开发框架,用于构建可维护、高性能的Web应用程序。而Web服务是一种基于开放标准的,使得不同系统之间能够相互通信的技术。在本示例中,我们将探讨如何将Spring MVC与Web服务(特别是...
Spring MVC 是一款强大的Java Web开发框架,用于构建可维护、高性能和灵活的Web应用程序。它在Spring框架的基础上,为Web开发者提供了模型-视图-控制器(MVC)架构模式的实现,简化了Web应用的开发流程。在这个入门...
Spring MVC的工作流程如下: - 用户发起HTTP请求到达DispatcherServlet。 - DispatcherServlet根据请求信息(URL、参数等)找到合适的HandlerMapping,定位到具体的处理器(Controller)。 - HandlerAdapter执行...
Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序,而Spring JDBC则是Spring提供的用于简化数据库操作的工具。 【描述】"用spring4.0.5版本开发的,spring mvc,spring jdbc,最简单的用户登录,注册和...
Spring MVC是Spring框架的一部分,主要用于构建Web应用程序的后端控制器。这个"HelloWorld"实例是初学者学习Spring MVC的入门项目,它展示了如何配置、创建和运行一个基本的Spring MVC应用。下面将详细介绍这个实例...
Spring MVC、Spring 和 Maven 是Java开发中非常重要的三个框架,它们在构建现代企业级Web应用程序中扮演着核心角色。这个"spring mvc+spring+maven框架项目"提供了一个纯净的基础,便于开发者快速搭建和理解这三者...
通过运行这个"helloworld spring mvc"项目,开发者可以了解Spring MVC的基本流程:从浏览器发送请求到DispatcherServlet,DispatcherServlet根据配置找到对应的Controller方法执行,然后Controller处理请求并返回一...
Spring MVC是Spring框架的一个模块,专门用于处理Web应用程序的模型-视图-控制器(MVC)架构。它提供了一个灵活的机制来分离业务逻辑、用户界面和数据访问,使得代码更易于维护和测试。 Hibernate是一个对象关系...
这篇博文(尽管描述为空,但提供了链接)很可能是关于创建一个基本的Spring MVC项目并使用注解来管理控制器、视图解析和其他关键组件的教程。 1. **Spring MVC简介** Spring MVC是Spring框架的一部分,它提供了...
这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,专为构建 MVC(Model-View-Controller)架构的应用程序而设计。本示例提供了超简化的、完整的、注解驱动的 Spring MVC 应用程序,...
**Spring MVC** 是Spring框架的一部分,主要用于构建Web应用程序的Model-View-Controller(MVC)架构。Spring MVC通过解耦控制器、服务、模型和视图,使得代码更易于维护和测试。在本系统中,它负责处理HTTP请求,...
**Spring MVC 示例程序详解** Spring MVC 是 Spring 框架的一部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)框架...同时,通过调试和测试代码,可以进一步理解 Spring MVC 的工作流程,提升开发技能。
3. **注解接口**:在 Spring MVC 控制器中的方法上使用 Swagger 的注解,如 @ApiOperation 和 @ApiParam,来描述 API 的功能和参数信息。对于 MyBatis 的 Service 和 Mapper 接口,你也可以添加相应的注解来关联它们...
【标题】"Spring MVC + Activiti + MyBatis 小整合"揭示了这个项目的核心技术栈,它是一个基于Java的企业级应用示例,用于展示如何将这三个流行的技术框架集成在一起,构建一个完整的业务流程管理系统。Spring MVC是...
Spring MVC 是一个轻量级的、基于Java的Web应用程序开发框架,它是Spring框架的一部分,主要用于构建Web应用的模型-视图-控制器(MVC)架构。Spring MVC的设计目标是简化开发,提高可测试性,并促进良好的编程实践。...