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。
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
**Spring MVC原理:** Spring MVC是Spring框架的一部分,它遵循MVC模式,提供了处理HTTP请求的DispatcherServlet。DispatcherServlet接收请求后,根据请求URL和方法找到对应的HandlerMapping,然后调用对应的Handler...
"Spring MVC原理" Spring MVC原理是指Spring框架中MVC模式的实现原理。MVC模式是一种常用的软件架构模式,用于分离应用程序的逻辑和表示层。在Spring框架中,MVC模式被广泛应用于Web应用程序的开发。 Spring MVC...
本课程将深入讲解 Spring MVC 的核心原理和组件,特别是 HandlerAdapter 的作用。 首先,让我们回顾 MVC 应用场景。在传统的 Servlet 和 JSP 结合的开发模式中,请求首先到达 Servlet,Servlet 处理业务逻辑,然后...
在本课中,我们将深入解析Spring MVC的工作原理。 首先,我们来看看Spring MVC的核心功能特性: 1. **基于注解的URL映射**:开发者可以直接在控制器类的方法上使用`@RequestMapping`注解,定义URL与处理方法的对应...
这个压缩包包含了关于Spring MVC的案例、配置和原理的详细资料,对于初学者来说,是深入理解该框架的良好资源。 一、Spring MVC 基本概念 1. **模型-视图-控制器(MVC)**:MVC是一种设计模式,将业务逻辑、数据...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
理解这些核心概念并能够解释它们之间的交互关系,是掌握Spring MVC原理的关键。在面试中,你可能还需要讨论如何优化Spring MVC应用,例如使用缓存、AOP(面向切面编程)以及如何进行性能测试和调优等。此外,了解...
这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式基于Model-View-Controller(MVC),它将应用程序的业务逻辑、数据和...
在"Spring MVC原理及配置详解.txt"和"SpringMVC"文件中,可能包含了更详细的原理介绍、配置示例和实际的代码样例,供学习者深入理解SpringMVC的运作机制和实践应用。 通过以上内容,你可以了解到SpringMVC的基本...
Spring MVC 和 MyBatis 是两个在Java Web 开发中广泛使用的框架。Spring MVC 作为Spring框架的一部分,负责处理HTTP请求并转发到相应的业务逻辑,而MyBatis则是一个轻量级的持久层框架,用于简化数据库操作。整合这...
下面,我们将深入探讨Spring MVC的核心概念、工作原理以及如何创建一个简单的示例。 1. **Spring MVC 概述** Spring MVC是Spring框架的一部分,用于处理HTTP请求和响应。它采用Model-View-Controller(MVC)设计...
对于初学者来说,这是一份很好的实践指南,可以帮助理解Spring MVC的工作原理,并快速上手开发基于Spring MVC的Web应用。通过阅读和实践这份教程,你可以掌握Spring MVC的基本使用,为进一步深入学习和应用Spring...
要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC 环境搭建 1. jar 包引入 在使用 Spring MVC 之前,需要引入相应的 jar 包,包括 Spring 2.5.6 和 Hibernate ...
Spring MVC源码的深入理解有助于开发者更好地掌握框架的工作原理,优化代码性能,甚至为自定义扩展提供基础。 压缩包内的文件"www.pudn.com.txt"可能是一个链接或说明文档,指向更多关于该主题的资源,例如在pudn....
这个"spring MVC简单示例"是为了帮助初学者理解Spring MVC的基本工作原理和配置,通过实践这个例子,你可以了解到如何创建一个简单的Controller、配置视图解析器并建立一个基本的请求处理流程。随着对Spring MVC的...
Spring MVC 是一个强大的Java Web开发框架,用于构建可维护、...通过理解Spring MVC的MVC模式,掌握Web服务的基本原理,以及学习如何在Spring环境中配置和调用Web服务,开发者可以构建更加灵活和可扩展的Web应用程序。
《Mastering Spring MVC 3中文版》是一本深入解析Spring MVC框架的专业书籍,它涵盖了Spring MVC的核心概念、设计原理以及实际应用。Spring MVC是Spring框架的一部分,主要用于构建Web应用程序的模型-视图-控制器...