已阅读5页,还剩53页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于mvc模式的struts框架在直销管理系统中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 y 9 3 0 1 4 9 随着计算机科学技术的发展,计算机得到越来越广泛的应用,越来越多的行业 都使用自己的管理系统来进行日常的业务管理工作。但目前使用的这些管理系统大 多是早期丌发的w i n d o w s 操作系统下的单机版软件,普遍存在着可移植性差、工作 效率低、町扩展性差、可维护性差等缺点。因此,迫切需要对这些原有系统进行有 效的改进,克服原有系统存在的种种弊端。 n t e m e t 技术和企业信息化建设的发展,使得基于w e b 的管理信息系统需求越 来越多。在实际的系统开发中,根据不同的项目我们力图寻找新的解决方案,这种 方式花费较大,无法满足企业信息化建设发展的要求。因此在丌发w e b 应用系统的 过程中,就需要有一种好的设计模式,一个好的可复用的系统框架设计作为一种可 行的方案来实现系统的快速开发及灵活配置,并达到较高的可靠性、可扩展性及模 块的重用性。 针对上述提出的问题,本文以基于m v c 设计模式的s t r u t s 框架在w e b 层的开 发应用作为重点展开论述。首先详细比较了b s 体系结构与c s 体系结构,然后深 入分析了m v c 设汁模式和实现m v c 设计模式的s t r u t s 框架,着重于讨论s t r u t s 是 如何实现m v c 模式以及s t r u t s 的各组件是如何协同工作的。最后根据对直销管理 系统的功能需求分析,讨论了如何结合s t r u t s 框架将m v c 设计模式应用到该系统 开发中。 关键字:设计模式,m v c ,s t r u t s ,直销管理系统 t h ea p p l i c a t i o no fs t r u t sf r a m e w o r kb a s e do nm v c p a t t e r ni nd i r e c t - s a l em a n a g e m e n ts y s t e n n a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m p u t e rt e c h n o l o g y , c o m p u t e rh a sb e e nu s e di na l lk i n d s o ff i e l d sw i d e l y a n dm o r ea n dm o r ev o c a t i o n sm a k eu s eo f t h e i ro w n m a n a g i n gs y s t e m s i nt h e i rd a l i yl i v e s b u tn o w , m o s to ft h es y s t e m sb e i n gu s e db e l o n gt ot h ep cs o f t w a r e w i t h i nw i n d o w so p e r m i n gs y s t e m ,w h i c hh a db e e nd e v e l o p e de a r l i e r a n di th a sm a n y d e f e c t s ,s u c ha sb a dp o r t a b i l i t y , l o we f f i c i e n c y , b a de x p a n d a b i l i t y , s i c km a i n t a i n a b i l i t y , a n ds oo n t h e r e f o r e ,i ti su r g e n tt oi m p r o v et h i ss y s t e mi no r d e rt or e m o v et h e s ed e f e c t s f r o mt h eo r i g i n a ls y s t e m s t h ed e v e l o p m e n to ft e c h n o l o g ya n di n f o r m a t i o ni n d u s t r ym a k e su sr e q u i r em o r e a n dm o r es y s t e m sb a s e do nw 曲i nt h ea c t u a ls y s t e m sd e v e l o p m e n t w et r yt of i n da n e ww a yc o n f o r m i n gt od i f f e r e n tg o a l s b u ti tc a nn o tm e e tt h en e e do fm o s tc o m p a n i e s i n f o r m a t i o nc o n s t r u c t i o nf o ri tt o oe x p e n s i v et od oi t t h u s ,w h e nd e v e l o p i n gw e b o p e r m i n gs y s t e m ,w en e e dg o o dd e s i g n i n gm e t h o da n dr e u s a b l ef r a m e w o r kw h i c hc o u l d b er e c y c l e da so n ef e a s i b l ew a yt oa c h i e v er a p i dd e v e l o p m e n ta n dg o o dc o n f i g u r a t i o n a t t h es a m et i m e ,i tc a nm a k ey o u ro v e nd e s i g n sm o r ef l e x i b l e ,m o d u l a r , r e u s a b l e ,a n d u n d e r s t a n d a b l e i na l l u s i o nt op r o b l e m sp u tu pa b o v e ,t h i sp a p e rw i l lg i v em u c hm o r ed e p i c t i o n b a s e do ns t r u t sf r a m eo fm v cd e s i g np a a e r n sd e v e l o p e do nw e b f i r s t l y , i tw i l l c o m p a r et h eb ss y s t e mw i n lc ss y s t e mi nd e t a i l t h e ni tw i l la n a l y s et h em v cd e s i g n p a r e m sa n dt h es t r u t sf r a m et oa c h i e v em v cd e s i g np a t t e r n sa n df o c u s e do nd i s c u s s i n g h o wt h es t r u t si st om a k em v cm o d ea n da l lp a r t so fs t r u t sw o r ki nl i n e f i n a l l y , i ts a y s t h a th o wt op u tm v cd e s i g np a t t e r n si n t ot h i ss y s t e md e v e l o p i n ga c c o r d i n gt ot h e a n a l y s i so nt h ef u n c t i o no f d i r e c t - s a l em a n a g i n gs y s t e m k e yw o r d s :d e s i g np a a e m s ,m v c ,s t r u t s ,d i r e c t s a l em a n a g e m e n ts y s t e m 1 1 课题研究意义 1 绪论 在开发w e b 应用系统的过程中,经常会遇到这样的问题:如何进行系统的框架 设计才能更有利于模块化的设计与编码、系统功能的扩展以及快速有效的维护。 在系统开发中,我们都需要根据实际应用寻找一个新的解决方案。为了提高开 发的效率,及应用系统的灵活性、安全性、实用性等,就需要有一种好的设计模式, 一种可复用的系统架构的框架设计作为一种可行的方案来解决这一常见的问题。 m v c ( m o d e l v i e w c o n t r o l l e r ) 模式是国外用的比较多的一种设计模式。对于开发w e b 应用,要从头设计并开发出一个可靠、稳定的框架并不是一件容易韵事,幸运的是, 随着w e b 开发技术的日益成熟,在w e b 开发领域出现了一些现成的优秀框架,我 们可以直接使用他们,s t r u t s 就是一种不错的选择,本文重点讨论使用最为广泛的 s t r u t s 框架在开发中的应用。 s t t u l s 框架是个在不断升级中的丌源项目,新的版本会不断的增加功能,越来 越强大。稳定的s t r u t s l 1 版已经在国内外许多的大型w e b 应用项目中得到应用, s t r u t s 的当前版本是1 2 。本文的研究是基于s t r u t s l 1 版的。本文以基于m v c 设计 模式的s t r u l g 框架在系统中的应用为线索展开讨论。由于j a v a 语言的广泛应用,与 其相关的技术和各种设计思想飞速发展,种类繁多。在设计一个系统的时候,面对 众多的技术和设计思想,孰优孰劣,如何选择昵? 本文在分析了系统的架构设计之 后,又进一步针对核心层傲了详纽的分析和设汁,讨论了每层可采用的主流技术, 这对于应用系统的设计和开发有很强的指导意义。 1 2 课题研究背景及内容 随着计算机的普及,备行各业逐渐认识到了利用计算机对日常事务进彳亍管理的 必要性,于是他们纷纷采用各种管理系统,从而摆脱了繁重的手工操作,提高了工 作效率。然丽随着全国信息化建设的推进,特剔是互联网的发展,这使得在一定时 期内发挥过很大作用的原有系统逐渐暴露出弊端。 早期开发的软件多数是传统的c s 体系结构,需要针对不同的操作系统开发不 同版本的软件,造成产品的更新换代频繁,高代价和低效率困此越来越不适应实 际工作上的需要。任j a v a 这样的一个强大的跨平台面向对蒙语言出现之后,b s 体系结构逐渐取代了c s 体系结构。基于多层b s 体系结构的j 2 e e 平台的出现和 广泛应用使得多层w e b 体系结构得到迅猛发展并逐渐成熟起来。在w e b 开发过 筘带绪论 程巾,系统框架设计不合理给,r 发工作带来很多团难:结构不清晰、代码混乱、模块 难以复用、系统难予扩熙邱维护等等。即使系统最后运行起来,丌发的代价也远远 超过了成本。本文通过对目前主流w e bj 1 :发技术的进一步学习,以解决这- 问题作 为目标,确定了以基于m v c 设计模式的s t r u t s 框架在管理信息系统中的应用作为 研究方向,并且本文的设计思想在直销管理信息系统的丌发过程中得到了充分的应 用,并且取得了成功。 本论文研究的主要内容有: ( 1 ) w e b 应用系统开发的一般模式以及m v c 模式的分析。 ( 2 ) s t r u t s 框架的分析,特别是分析其m v c 设计模式的实现方式,分析其如 何实现表示逻辑与业务逻辑的分离。 ( 3 ) 根据系统整体结构的设计方案,详细分析了直销管理系统的实现技术, 最后就直销管理信息系统的业绩管理子模块的实现给出了详细的实现 步骤。 1 3 论文组织结构 本论文的章节层次结构如下: 第一章:绪论。介绍论文的研究意义、研究背景和主要内容,以及论文的组织 结构。 第二章:j 2 e e 体系结构与m v c 设计模式。首先介绍了c s ( c l i e n t s e r v e r ) 结构 和b s ( b r o w e r s e r v e r ) 结构,讨论了b s 结构相对c s 结构的优势。然后介绍了j 2 e e 体系结构,最后分析比较了w e b 应用系统开发的一般模式和m v c 模式,总结m v c 模式的优缺点。 第三章:s t r u t s 应用框架。在对s t r u t s 技术进行深入研究的基础上,文中详细讲 解了s t r u t s 框架的核心组件、如何配置s t r u t s 应用程序、s t r u t s 框架开发应用程序的 流程以及s t r u t s 的特色技术标签库等。 第四章:直销管理系统的设计。首先介绍了直销系统的行业背景,然后详细分 析了该系统的功能,并给出了主要功能模块的设计,最后提出该系统的设计框架。 第五章:直销管理系统的实现。在开发过程中,始终遵循着m v c 模式的理念, 采用s t r u t s 框架开发w e b 应用程序。利用系统中的业绩管理模块的开发实例为范 本,详细介绍了基于s t r u t s 框架开发w e b 应用程序的方法和过程。 最后总结了作者在论文中所完成的工作以及心得体会,并且提出了下一步需要 探索和研究的任务。 讹章j 2 e e 休最结构州m vc ? 砹汁模j 2j 2 e e 体系结构和m v c 设计模式 2 1d 2 e e 的体系结构 在早期的数据库应用系统中,传统的c s ( c l i e n t s e r v e r 结构或客户机朋艮务器) 两层体系结构的数据库系统占据了数据库系统应用中的主导地位。然而随着信息技 术的高速发展使计算模式不断更新,计算模式发生了巨大变化。同时它的不断进步 又促使信息管理系统的体系结构发生了很大变化f 1 1 1 2 。i n t e m e t 时代信息管理系统的 基本架构将以多层b s 结构为主流。 2 1 1c s 体系结构与b s 体系结构 软件体系结构主要经历了三个阶段:集中式的结构,客户机服务器结构,浏览 器朋艮务器结构。集中式结构属于全封闭式系统,不同系统之间无法进行交流,信息 共享能力差,系统扩展不方便,己经无法适应信息技术发展的需求。尽管c t s 结构 相对于之前更早的文件服务器来说,有了很大的进步,但与b s 结构相比口j ,c s 结构的缺点和b s 结构的优点是很明显的,由此c s 结构逐渐被b s 结构所取代。 首先,b s 比c s 的维护工作量大大减少了。c s 结构的每一个客户端都必须 安装和配置软件。假如一个企业共有5 0 个客户站点使用一套c s 结构的软件,则 当这套软件进行了哪怕很微小的改动后( 比如增加一个功能) ,系统维护员都必须 进行这样的维护:将服务器更新到最新版本,将客户端原有的软件卸载,再安装新 的版本,然后进行设置,最为可怕的是客户端的维护工作必须不折不扣的进行5 0 次。而b s 结构的优点是维护方便。客户端运行软件就象我们平时上网浏览网页一 样,有个浏览器( 通常是i e 5 o ) 就行了, 的维护、升级工作都只在服务器上进行, 新版本的软件。 不用安装其他软件。b s 结构的软件所有 而客户端只要重新登陆系统,就能使用最 其次,b s 相对c s 能够降低总体拥有成本,c s 一般是采用两层结构的。而 b s 采用的是三层结构。两层结构中,客户端接受用户的请求后,客户端向数据库 服务器提出请求,数据库服务器将数据提交给客户端,客户端将数据进行计算( 可 能涉及到运算、统计等) 并将结果呈现给用户。在三层结构中,客户端接受用户的 请求,客户端向应用服务提出请求,应用服务从数据库服务中获得数据并将计算并 后的结果提交给客户端,客户端将结果呈现给用户。 第一尊j 2 e e 协系结栅f nm v c 改汁 羹l 2 1 2j 2 e e 体系结构 w e b 技术历经了 | 几年的不断发展和完善,当前已经是整个i n t e r n e t 的重要组 成部分了。随着在2 0 0 0 年前后,两人开发阵营j a v a 和w i n d o w s 提出分别基于j 2 e e 和n e t 技术的w e b 应用解决方案后,在这个领域内,这两种技术的在不断竞争、 不断提升技术、不断争夺市场中得到突弋猛进的发展。 其中j 2 e e 4 1 框架凭借j a v a 技术为基础,以s e r v l e t ,j s p 和e j b 三大核心技术为 支撑得到众多厂家的大力支持。至2 0 0 3 年为止,j 2 e e 的三大核心技术已经发布到 s e r v l e t 2 4 ,j s p 2 0 和e j b 2 1 ,从而为以j 2 e e 框架开发w e b 应用提供了强有力的技 术支撑。 j 2 e e 平台使用了一个多层的分布式的应用程序模型【5 】。应用程序的逻辑根据其 实现的不同功能被封装到组件中,组成j 2 e e 应用程序的大量应用程序组件根据其 所属的多层的j 2 e e 的环境中所处的层次被安装到不同的位置( 如图2 1 ) ,表示了两 种多层的j 2 e e 应用程序根据下面的描述被分为不同的层次结构。 1 运行在客户端机器的客户层组件: 2 ,运行在j 2 e e 服务器中的w e b 层组件; 3 运行在j 2 e e 服务器中的商业层组件; 4 运行在e i s 服务器中的企业信息系统( e 1 s ) 层软件。 尽管图中可以看到j 2 e e 应用程序既可以是三层结构,也可以是四层结构,但 是通常将j 2 e e 应用程序的多层结构考虑为三层结构。这是因为它们分布在三个不 同的位置:客户端机器、j 2 e e 服务器机器和在后端的传统的机器。三层结构的应用 程序可以理解为在标准的两层结构的客户端服务器模式的客户端应用程序和后端 存储资源中问增加了一个多线程的应用程序服务器。 图2 - 1j 2 e e 各层结构的应用程序 筘节j 2 e e 体系纠构年m v c 改汁模j l 2 2 两种w e b 开发模式 在w e b 应用”发技术的发展史上,曾经涌现出了多种技术。但是随着具有优秀 跨平台性的j 2 e e 平台的出现和发展,越来越多的w e b 应用开始在j 2 e e 平台上进 行开发。而作为j 2 e e 平台主要组成部分之一的j s p ,逐渐受到了丌发人员的广泛青 睐,在w e b 应用系统的开发过程中占据了重要的一席之地。这是因为j s p 页面不仅 拥有跨平台和跨w e b 服务器的特性,而且可以非常容易的将业务逻辑、服务器端处 理过程和静态h t m l 页“所见即所得”的功能相结合,同时实现显示、业务逻辑和 流程控制等功能,从而帮助开发人员快速的完成任务。 j s p 技术规范给出了两种使用j s p 开发w e b 应用的方式,这两种方式可以归纳 为模型- - ( m o d e l1 ) 和模型:l ( m o d e l2 ) ,两者的主要差别在于它们处理业务的流程不 同。 2 2 1m o d e i1 模式 在很多情况下,一组j s p 页面就可以构成一个完整的w 曲应用。这种以j s p 页面为中心,以j a v a b e a n 处理业务逻辑的开发模型被称作m o d e l1 【6 1 。在这一模型 中,j s p 页面独自响应请求并将处理结果返回给客户,所有的数据通过j a v a b e a n 来 处理,j s p 实现页面的表现。这种模型的体系结构如图2 2 所示。 渖i 俯 器 t 一一一一l 图2 2m o d e l 1 体系结构 从图2 2 可以看出m o d e l 1 体系结构的工作流程如下: 1 从客户端的w 曲浏览器读取用户请求,并将请求发送到j s p 页面; 2 j s p 页面调用相应的业务逻辑j a v a b e a n 处理请求; 3 j a v a b e a n 根据用户请求操纵位于e i s 层的数据库; 4 j a v a b e a n 取得返回结果; 5 j a v a b e a n 将取得的结果传送给j s p 页面: 6 j s p 页面将结果生成h r r p 文档返回给客广1 端。 j s p 文件是构成m o d e l1 的基础,它独立接收和响应用户请求,并将处理结果 筑帚1 2 e e 似系 构年nm v c 吐汁模 返回客户。总的来说,这种模式的优点是简译,可以很好的满足小型应用丌发的需 求。虽然这种模型也实现了页而表现和业务逻辑相分离,然而不加选择地大量使用 这种模型,就需要在j s p 页而中嵌入大量脚本小程序( s c r i p t ) 或j a v a 代码,尤其是 在需要处理的业务逻辑比较复杂时,这种情况会变得非常糟糕。人量的嵌入式代码 会使整个页面程序变得异常复杂。虽然对j a v a 开发人员而言,这似乎不算是大问题, 但如果j s p 页面是由美工人员创建并维护( 大型项目通常如此) ,则代码的开发和维 护将出现困难。显然,这种模型不适合大型应用的需求。在任何应用,尤其是企业 级应用的开发过程中,使用这种模型难免会导致定义不清的响应和项目管理的困 难。 此外,这种模型还存在另一个缺陷:每个j s p 页面必须单独负责管理应用程序的 状态、验证与安全性。 2 2 2n o d e l2 模式 m o d e l2 t 6 i 也称作j s p + s e r v l e t + j a v a b e a n s 开发模型。这一模型结合了j s p 和 s e r v l e t 技术,充分利用了两种技术原有的优势。在这个模型中,j s p 技术用于表现 页面,s e r v l e t 技术负责完成大量的业务处理,j a v a b e a n 用来存储数据。其中,s e r v l e t 用来处理请求的事务,充当一个控制者的角色,并负责向客户发送请求:它创建j s p 需要的b e a n 和对象,然后根据用户请求的行为决定将哪个j s p 页面发送给客户。 这种模型 请求 、i s n k 7 l( 控制器) r 、k 【誊 ,夕气忑i :卜、 | 数据库 器 响应,蠡i 。 眇 、, ( 视图) 图2 3m o d e l2 体系结构 从开发的观点来看,m o d e l2 具有更清晰的页面表现,清楚的开发角色划分, 可以充分发挥开发团队中的网页设计人员和j a v a 开发人员的才干。这些优势在大型 项目中表现得尤为突出,网页设计人员可以充分展示自身的美术和设计才能来表现 页面,而程序编写人员可以充分发挥自己的业务逻辑处理思维来实现业务处理。 另外,从设计结构来看,这种模型充分体现了模型一视图一控制器( m v c ) 的设 计模式。事实上,现存的很多开发框架都是基于这种模型的,例如a p a c h es t r u t s 框 架、j a v as e r v e rf a c e s 框架等。 6 第帚j 2 e e 体系结构和m v c 醚【l 模, 2 3w c 设计模式 2 3 1 什么是设计模式 w e b 应用的开发已经成为i n t e m e t 时代的主流应用,但仍然缺乏统一的规范和 有效的方法,常常依赖开发者的喜好和习惯。随着w e b 应用的规模和复杂程度的 增加,即席的、依赖程序员个人能力的开发方式已经不适应大规模w e b 应用开发 的需要。于是软件工程专家提出了w e b 工程的概念,认为w e b 应用的开发仍然 需要经过分析、设计、实现和维护的生命周期,借用软件丌发领域中成熟的方法和 技术具有十分重要的意义。 但是,由于w e b 应用的特殊性,需要对软件丌发中的方法与技术及进行裁剪 并注入新的内容,w e b 开发中设计模式的引入,无疑是股新鲜的血液。 在面向对象系统的设计中,可以认为,类及其生成的对象是构成面向对象系统 的最基本元素;采用设计方法组合这些元素,得到构成面向对象系统的构件,同时, 这些构件的设计方法在经过不断的改进和完善后逐渐成型,成为构成面向对象系统 的基本设计参考,也称为设计模式( d e s i g np a t t e r n ) 蝉l 。 一般而言,一个模式有四个基本要素1 7 j : 1 模式名称( p a t t e r nn a m e ) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新 的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上进行设计。 基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用 它们。模式名可以帮助我们思考,便于我们与其它人交流设计思想及设计结果。找 到恰当的模式名也是我们设计模式编目工作的难点之一。 2 问题( p r o b l e m ) 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可 能描述了特定的设计问题,如怎样用对象表示算法等。也可能接述了导致不灵活设 计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 3 解决方案( s o l u t i o n ) 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为 模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具 体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素 组合( 类或对象组合) 来解决这个问题。 4 效果( c o n s e q u e n c e s ) 描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述设计决策时, 并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有 了 辩啦j 2 e e 似系组掬和m v c 吐汁摸a 重要意义。软件效果大多关注对时蚓和空问的衡量,它们也表述了语言和实现问题。 因为复用是面向对象设计的要素之一,所以模式效果包括它埘系统的灵活性、扩充 性或可移植性的影响,显式地列出这些效果刈理解和评价这些模式很有帮助。出发 点的不同会产生对什么是模式和什么不是模式的理解不i 司。一个人的模式对另一个 人来说可能只是基本构造部件。 设计模式在很大程度上改善了软件程序结构,使设计具有更好的弹性。它提供 了在特定应用场景下解决问题的类、对象及相互关系的设计方法。这些方法并不针 对于具体的系统,只是提供了一种设计系统的思路,这样做只是为系统搭起了一个 “空架,要真正的完成系统的开发还需要完成许多具体的编程工作。 一个设计模式可能用于不同的系统,一个系统也可能会用到多个设计模式。使 用合适的设计模式,不但使代码可重用性、可扩展性得到增强,而且最重要的是能 够加挟系统的开发速度,提高开发效率。 2 3 2w c 模式的特点 正是由于m o d e li 在开发过程中存在许多缺陷,因此基于m v c 设计模式的m o d e l 2 成为了在j 2 e e 平台上开发大型w e b 应用的首推架构。 m v c 的核心是实现三层甚至多层的松散耦合,它将一个应用系统分为三个组件 9 1 ( 1 ) m o d e l :模型通常也被称作业务逻辑,它指的是真正完成任务的代码,包 含应用系统的核心功能,表示一个应用系统的数据,并且包含访问、维护和管理这 些数据的逻辑。所有属于应用系统持久状态的数据都应该保存于模型对象里。模型 提供的服务必须足够适用于不同的终端。一个模型聚集了相关的数据和操作,以提 供一个详细而精确的服务:这些被封装在操作中的抽象事物的功能被模型化。一个 模型的接口提供了访问和更新模型状态,执行封装在模型中的复杂进程的方法。模 型服务被控制器访问,用于查询或更改模型的状态。当模型状态发生变化时,模型 会通报给视图。对大多数w e b 应用程序而言,功能比界面感觉更重要。在模型同界 面分离的情况下,代码即可实现可管理性和可重用性。 ( 2 ) v i e w :视图表示模型的状态,是应用系统的外观,当模型发生改变时,视图 也将随之改变,以维持系统数据的一致性。在5 c i 虻模式下,通常的设计前提是界面 任务较小。当然视图也应该具有一定的功能性并遵守可用性的约束,但视图界面不 应当处理数据。事实上,视图的每一部分都只能包含采集数据的逻辑,并把采集到 的数据传递给设计模式中的其他组成部分进行处理。 ( 3 ) c o n t r o l l e r :控制器是联系模型与视图之间的纽带,控制模型和视图之 问的交互过程。它获取并翻译用户输入的动作,指定执行该动作的模型,或者根据 8 第一啦1 2 e e 体系结构和m v c 改 模 用户的输入和执行的结果米选择下一个视图。 m v c 模式巾的三要素模型视图一控制器之问的关系以及它 f j 之问的协作如 图24 所示。 图2 - 4m v c 模式的工作流程 由图2 - 4 可知,m v c 模式的处理流程是,首先控制器接收用户的请求,并决定 应该调用哪个模型来进行处理,然后模型调用业务逻辑来处理用户的请求并返回数 据,最后控制器用相应的视图返回数据,并通过表示层呈现给用户。 2 3 3w c 模式的优缺点 使用m v c 的优点【lo 】,一方面,分离数据和其表示,使得添加或者删除一个用 户视图变得很容易,甚至可以在程序执行过程中动态的进行用户视图的更新。模型 和视图能够单独的开发( 即业务逻辑和用户表现的分离) ,增加了程序了可维护性, 可扩展性,并使测试变得更为容易。另一方面,将控制逻辑和表现界面分离,允许 程序能够在运行时根据工作流,用户习惯或者模型状态来动态选择不同的用户界 面。 大部分w e b 应用程序都是用像a s p ,p h p 等过程化语言来创建的。其将像进 行数据库访问查询的数据层代码和像h t m l 这样的表示层代码混在一起。经验比较 丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的,这需要精 心的计划和不断的尝试。m v c 从根本上强制性的将它们分开。尽管构造m v c 应用 程序需要一些额外的工作,但是它给开发者带来的好处是无庸质疑的。 最重要的一点是多个视图能共享一个模型,现在一个应用程序需要用越来越多 的方式访问。在m v c 设计模式之中,无论用户想要f l a s h 界面或是w a p 界面,用 一个模型就能处理它们。因为m v c 已经将数据和业务规则从表示层分开,模型返 回的数据没有进行格式化,同样的构件能被不同界面使用,这当然包含h t m l 的表 现方式,也有f l a s h 和w a p 的表示处理界面。同时模型也有状态管理和数据持久性 处理的功能,因而在m v c 设计模式中应用开发人员可以最大化的重用他的代码。 因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序 9 薰 了赚一 一 慨一 磊裹一 第一审j 2 1 j i 似蒙结构椰m v c 戏h 模- 的数据层和业务规则。如果需要数据席从m y s q l 移植到o r a c l e ,或者改变的基于 r d b m s 数据源到l d a p ,开发人员只需改变他的应用模型即可。一旦开发人员l f 确 的实现了模型,不管数据来自数据库或是l d a p 服务器,视图将会正确的显示它们。 由于运用m v c 的应用程序的三个部件是相互对立,改变其中一个不会影响其它两 个,所以依据这种设计思想开发者能卡勾造良好的松耦合的构件。 同时控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图 去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些 可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视 图将处理结果显示给用户。 m v c 的缺点在于它没有明确的定义,所以一个开发人员完全理解m v c 并不是 很容易。使用m v c 也需要精心的计划,由于它的内部原理比较复杂,所以开发者 需要花费相当可观的时间去考虑如何将m v c 运用到应用程序之中。 同时由于模型和视图要严格的分离,这样也给调试应用程序到来了一定的困 难。每个构件在使用之前都需要经过彻底的测试。一旦构件经过了测试,就可以毫 无顾忌的重用它们了。 还有开发m v c 系统比简单的j s p 开发要复杂许多,它需要更多的时间学习和 掌握。同时新东西的引入会带来新的问题,在选择m v c 开发模式时必须仔细考虑 这下问题: 1 必须基于m v c 组件的方式重新思考和设计应用结构。原来通过建立一个简 单的j s p 页面就能实现的应用现在变成了多个步骤的设计和实现过程; 2 所有的页面和组件必须在m v c 框架中实现,所以必须进行附加地开作; 3 m v c 本身就是一个非常复杂的系统,所以采用m v c 实现w e b 应用时最好 选一个现成的m v c 框架,在此之下进行开发,从而取得事半功倍的效果。现在有 很多可供使用的m v c 框架,下章我们详细介绍的s t r u t s 框架就是一个不错的 m v c 的应用框架。 2 3 4 基于m v c 设计模式的b s 体系结构 基于m v c 设计模式所具有的功能以及特点,这里我们将m v c 设计模式引入到 对b s 体系结构的开发中,更好的发挥了b s 模式在w e b 管理信息系统的开发中 的强大功能【l l 】,其结构如图2 5 所示。 j o 第一章j 2 e e 体系结构乖lm v ( 啦汁模- l 女 f f m l t r 。i l e n s t r v k ti - j & f 一一7 7 ! ! ! 骂0 “一p ! ! ! ! 望; i 客户层) w e b 鼍盎”卜 _ ( 数据服务层) w e b 卜 h 服务器数据库服务器 | 浏览_ ;| 警l n ,i 、i s 、p 。 图2 5 基于m v c 的b s 模式 客户层:客户层主要用于显示用户界面,接收用户事件。在基于m v c 设计模 式的b s 体系结构中,用户界面以浏览器显示,w e b 服务器将应答最终以h t m l 为载体下载到客户端w e b 浏览器,经过浏览器解释,得到最终的用户界面。 数据服务层:数据库服务器可以将业务属性进行永久保存,目前,大多数m i s 系统都是建立在关系数据库上,用的较多的关系型数据库有o r a e t e ,s y b a s e 等。 w e b 中间层:w e b 中间层是整个结构的核心部分,进行各种业务逻辑的处理。 w e b 中间层由w e b 服务器和应用服务器组成,应用服务器是整个w e b 中间层的核 心部分,真正实现各种业务逻辑。在基于m v c 设计模式的b s 体系结构中,应用 服务器层采用了m v c 设计模式,其工作流程如下: ( 1 ) w e b 服务器接收w e b 浏览器的请求,并向控制器s e r v l e t 组件发出一请求; ( 2 ) 控制器s e r v l e t 组件接收用户请求,并将请求发送到相应的视图j s p ,决 定将哪个j s p 页面发送绘用户;同时初始化视图j s p 中要使用的e j b 组件; ( 3 ) 模型e j b 根据控制器s e r v l e t 组件的请求执行相应的业务逻辑功能; ( 4 ) 视图j s p 把控制器s e r v l e t 传递过来的新状态插入到静态模板中,并检索 由s e r v l e t 创建的模型e j b 组件,生成h t m l ,完成页面内容的动态变化,传给w e b 服务器,w e b 服务器再把信息送回给客户端w e b 浏览器。 3 ,1 框架 3 1 1 框架的概念 3s t r u t s 应用框架 框架“”( f r a m e w o r k ) 是软件系统的整体或部分的可重用设计,阐明了整个设计、 协作组件之间的依赖关系、责任分配和控制流程,表现为一组抽象组件及组件实例 之间交互的方法。另一种定义认为,框架关注应用领域中已建立的系统结构,是可 以被开发人员定制的应用系统的架构,是大粒度的可重用部件前者是从体系结构 的角度给出的定义,而后者是从设计模式的角度给出的。在面向对象的开发方法中, 框架由多个抽象类或具体类组成,是一个具有特定关系的类集合。框架是组件技术、 软件体系结构研究和应用软件开发结合的产物。 框架实现了某个应用领域通用功能的底层服务,使用框架可以在通用功能己经 实现的基础上进行具体开发。应用框架强调软件的设计重用性和系统的可扩充性, 以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对 象重用技术相比,应用框架更注重于面向专业领域的软件重用,组件根据框架进行 复合生成可运行的系统。框架的粒度越大,包含的领域知识就越完整。 3 1 2 框架、组件和设计模式 框架、组件( c o m p o n e n t ) 和设计模式是一个成熟平台中的三个重要组成部分框 架是为实现一个或多个设计模式的可重用、可扩展的设计,是软件系统开发的半成 品,使用设计模式的框架能够达到更高水平的设计和代码重用组件是框架中可重 用的工具包、类库或a p i ,组件通常是代码级重用。设计模式则重用设计。框架则 介于二者之间,部分重用代码,部分重用设计,有时重用分析 随着软件技术的发展,软件重用已经从模块、对象等代码级藿用发展到了组件、 设计模式和框架的重用。框架与设计模式虽然相似,但有着根本的不同。设计模式 是对某种环境中反复出现的问题以及解决方案的描述:框架可以用代码表示,也可 以直接执行或重用,对于模式而言只有实例才能用代码表示:设计模式是比框架更 小的元素,一个框架往往含有一个或多个设计模式,框架总是针对某一特定应用领 域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的 知识。 弛一审s t r u t s 应用f f 禁 3 2s t r u t s 框架介绍 为了将m v c 设计模式有效的应用于基于j 2 e e 平台的w e b 应用系统中,在 a p a c h e 软件基金会( a p a c h es o f t w a r ef o u n d a t i o n ) 的运作下,一个名为j a k a r t a 的项目 e 式开展起来。项目的创立者希望通过该项目的研究,改进和提高j s p , s e r v l e t 、标 签库以及面向对象等技术的水准,为开发人员提供一个基于m v c 设计模式的良好 的应用框架。s t r u t s 应用框架正是该项目的产物之一。与a p a c h e 组织的其他项目一 样,s t r u t s 同样具有免费开源的特点。 s t r u t s 这个名字来源于在建筑和旧式飞机中使用的支持金属架,目的是为了帮 助开发人员减少运用m v c 设计模型开发w e b 应用的时间。s t r u t s 框架完全采用j a v a 语言编写,在编写时调用了标准的j 2 e e a p i ,因此具有“一次编写,到处运行”的 优点。同时,它继承了m v c 设计模式的各种特性,提供了对开发m v c 系统的底 层支持,其中对应用系统的用户界面显示和数据的后端业务逻辑代码进行了抽象, 并且整合了s e r v l e t 与j s p 在w e b 应用系统开发上的优势。采用s t r u t s 应用框架, 开发人员可以在j 2 e e 平台上方便快捷的开发出基于m v c 设计模式的w e b 应用。 s t r u t s 采用的主要技术是j a v as e r v l e t ,j s p 和自定义标记库,其主要功能如 下: 1 s t r u t s 中包含一个控制器s e r v l e t ,可以将用户的请求发送到相应的a c t i o n 对象。 2 在j s p 页面中可以选用自定义标记库,并且在控制器s e r v l e t 中提供关联支 持,以帮助开发人员方便快捷的创建交互式表单应用。 3 s t r u t s 中提供了一系列实用对象:x m l 文件处理、通过j a v ar e f l e c t i o na p i s 自动处理j a v a _ b e a n s 属性、国际化的提示和消息。 s t r u t s 应用框架是m v c 设计模式在j 2 e e 平台的w e b 层上的一种具体实现。 m v c 最显著的特点就是强制性的将应用系统划分为三个主要组件:模型、视图、控 制器,每个组件各自处理自己的任务。通过这种明确的划分,m v c 设计模式为构 建可重用、易扩展的程序代码打下了一个坚实的基础。 第带s t r u t sf 、v 用框架 3 3s t r u t s 框架工作原理 7 一 f视图1 浏览器 j 同哪t m l 使用乳r u c t s 标签 图3 1s t r u t s 工作原理“” ( 1 ) 客户端请求时,首先发送到控制器a c t i o n s e r v l e t ,a c t i o n s e r v l e t 在 s t r u t s 框架中扮演的是中心控制器,它提供一个中心位置来处理全部的终端请求。 ( 2 ) a c t i o n s e r v l e t 将用户的信息组装后,根据配置文件s t r u t s c o n f i g x m l 检查请求u r i 找到相应的a c t i o n 标示符。 ( 3 ) a c t i o n 类的功能就是将请求与业务逻辑分开。这样使得客户请求和a c t i o n 类之间有适当的映射关系。 ( 4 ) a c t i o n f o r mb e a n 用来进行视图和控制器之间表单数据的传递。用户提交 表单后,s t r u t s 框架就把输入的表单数据存在a c t i o n f o r mb e a n 中。 ( 5 ) a c t i o n 类从a c t i o n f o r m 子类中读取数据,并将它传递给控制器,控制器 可以对a e t i o n f o r mb e a n 中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 止凝血的检查诊断学
- 建筑业10项新技术信息化技术
- 八年级物理杠杆课件
- 投资管理案例郁金香狂热
- 战略性新兴产业投资策略之物联网
- 平面设计软件课件
- 物流公司国际货运管理专题讲座
- 恒大地产集团工程开发工程管理手册
- 广告平面设计素材库建立与管理方案
- 零担货运分拨中心装卸作业安全规范方案
- Unit 3 My School Section A Pronunciation 课件(内嵌视频)2026-2027学年人教版七年级英语上册
- 2026年校招:广西农村信用社联合社试题及答案
- 2026年各地高三语文9月联考试题汇编之60组名句默写试题(含答案)
- 《肝结节的诊断、治疗及管理专家共识(2026 年版)》影像学解读
- 人教部编版三年级上册道德与法治全册教案
- (2025)ISO13485医疗器械质量管理体系
- TSG 08-2026 特种设备使用管理规则
- 管道堵塞施工方案(3篇)
- GB 4806.16-2025食品安全国家标准食品接触用硅橡胶材料及制品
- 林业专业高级职称面试题目及答案
- 格萨尔王传课件
评论
0/150
提交评论