深入剖析Spring Web源码(二) - Web MVC介绍

这一章,我们将首先介绍经典的 MVC体系结构,通过对比 MVC和 Web MVC的区别,来深入理解 Web MVC的由来和特点。

1 MVC 体系结构

首先,我们介绍一下 MVC的体系结构。 MVC是软件工程中的一种软件架构模式。它把软件系统分为三个基本部分:模型,视图和控制器。如图表 2 ‑1 。
这里写图片描述
MVC体系结构实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外此模式通过对复杂度的简化使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。

1.1 控制器

(1)定义应用程序行为和流程
(2)映射用户动作到模型改变
(3)选择用于响应的视图
控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。响应包括更新数据模型和选择视图解释数据模型。

1.2 视图

(1)解释模型
(2)请求模型更新
(3)发送用户动作到控制器
视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型( Model),因此应该事先在被它监视的数据那里注册。

1.3 模型

(1)封装应用程序状态
(2)提供应用程序功能
(3)响应状态查询
(4)通知视图改变
模型用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。
上面我们介绍了 MVC体系结构的组件以及组件的职责,我们得知, MVC的各个组件是协同工作,而又互相独立,这样最大程度上实现了组件的重用和高可扩展性。 MVC主要是应用在传统的 C/S体系架构中。

2. Web MVC 体系结构

随着 B/S体系结构的应用程序的流行和快速发展, MVC体系结构思想被应用到 Web应用程序设计。 Web应用程序是基于 HTTP协议的,而 HTTP协议的最大特点就是无连接的。对于一个 Web客户端程序,每次和服务器的通信都是通过一次完整的 HTTP请求和响应来完成的。我们无法实现 C/S应用程序中实现的在视图层注册监听器来监听模型层改变的通知。取而代之的是视图每次需要主动的查询用户数据改变。如图表 2 ‑3 。
这里写图片描述
我们能看出,唯一不同的就是模型层不再通知视图层是否存在着状态改变。而是要求视图层主动的去通过控制器查询模型层的改变。如果模型状态改变,控制器则选择一个新的视图解释模型的改变。通过 MVC在 Web应用程序的应用,使 Web应用程序同样可以有层的概念并且有较好的体系结构,易于维护和容易扩展。

3. 本章小结

这一章,介绍 MVC的体系结构和工作原理,通过对比 MVC和 Web MVC来深入理解 Web MVC的由来和特点。
下一章,我们将从整体架构上分析 Spring是如何实现 Web MVC体系结构的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
英文版:Expert Spring MVC and Web Flow 内容简介 《深入解析Spring MVCgn Web Flow》是Spring MVCWeb Flow 两个框架的权威指南,书中包括的技巧和提示可以让你从这个灵活的框架中汲取尽可能多的信息。书中包含了一些开发良好设计和解耦的Web 应用程序的最佳实践,介绍Spring 框架中的Spring MVCSpring Web Flow,以及着重介绍利用Spring 框架和Spring MVC 编写Web 应用程序的最佳方法。《深入解析Spring MVCgn Web Flow》还介绍Spring 框架的设计模式,以及如何将同样的设计和技术应用到读者自己的代码中。 《深入解析Spring MVCgn Web Flow》适合各层次Spring Web 程序员阅读。 编辑推荐 《深入解析Spring MVCgn Web Flow》来自Spring开发团队的权威之作前所未有地深入剖析Spring MVC技术内幕大量专家经验和技巧,全面提升你的Web开发境界 Spring MVCSpring Web Flow是Spring平台上两个极为灵活而且功能强大的Web框架。前者是构建在Spring框架上的Web应用程序框架,可以同许多其他视图技术无缝集成;后者是控制业务处理流程的有效解决方案,提供了一种编写有状态和基于会话的Web应用程序的简便手段。 《深入解析Spring MVCgn Web Flow》出自Spring核心开发者之手,不仅详细分析代码,全面剖析了两个框架的各种特性(包括一些不为人知的技术亮点)。告诉读者如何最大程度地发挥出它们的潜力。还解密了设计这两个框架时的许多决策内幕、所应用的设计模式和面向对象技术,使读者能够更深入地了解Spring。并在自己的项目中运用这些专家技术,全面提升自己的Web开发境界。 《深入解析Spring MVCgn Web Flow》由spring框架的开发和维护者SpringSource公司组织编写,作者均为资深Spring工程师或咨询师。 Seth Ladd是资深Spring培训师,曾为NEC公司等许多国际性机构构建Web系统。Darren Davison和StevenDevijver都曾是Spring核心开发人员,在Spring源代码和文档中可以很容易地找到他们的名字。而Colin Yates、Keith Donald和Rob Harrop均是SpringSource资深工程师,仍然是Spring新版本开发的核心骨干。Yalcs是.J2EE主架构师,Donald是SpringWeb Flow负责人,Hartop是Spring与Tomcat成产品负责人。“《深入解析Spring MVCgn Web Flow》为Spring社区弥补了一大空白。” ——Lasse Koskela.JavaRanch版主,Test Driven作者“《深入解析Spring MVCgn Web Flow》是非常急缺的深入讲解Spring MVCf~~Spring Web Flow的图书堪与Pro Spring相媲美。” ——Steve Anglin,资深Java技术专家
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值