`
John_Kong19
  • 浏览: 276257 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring MVC体系结构

阅读更多

概述

    大部分Java应用都是Web应用,展现层是Web应用不可忽略的重要环节。Spring为展现层提供了一个优秀的Web框架——Spring MVC。和众多其它Web框架一样,它基于MVC设计理念,此外,由于它采用了松散耦合可插拔组件结构,具有比其它MVC框架更多的扩展性和灵活性。

    Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet的作用是截获请求并组织一系列组件共同完成请求的处理工作。

体系结构

    Spring MVC是基于Model 2实现的技术框架,Model 2是经典的MVC(Model,View,Control)模型的Web应用变体,这个改变主要源于HTTP协议的无状态性。Model 2的目的和MVC一样,也是利用处理器分离模型、视图和控制,达到不同技术层级间松散耦合的效果,提高系统灵活性、复用性和可维护性。在多数情况下,你可以将Model 2与MVC等同起来。

    在利用Model 2之前,我们把所有的展现逻辑和业务逻辑集中在一起,有时也称这种应用模式为Model 1,Model 1的主要缺点就是紧耦合,复用性差,维护成本高。

    由于Spring MVC就是基于Model 2实现的框架,所以它底层的机制也是MVC,我们通过图 1描述Spring MVC的宏观体系结构: 

 图 1 Spring MVC具体实现

    从接受请求到返回响应,Spring MVC框架的众多组件都伸胳膊挽袖子行动起来,各司其职,有条不紊地完成份内的工作。在整个框架中,DispatcherServlet处于核心的位置,它负责协调和组织不同组件,共同完成请求响应的工作。和大多数Web MVC框架一样,Spring MVC通过一个前端Servlet处理器接收所有的请求,并将具体工作委托给其它组件进行具体的处理,DispatcherServlet就是Spring MVC的前端Servlet处理器。下面我们对Spring MVC处理请求的整体过程做一下高空俯瞰:

① 整个过程开始于客户端发送一个HTTP请求;

② DispatcherServlet接收这个请求后,并将请求的处理工作委托给具体的处理器(Handler),后者负责处理请求执行相应的业务逻辑。在这之前,DispatcherServlet必须能够凭借请求信息(URL或请求参数等)按照某种机制找到请求对应的处理器,DispatcherServlet是通过垂询HandlerMapping完成这一工作的;

③ 当DispatcherServlet从HandlerMapping中得到当前请求对应的处理器后,它就将请求分派给这个处理器。处理器根据请求的信息执行相应的业务逻辑,一个设计良好的处理器应该通过调用Service层的业务对象完成业务处理,而非自己越俎代庖。

Spring提供了丰富的处理器类型,在真正处理业务逻辑前,有些处理器会事先执行两项预处理工作:

1)将HttpServletRequest请求参数绑定到一个POJO对象中;
2)对绑定了请求参数的POJO对象进行数据合法性校验;

④ 处理器完成业务逻辑的处理后将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和渲染视图时需要用到的模型数据对象;

⑤ 由于ModelAndView中包含的是视图逻辑名,DispatcherServlet必须知道这个逻辑名对应的真实视图对象,这项视图解析的工作通过调用ViewResolver来完成;

⑥ 当得到真实的视图对象后,DispatcherServlet将请求分派给这个View对象,由其完成Model数据的渲染工作;

⑦ 最终客户端得到返回的响应,这可能是一个普通的HTML页面,也可能是一个Excel电子表格、甚至是一个PDF文档等不一而足的视图形式,Spring的视图类型是异常丰富和灵活的。

以上每一个步骤都包含丰富的知识点,本文将通过一个实例涵盖所有的组件,你可以从中认识到每个组件的庐山真面目,不过现在我们首先要做的第一件事是在web.xml中配置好DispatcherServlet,让这颗“启辉器”真正工作起来。

 

  • 大小: 43.2 KB
分享到:
评论
2 楼 xunke515 2013-06-19  
了解了下流程,感谢分享.
1 楼 wkcgy 2011-09-15  
讲的不错!顶一个!!

相关推荐

    Spring MVC框架的体系结构

    把以前学习的东西做一个整理,方便实时查阅,希望大家能够喜欢。

    spring,spring mvc,hibernate,ehcache Java后台框架

    Spring,Spring MVC,Hibernate,以及Ehcache是Java开发中常用的四大框架,它们共同构建了高效、稳定的后台应用体系。 Spring框架是Java企业级应用的事实标准,它提供了一个全面的编程和配置模型,用于简化企业级...

    struts VS spring mvc

    - **Spring MVC 的体系结构**: - **视图层**:同样采用 JSP 或其他视图技术,Spring MVC 支持多种视图技术,如 Thymeleaf、Freemarker 等。 - **模型层**:与 Struts 类似,模型层通常封装业务逻辑和数据访问。...

    Spring MVC 3.0实战指南.ppt

    Spring MVC框架结构 Spring MVC框架结构 框架的实现者 目录 HTTP请求映射原理 Spring MVC进行映射的依据 通过URL限定:URL表达式 通过URL限定:绑定{xxx}中的值 通过请求方法限定:请求方法 通过请求方法限定:代码示例 ...

    packt-spring-mvc:使用Spring MVC构建Web应用程序

    ####开发环境JDK 7 弹簧工具套装IDE Apache Maven 3.2.1 Tomcat 7.0Spring MVC应用程序的各层 :copyright:来源这是我这本书的进度: 第1章:配置Spring开发环境第2章:Spring MVC体系结构-架构您的Web商店第3章:...

    Spring MVC应用开源架构源码2021.pdf

    首先,MVC体系结构是一种常用的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。模型负责数据和业务逻辑;视图负责展示数据;控制器负责接收用户输入并调用模型和...

    Expert Spring MVC and Web Flow.rar

    1. **Spring MVC基础**:包括Spring MVC的体系结构、DispatcherServlet的作用、@RequestMapping注解的使用、模型数据的管理、视图解析和视图技术的比较。 2. **控制器的实现**:了解Controller接口和@Controller...

    spring+spring mvc+mybatis完整的jar包

    Spring、Spring MVC和MyBatis是Java开发中广泛使用的三大框架,它们共同构建了一个高效、灵活的Web应用程序体系结构。这个“spring+spring mvc+mybatis完整的jar包”包含了这三个框架的核心组件和其他必要的依赖库,...

    Spring mvc hibernate spring 开发所需jar包

    在Java企业级应用开发中,Spring、Spring MVC和Hibernate是三个非常重要的框架,它们共同构建了一个强大的后端开发体系。这个压缩包包含了这三个框架以及其他相关技术的jar包,确保了项目能够正常运行。 Spring框架...

    spring mvc extjs

    - **组件模型**:ExtJS基于组件的体系结构,提供了各种预定义的UI组件,如表格(Grid)、表单(Form)、面板(Panel)等。 - **Data Package**:包括Store、Model和Proxy,用于处理数据加载、存储和同步。 - **...

    使用Gradle ,tomcat 下构建最简单Spring MVC

    1. **设置项目结构**:创建一个新的Gradle项目,定义标准的Spring MVC目录结构,包括`src/main/java`(源代码)、`src/main/resources`(资源文件)、`src/main/webapp`(Web应用目录)等。 2. **配置Gradle**:在`...

    _第一课:spring mvc 原理深度解析1

    面试时,理解Spring MVC的体系结构至关重要。其中包括`HandlerMapping`、`HandlerAdapter`、`ViewResolver`、`HandlerExceptionResolver`以及`HandlerInterceptor`这些关键组件,它们协同工作,完成请求处理的全过程...

    Spring3MVC注解教程.ppt

    Spring MVC框架结构 Spring MVC框架结构 框架的实现者 目录 HTTP请求映射原理 Spring MVC进行映射的依据 通过URL限定:URL表达式 通过URL限定:绑定{xxx}中的值 通过请求方法限定:请求方法 通过请求方法限定:...

    spring-webmvc-struts.jar

    深入研究`spring-webmvc-struts.jar`的源代码,我们可以看到Spring如何无缝地集成到Struts的体系中。例如,`StrutsActionProxy`类是如何拦截Struts的请求,然后通过Spring的IoC容器查找并调用对应的bean方法。同时,...

    简述java技术的web体系结构-mvc

    总结来说,Java Web的MVC体系结构为开发人员提供了一个高效、灵活的框架,用于构建复杂、可扩展的Web应用程序。通过理解并熟练运用MVC模式,开发者可以更好地组织代码,提高开发效率,并确保项目的长期可持续性。

    员工工资管理系统,基于 spring mvc,spring,hibernate,maven 框架开发

    《员工工资管理系统——基于Spring MVC、Spring、Hibernate和Maven框架》 员工工资管理系统是一款典型的企业级应用,它采用先进的技术栈,包括Spring MVC、Spring、Hibernate和Maven,为企业的薪酬管理提供了一套...

    spring+spring mvc + mybaties的整合需要的包

    在Java开发领域,Spring、Spring MVC和MyBatis是三个非常重要的框架,它们共同构建了一个强大的企业级应用开发体系。Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,极大地...

    Spring+Mybatis+Spring MVC需要的jar包

    首先,Spring框架是整个体系的核心,它提供了依赖注入(DI)和面向切面编程(AOP)的能力,极大地简化了Java应用程序的开发。Spring框架的jar包包括: 1. spring-core:Spring的核心模块,提供了基础的IOC(Inverse...

    基于spring mvc、hibernate的校园微博设计与实现

    本系统是我的毕设,是基于spring mmvc 、hibernate的校园微博的设计与实现,spring是目前主流的框架!一点都不含糊的说 Spring 代替了struts2它有了自己的控制器 自己的视图接口 关于系统的试用方式是,servler....

    基于Spring+Springmvc+Mybatis的二手车交易管理系统【含论文+PPT+开题报告+任务书】

    详细技术:CSS+jsp+JS+JAVA+spring+springmvc+mybatis+MYSQL+Maven 三、系统功能 本二手车交易平台使用角色为用户、商家、管理员。框架界面分为前台、注册用户操作界面、管理员操作界面。用户的功能设计为: (1)...

Global site tag (gtag.js) - Google Analytics