




已阅读5页,还剩69页未读, 继续免费阅读
(计算机应用技术专业论文)利用struts与hibernate框架构建java+web应用的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
论文题目: 专 业: 硕士生: 指导教师: 利用s t r u t s 与h i b e r n a t e 框架构建j a v aw e b 应用的研究与实现 计算机应用技术 欧阳宏基 龚尚福 摘要 ( 签名) ( 签名) 基于b s 的多层w e b 体系结构已经成为网络应用开发的主流,但现有的多层w e b 应用系统普遍存在着程序可重用程度低、维护工作繁琐、应变能力薄弱等不足。为了提 高w e b 应用的开发效率、可扩展性和可维护性,迫切需要优秀的设计模式和系统框架 作为一种可行的设计方案来解决这些问题。 论文从以上问题出发,对m v c 设计模式与s t r u t s 框架进行了深入研究。m v c 的核 心是分离应用的表现逻辑、控制逻辑和业务逻辑,依据这种设计思想能够构建良好的松 耦合的系统。s t r u t s 是一个实现m v c 设计模式的j a v aw e b 应用开发框架,利用s t r u t s 框架能够实现w e b 应用的视图层和控制层,模型层交给其它合适组件来实现。 模型层的主要功能是实现业务逻辑和数据持久化。论文分析了业务逻辑的两种实现 形式:j a v a b e a n 与e j b ,深入研究了一种能够实现数据持久化重任的、面向j a v a 环境的 o r m 框架- - h i b e r n a t e 。h i b e r n a t e 不仅管理j a v a 类到数据库表的映射,而且提供了功能 强大的面向对象查询语言- - h q l 。利用h i b e r n a t e 能够使开发人员使用面向对象的思想 来操作关系型数据库。 论文以陕西省某矿业集团生产统计管理系统作为理论与实践的结合,实现了论文构 建的基于m v c 设计模式的五层j a v aw e b 应用系统开发架构以及数据持久化层开发模 型,详细介绍了利用s t r u t s 与h i b e r n a t e 框架相结合进行该系统的开发过程。实践表明: 利用s t r u t s 与h i b e r n a t e 相结合来进行j a v aw e b 应用系统的开发能够提高开发效率,同 时满足可扩展性与可维护性的需求 关键词:m v c ;s t r u t s ;h i b e r n a t e ;设计模式;数据持久化层模型 研究类型:应用研究 s u b j e c t :r e s e a r c ha n di m p l e m e n t a t i o no fb u i l d i n gj a v aw e b a p p l i c a t i o nw i t h s t r u t sa n dh i b e r n a t ef r a m e w o r k s p e c i a l t y :c o m p u t e ra p p l i c a t i o nt e c h n o l o g y n a m e :o u y a n gh o n g j i i n s t r u c t o r :g o n gs h a n g f u a b s t r a c t ( s i g n a t u r e ) f 2 屿! 牡 ( s i g n a t u 代应攀毕 m u f t i - l a y e rw e ba r c h i t e c t u r e , w h i c hi so nt h eb a s i so f b s ,h a sb e c ( ) m et h em a i n s t r e a mo f n e t w o r ka p p l i c a t i o nd e v e l o p m e n t h o w e v e r , an u m b e ro fp r o b l e m se x i s ti nt h er e c e n tw e b a p p l i c a t i o ns y s t e m :l o w r e u s a b l eo fa p p l i c a t i o n , h e a v ym a i n t e n a n c ew o r ka n dw e a k a d a p t a b i l i t yo fs o f t w a r e i no r d e rt oi m p r o v et h ee f f i c i e n c yo fw e ba p p l i c a t i o nd e v e l o p m e n t , e x p a n s i b i l i t ya n dm a i n t a i n a b i l i t y , i ti sm g e n tt ou s ee x c e l l e n td e s i g np a t t e r na n ds y s t e m f 1 2 1 1 h e w o r k , w h i c hw i l lb et a k e na saf e a s i b l es c h e m et or e s o l v et h e s ep r o b l e m s f r o mt h ea b o v ep r o b l e m s , t h ep a p e rt a k e sd e e pr e s e a r c hi nt h em v cd e s i g np a t t e r na n d s t r u t sf r a m e w o r k t h ec o r et h o u g h to fm v ci ss e p a r a t i n gt h er e p r e s e n t a t i o nl o g i c ,c o n t r o l l o g i ca n db u s i n e s sl o g i co fw e ba p p l i c a t i o n , s ot h el o o s e l yc o u p l e ds y s t e m 啪b ea c h i e v e d b a s e do nt h i st h o u g h ts t r u t si saj a v aw e ba p p l i c a t i o nd e v e l o p m e n tf f a m e w o ab a s e do nt h e m v c d e s i g np a t t e r n , s t r u t sf i a m e w o r ko a ni m p l e m e n tt h er e p r e s e n t a t i o nl a y e ra n dt h ec o n t r o l l a y e ro f w e ba p p l i c a t i o n , t h em o d e ll a y e rc 趾b ea c h i e v e db yo t h e rs u i t a b l ec o m p o n e n t s 1 1 砖m a i nf u n c t i o no ft h em o d e ll a y e ri st or e a l i z eb u s i n e s sl o g i ca n dd a t ap e r s i s t e n c e t h ep a p e ra n a l y z e st h et w of o r m so ft h eb u s i n e s sl o g i c :j a v a b e a na n de 旧a no r m f r a m e w o r k - h i b e r n a t e , w h i c h 啪i m p l e m e n tt h e d a t ap e r s i s t e n c ea n di sj a v a - o r i e n t e d e n v i r o n m e n t , i ss t u d i e dd e e p l yi nt h i sp a p e r h i b e r n a t ec a nn o to n l ym a n a g et h em a p p i n g f r o mj a v ac l a s s e st od a t a b a s et a b l e sb u ta l s o 啪p r o v i d eap o w e r f u lo b j e c t - o r i a n t e dq u e r y l a n g u a g e - h q l t h e r e f o r em 地u o fh i b e r n a t e 伽m a k ed e v e l o p e ro p e r a t er e l a t i o n a l d a t a b a s ew i t ho b j e c t - o r i e n t e dt h o u g h t b a s e do nt h em i n eg r o u p sm a n a g e m e n ts y s t e mo fs h a n n x ip r o v i n c e ,t h ef i v e - l a y e rj a v a w e ba p p l i c a t i o nd e v e l o p m e n ta r c h i t e c t u r eb a s e do nm v cd e s i g np a t t e r na n dd a t ap e r s i s t e n c e 1 a y e rm o d e la r ea l la c h i e v e di nt h i sp a p 既9a n dt h ep a r t i c u l a rd e v e l o p m e n tp r o c e s sc o m b i n e d w i t hs t r u t sa n dh i b e r n a t ef r a m e w o r ki si n t r o d u c e di nd e t a i li nt h ep a p e r r e s u l t ss h o wt h a tt h e e x p l o i t a t i o no fj a v aw e ba p p l i c a t i o nw i t hc o m b i n a t i o no fs t r u t sa n dh i b e r n a t ec a l li m p r o v e w o r ke f f i c i e n c ya n ds a t i s f yt h ee x p a n s i b i l i t ya n dm a i n t a i n a b i l i t yr e q u i r e m e n t s k e y w o r d s :m v cs t r u t sh i b e r n a t e d e s i g np a t t e r n d a t ap e r s i s t e n c el a y e r 要料技大季 学位论文独创性说明 本人郑重声明:所呈交的学位论文是我个人在导师指导下进行的研究工作及 其取得研究成果。尽我所知,除了文中加以标注和致谢的地方外,论文中不包含 其他人或集体己经公开发表或撰写过的研究成果,也不包含为获得西安科技大学 或其他教育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中做了明确的说明并表示了谢意。 学位敝储签锄,虱德溉岬辛6 怕色夏f 测加7 生 学位论文知识产权声明书 本人完全了解学校有关保护知识产权的规定,即:研究生在校攻读学位期间 论文工作的知识产权单位属于西安科技大学。学校有权保留并向国家有关部门或 机构送交论文的复印件和电子版。本人允许论文被查阅和借阅。学校可以将本学 位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存和汇编本学位论文。同时本人保证,毕业后结合学位论文研究课 题再撰写的文章一律注明作者单位为西安科技大学。 保密论文待解密后适用本声明。 学位论文作者躲五i f 瘟龟指导教师躲篓高知 a 们年6 月印日 1 绪论 l 绪论 1 1 课题研究的目的与意义 近年来,随着网络技术的迅速发展与j 2 e e 平台的广泛应用,基于b s 的多层w e b 体系结构逐渐发展成熟起来,多层w e b 应用的开发已成为主流。但是,在多层w 曲体 系结构的设计中,仍然存在着程序可重用程度低、维护工作繁琐、应变能力较弱等不足。 同时,多层w e b 应用软件需要面对复杂的网络环境、多样化的用户需求、灵活的业务 模式、复杂的业务流程、众多的组织机构及层次和角色分工等问题,在业务和技术上也 是复杂多变的【l 】。因此,如何组织应用程序以实现简单高效的程序编写、升级、维护和 扩展,在结合b s 多层体系结构的基础上,如何使不同层次相结合完成系统功能又要在 实际开发中尽可能的使各层的开发相对独立,减少各层之间的耦合程度,避免开发人员 相互制约,从而使各层开发人员达到并行工作的目的,以减少开发周期等等。这些问题 都是当前基于b s 多层架构进行w e b 开发的热点之一,也是一个很值得探讨的研究课 题。 为了达到课题的研究目的,提高开发效率,考虑到应用系统的可扩展性、可维护性 等,就需要优秀的设计模式和可复用的b s 架构的框架作为一种可行的设计方案来解决 这一问题。 m v c ( m o d e l - v i e w - c o n t r o l l e r ,m v o 模式是设计交互式应用所广泛采用的一种设计 模式,也是j 2 e e 蓝图推荐的在开发w e b 应用时使用的模式1 2 】。m v c 设计模式提供了一 种按功能对各种对象进行分割的方法,它强制性的将应用的表现逻辑、控制逻辑和业务 逻辑进行分离,所以依据这种设计思想能够构建良好的松耦合的系统,从而简化软件开 发,提高软件的可扩展性和可维护性,达到提高软件质量的目的。 s l r u t s 是一个基于j 2 e e 平台、实现m v c 设计模式的w 曲应用开发框架,它的初衷 是为了帮助开发人员减少运用m v c 设计模式开发w e b 应用的时间。其中对应用程序的 用户界面表示和数据的后端逻辑处理代码进行了抽象,整合了s e r v l e t 和j s p 在w e b 应 用开发上的优势以建立灵活、扩展性强、复用程度高的应用系统。s t r u t s 规定了应用的 体系结构,为应用系统提供了一个良好的软件构架,解决了由于应用的复杂性而在软件 开发过程中所带来的各种问题,并对于实现在应用系统建设初期所制定的软件功能、开 发投入、开发周期、项目的组织和管理上的目标,都有极大的帮助。 从m v c 作为整个w e b 应用的设计模式和j 2 e e 多层体系结构上考虑,s t r u t s 实际上 并没有为设计与创建模型组件提供现成的方法,开发者需要自己根据应用系统的实际需 要选择合适的模型组件来实现m v c 模式中的模型部分。j 2 e e 为模型的实现提供了 西安科技大学硕士学位论文 j a v a b e a n 和e j b 组件,如何选择这两种模型组件的一条基本标准是:j a v a l k a n 不支持 分布式计算环境,e j b 能满足分布式计算的要求并且需要e j b 容器的支持。 对象一关系数据库的映射在目前而言是一个非常重要的问题。这是因为面向对象技 术( 例如j a v a 技术) 是目前软件系统最常见的开发方法。另外,关系数据库仍然是绝大数 应用系统所采用的信息持久存储方法,并且在较长时间内这种情况不太会改变。对象范 例基于软件工程的一些原理,例如耦合、聚合和封装,而关系范例则基于数学原理,特 别是集合论的原理。两种不同的理论基础导致各自有不同的优缺点。对象范例侧重于从 包含属性与方法的对象中构建应用程序,而关系范例则主要针对数据的存储。当为访问 而寻找一种合适的方法时,“阻抗不匹配”就成了主要矛盾:基于对象范例的访问是通过 各对象之间的关系来进行的,而对于关系范例则是通过数据表的关联关系来连接表中的 行。这种基本的差异导致两种范例的结合并不理想。 o r m ( o b j e c t - r e l a t i o nm a p p i n g ) 就是为了解决这两种范例差异而提出的解决方案。近 几年来实现o r m 的产品层出不群,h i b e r n a t e 就是其中的一款非常优秀的产品。 h i b e r n a t e 对j d b c 进行了轻量级的对象封装,使得j a v a 程序员可以使用面向对象 的思维来操作关系数据库。它不仅管理j a v a 类到数据库表的映射,还提供数据查询和获 取的方法,可以大幅度减少开发时人工使用s q l 和j d b c 处理数据的时间。它还拥有 一种功能非常强大的查询语言h q l ,这种语言与s q l 非常相似,便于开发人员掌握, 它是完全面向对象的,查询的是持久化对象。更重要的是,h i b e r n a t e 支持大部分主流关 系型数据库,支持父子关系、事务处理、继承等。 基于以上分析,在以m v c 模式作为系统整体架构的设计模式的前提下,研究如何 利用s t r u t s 框架实现m v c 中的视图与控制器部分,选取合适的模型组件来实现m v c 中的模型部分,以及如何利用h i b e r n a t e 框架来构建一个数据持久化层,从而达到提高 程序开发效率,提高软件的性能、可扩展性与可维护性将是一个很有意义的课题。 1 2 课题研究的主要内容 论文主要完成了以下几个方面的研究工作: ( 1 ) m v c 设计模式的研究。对m v c 设计模式进行了深入的研究,通过对j a v aw e b 应用开发常用模式的分析与对比,深刻理解了该模式的模型、视图、控制器三部分在构 成w e b 应用程序框架中起的作用,并总结出使用此模式所存在的优势与不足。 ( 2 ) s 仇i t s 框架的研究。s m a t s 是一个基于m v c 模式的优秀的w e b 应用开发框架。 论文对该框架的体系结构与核心组件做了深入的研究,总结了s t r u t s 的工作流程。 ( 3 ) 模型组件的研究。模型是应用中最重要的一部分,它包含了业务实体与业务规则, 负责访问和更新持久化数据。论文分析了业务逻辑层中业务对象的两种实现方式一 j a v a b e a n 与e j b 以及j a v a 应用系统中所使用的一些数据持久化技术,指出了不同持久 2 1 绪论 化技术所适用的场合。 ( 4 ) h i b e r n a t e 框架的研究。h i b e r n a t e 是一个面向j a v a 环境的o r m 框架。论文深入 研究了h i b e r n a t e 的体系结构与核心编程接1 3 ,以及h i b e r n a t e 中持久化对象的状态转换 与生命周期。在结合若干设计模式的基础上,给出了一个基于h i b e r n a t e 框架的数据持 久化层模型。 1 3 论文的组织 第一章:简要阐述了课题的研究目的及意义,说明了课题研究的主要内容。 第二章:分析了目前j a v aw e b 领域的两种实现模型:m o d e l l 和m o d e l 2 。主要介绍 了m v c 设计模式及其组成部分,各部分实现的主要功能,总结了此模式的优点与不足。 第三章:主要介绍了基于m v c 模式的w e b 应用开发框架s t r u t s 。对s t r u t s 框架的 体系结构及主要组件进行了详细阐述,分析了s t r u t s 中各个组件是如何协调工作来完成 对用户的请求进行响应的。 第四章:简单分析了将模型组件从s m m 框架中分离的原因,主要阐述了模型组件 的实现方法,包括业务逻辑模型与数据持久化模型的实现。 第五章:介绍了对象关系映射的概念,阐述了一个实现o r m 的数据持久化层开发 框架- - h i b e r n a t e 。详细介绍了h i b e r n a t e 框架的体系结构和编程接口,以及用h i b e r n a t e 进行数据库操作的一般过程,给出了一个基于h i b e r n a t e 与设计模式相结合的数据持久 化层开发模型。 第六章:利用s t r u t s 与h i b e r n a t e 框架实现了一个煤矿生产统计管理系统,用实例说 明了s t r u t s 与h i b e r n a t e 框架的应用方法,实现了论文所构建的基于m v c 设计模式的五 层j a v a w e b 开发架构以及基于h i b e r n a t e 的数据持久化层模型。 第七章:对论文的工作进行了总结,对今后的工作做了展望。 3 西安科技大学硕士擘位论文 2j a v a w e b 模型与m v c 设计模式 2 1j a v aw e b 的实现模型 在j a v aw c b 领域存在着两种经典的体系结构模型,分别为m o d e l l 和m o d e l 2 。这 两种模型都是由s u n 公司提出的。 2 1 1m o d e l l :j s p4 - j a v a b e a n j s p 作为j 2 e e 平台的一个主要组成部分,在w e b 应用程序的开发过程之中占有非 常重要的地位。因为在j s p 页面中可以同时实现视图、业务逻辑和流程控制,从而快速 地完成应用开发,很多的w e b 应用就可以仅由一组j s p 页面构成。这种以j s p 为中心 的开发模型就称为模型l ( m o d e li ) ,其结构模型如图2 1 所示。 厂、 厂 w 曲c 诅i m 、厂、 r e q u e s t j s p d 舳a r e s p o n s e l 、v c l i e n t j e b r o w s c r 、一。n 1 j a v a b e c m n ”v l 图2 1 m o d e l l 模型 在m o d e ll 中,j s p 充当了控制器与视图的双重角色,j a v a b e a n 扮演了模型的角色。 当有用户请求到来时,j s p 直接调用后台模型进行业务逻辑处理,再由j s p 将处理结果 返回给用户。这种模型对于一些小规模的、业务逻辑简单的系统还是可以满足的,但是 对于大规模的应用就显得有些力不从心了。因为如果将j s p 既充当控制器又充当视图, 那么将会在j s p 页面里出现大量j a v a 代码段、j a v a s c r i p t 脚本与h t m l 标记的混合物, 特别是当需要处理的业务逻辑比较复杂时,系统的维护与扩展将变得非常糟糕。存在的 问题表现在以下方面: ( 1 ) 由于业务逻辑和表示逻辑混合在j s p 页面中没有进行抽象和分离,当一个j s p 页 面需要修改时可能会影响与该页面相关的其它j s p 页面。 ( 2 ) 调试过程中必须兼顾这些集中于同一j s p 页面中的h t m l 标记、j a v a 代码与 4 2j a v a w e b 模型与m v c 设计模式 j a v a s c r i p t 代码,使调试变得相当困难。 ( 3 ) h t m l 标记与j a v a 代码强耦合在同一个j s p 页面中,给界面设计人员与j a v a 代 码编写人员的并行工作带来困难,不利于提高开发效率。 针对m o d e l l 的上述缺点,s u n 又提出了另一种开发模式,那就是m o d e l 2 。 2 1 2m o d e l 2 :j s p + s e r v i a + j a v a b e a r l 在m o d e l 2 中,s e r v i a 作为w e b 应用的控制器,替代了m o d e l l 中j s p 接收用户请 求的任务,j s p 则只负责显示逻辑( 包括少量的j a v a 代码) 。j a v a b e a n 负责业务逻辑的处 理与数据持久化等工作。s e r v i a 通过自身的逻辑判断调用相应的j a v a b e a t l 处理用户请 求,处理完毕后,j a v a b e a n 将结果返回给s e r v l e t ,s e r v l e t 再通过调用相应的j s p 页面将 处理结果返回给客户端。m o d e l2 的结构模型如图2 2 所示。 、 厂w e b c 诅岫盯 、 r e q u e s t ( 一o i s e r v l e t 1 么 c l i e n t b r o w s e f 弋,7 7 r : 一n l 。一b ,n ( o r e s i m n s el :f 、厂叫一卜 图2 2 m o d e l 2 模型 m o d e l2 清楚地将w e b 应用划分了视图、控制与模型这三层结构。模型与显示的分 离,使得j a v a 开发人员专注于业务逻辑和s e r v l e t 代码的开发,界面设计人员专注于j s p 页面的开发。控制器s e r v l e t 进行应用流程的控制。这就提高了应用程序的可扩展性与 可维护性,从而弥补了m o d e ll 的缺陷。 2 2 m v c 设计模式 2 2 1 设计模式概述 设计模式针对面向对象系统中重复出现的设计问题,提出一个通用的设计方案,并 予以系统化的命名和动机解释d i 。设计模式描述了问题、解决方案、在什么条件下使用 该解决方案及其效果,它还给出了实现要点和实例。解决方案是解决该问题的一组精心 5 西安科技大学硕士学位论文 安摔的通用的类和对象,再经过定制和实现就可用来解决特定上下文中的问题。 e r i c hg a m m a 等人将设计模式按其解决问题的不同分为三种:创建型、结构型和行 为型。一般而言,一个设计模式包含下面四个基本要素: ( 1 ) 模式名称( p a t t e r n n 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 ) 。描述了模式应用的效果及使用模式应权衡的问题。模式效果 包括它对系统的灵活性、扩充性和可移植性的影响,显示地列出这些效果对理解和评价 这些模式很有帮助。 2 2 2m v c 设计模式的构成 m v c 是一种设计模式,它是m o d e l v i e w - c o n l r o n e r 的缩写,最早是由x e r o x ( 施乐) 在2 0 世纪8 0 年代为s m a l t a l k - 8 0 语言发展提出的。m v c 模式在交互式系统开发中具有 强大的优势,因此被开发人员逐步引入j 2 e e 体系之中,成为j 2 e e 进行交互式应用开发 时,特别是w e b 应用开发时的一个非常重要的设计模式。基于m v c 的应用程序被分成 三个核心组件:模型( m o d e l ) 、视图( v i e w ) 、控制器( c 叫的l k d 图2 3 清楚地展示了模 型、视图、控制器的作用以及它们之间的交互。 方法调用事件 l 图2 3m v c 模式中模型、视图和控制器三部分的交互关系 6 2j a v a w e b 模型与m v c 设计模式 1 模型 模型代表了应用程序的核心功能,它负责处理用户的数据,实现业务逻辑,集中体 现了应用程序的状态。同时,模型还为视图的显示提供数据,并可被多个视图所共享。 m v c 并没有提供模型的设计方法,只是告诉开发者应该组织管理这些模型,以便于模 型的重构和提高重用性。 在m v c 的三个组件中,模型拥有最多的处理任务被模型返回的数据是中立的, 就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的 代码只需写一次就可以被多个视图重用,所以减少了代码的重复性,提高了系统设计的 可重用性。 2 视图 视图主要包括与用户交互的界面,即应用程序的外观。视图可以接收用户的输入, 但它并不包括任何实际的业务逻辑,它只是将数据转交给控制器。同时,视图还负责展 现模型传递给用户的数据,当后台模型更新数据时,视图也随之更新它的显示。 3 控制器 控制器负责接收用户的请求和数据,将模型与视图匹配在一起,共同完成用户的请 求。控制器的作用很明显,它就是一个分发器,选择什么样的模型,选择什么样的视图, 可以完成什么样的用户请求。控制器不做任何的数据处理,它只把用户的信息传递给模 型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个 视图,一个视图可能对应多个模型。 m v c 模式的工作流程是:视图接收来自用户的数据和请求,并将它发往控制器。 控制器接收了用户的请求后,对请求进行判断,并选择合适的业务处理模型来完成用户 的请求当请求处理完成后,模型通知控制器,控制器选择合适的视图来向用户呈现处 理结果。 2 2 3m v c 设计模式的优点及不足 1 m v c 设计模式的优点 从m v c 模式的工作原理可以看出,它体现了分层设计的思想。m v c 模式的优点表 现在以下几个方面: ( 1 ) 从视图方面讲,由于多种视图可以共享一个后台模型,这就为实现多种用户界面 提供了便利。由于视图和模型没有必然的联系,当视图需要修改时,无需改动后台模型, 直接进行视图修改即可,这样就可以提高模型部分代码的重用性。 ( 2 ) 从模型方面讲,由于其实现与视图独立,因此模型只需提供接1 2 供上层调用。很 好的体现了面向对象设计的信息封装和隐藏的原则。当模型需要修改时,只要保证接口 不变,原有的上层程序都可以不用发生变动,程序依然可以正常运行。另外,由于模型 7 西安科技大学硕士学位论文 是面向接口编程,因此可以使用不同的实现来替换模型。面向接口编程是面向对象程序 设计中非常重要的概念,它可以实现程序之间的松耦合,对于程序的可重用性、可扩展 性和可维护性都有相当重要的意义。 ( 3 ) 从控制器方面讲,控制器作为介于视图和后台模型的控制组件,可更好地维护程 序流程,使得程序的调用规则更加清晰,很大程度上优化了系统结构。 2 m v c 设计模式的缺点 ( 1 ) 理解困难,耗费时间。由于m v c 是一种设计模式,将任何设计模式运用到程序 设计中并不是一件容易的事,不但要对该模式有深刻的理解,还需要丰富的程序设计经 验。使用m v c 需要精心的计划,由于它的内部原理比较复杂,所以刚开始接触该模式 的开发人员需要花费相当可观的时间去考虑如何将m v c 运用到应用程序中。 ( 2 ) 视图与控制器之间的连接过于紧密。虽然视图与控制器是两个相分离的组件,但 却是紧密联系的。因为视图的调用是靠控制器来完成,视图没有控制器的存在,其应用 是很有限的,反之亦然,这样就妨碍了它们的独立重用【_ ”。 ( 3 ) 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循m v c ,使模型、 视图与控制器分离,会增加结构的复杂性,也给调试应用程序到来了一定的困难,并可 能产生过多的更新操作而降低运行效率。 8 3s t r u t s 框榘 3 1 框架概述 3 1 1 框架的概念 3s t r u t s 框架 框架是近年来不断发展成熟的一种软件重用技术,它通过提供可复用的组件来生成 用户自定义的应用程序。框架一般是成熟的、不断升级的软件组件,具有很好的结构性 和扩展性。使用成熟的框架就意味着应用程序的“骨架”已经搭建完成,开发者只需要遵 守框架的规则,集中精力完成系统的业务逻辑设计即可获得结构更加清晰、质量更加可 靠的应用程序。也就是说,框架是一种针对某一特定应用领域的面向对象软件重用技术, 是一种由特定应用领域的软件体系结构所决定的软件构架。 3 1 2 框架的优点 框架技术为软件开发提供了以下几个方面的优点i s : 模块化:框架使用稳定的接口封装了具体的实现,从而增强了框架的模块性。框架 使用这种机制将具体实现的影响和实现的改变局部化,从而提高了软件产品的质量。局 部化的好处在于减少了理解和维护具体实现的时间和金钱。 可复用性:框架提供的稳定接口有助于组件的产生和设计,这些组件可复用于别的 系统,框架组件的复用大规模地提高了软件的开发效率、质量、可靠性和协同性。而且, 框架描述了该领域内的知识和以前开发者的宝贵经验,这样就不需要对该领域内的核心 需求进行重复理解,并且提高了核心设计的质量。 可扩展性:框架通过提供一种“钩子 ( h o o k ) 方法提高它的扩展性,这些方法允许应 用程序扩展框架稳定的接口,它们将稳定的接口和特定应用中可变的行为分离开来。框 架的这种特性保证了能够方便地为新的应用提供新的服务和特性。 3 2s t r u t s 的体系结构 s t r u t s 是一个基于j 2 e e 平台、实现m v c 设计模式的w 曲应用开发框架,它的初衷 是为了帮助开发人员减少运用m v c 设计模式开发w e b 应用的时间,它的目标是分离 w e b 应用的表示层、控制层和模型层。图3 1 是s t r u t s 框架的体系结构,它显示了s t r u t s 框架各部分与m o d e l 、v i e w 和c o n t r o l l e r 之间的对应关系。 9 西安科技大学硕士学位论文 r c q “哩_:蠹三蠹三:静。模ac型tio的nf数or据m,i i j 当恼h 泡叠激锄 s t r u t s 的视图部分s t r u t s 的控制器部分$ t m t s 的模型部分 图3 1s t r u t s 的体系结构 ( 1 ) 模型( m o d e l ) 。在s t r u t s 的体系结构中,模型分为两个部分:系统的内部状态和能 够改变状态的行为( 事务逻辑) 。s t r u t s 将系统内部的状态表示为一组j a v a b e a n s ,使用属 性来表示状态的细节。根据系统的复杂度也可以使用像实体e j b 和会话e j b 等组件来 实现系统状态。s t r u t s 为m o d e l 部分提供了a c t i o n 和a c t i o n f o r m 组件对象:a c t i o n 对象 可以进行具体的业务逻辑处理,并将处理结果返回给控制器。a c t i o n f o r m 对象通过定义 属性的方式可以实现对h t m l 表单数据的良好封装和支持,a c t i o n 对象可以直接对 a c t i o n f o r m 对象进行读写。通过a c t i o n f o r m 组件对象,s t r u t s 实现了对视图和控制器之 问交互的支持。 ( 2 ) 视图( v i e w ) 。s t m t s 应用程序中的v i e w 部分通常使用j s p 技术来构建。j s p 页面 主要由静态h t m l ( 或x m l ) 文本和j a v a 代码段构成,也可以插入s t r u t s 提供的自定义 标记库,通过这些自定义标记可以很好的和m o d e l 部分交互,可以实现和a c t i o n f o r m 的映射,完成对用户数据的封装。同时这些自定义标记还提供了像模板定制等多种显示 功能,从而可以简化国际化用户界面的开发过程。 0 _ ) j 空制器( c o n t r o l l e r ) 。控制器是模型组件与视图组件之间的“桥梁”,是整个w e b 应 用的“控制中枢”。s t r u t s 控制器的核心是一个s e r v l e t 类型的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 包括一组基于配置文件生成的a c t i o n m a p p i n g 对象, 每个a c t i o n m a p p i n g 对象实现了一个请求到处理该请求的a c t i o n 对象之间的映射。 3 3s t r u t s 的核心组件及其功能 整个s t r u t s 大约由1 5 包,近3 0 0 个类所组成,而且数量还在不断的扩展。由于不 能一一介绍,所以表3 1 列举了s t r u t s 框架的核心组件,这些组件是基于s t r u t s 框架开 发应用程序的关键。 1 0 3s t r u t s 框架 表3 1s t r u t s 的核心组件及其功能描述 组件功能描述 a c d o n s e l c t a c t i o n a c 吐o n f a c f i o n m a p p i n g a c t i o n f o r w a r d a c t i o n m e s s a g e a c t i o n m e s s a g e s a c t i o n e r r o r s 控制器的核心部分,接收用户请求和状态改变,以及发出视图选择 包含业务逻辑 数据显示模块,可以进行数据验证 帮助控制器将请求映射到操作 用来指示操作转移的对象 封装一条具体的消息 a c t i o n m e s s a g e 实例的集合,便于消息管理 a c t i o n m e s s a g e s 的子类,主要用于错误消息管理 3 3 1a 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 l n l t s 框架的控制器组件的核心组成部分,它是一个标准的s e r v l e t , 是j a v a x s e r v l e t h t t p h t t p s e r v l e t 类的扩展,运行在w e b 容器( 例如t o m c a t ,r 璐i n 或 w e b l o g i c 等) 中。w e b 容器会在首次启动或s t r u t s 应用的第一个请求到达时加载 a c t i o n s e :r v l e t ,通过s e r v l c t 设定的s e r v l e ! tm a p p i n g 来决定哪些请求被送给s e r v l e t 处理。 当一个符合s e r v l e t 上下文的请求被提交时( 例如“d o 的请求) ,容器将其转发给 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 。a c t i o n s e r v l e t 组件的主要功能包 括以下几个方面: ( 1 ) 接收符合s e r v l e t 上下文的用户请求。 ( 2 ) 将用户提交的u r i 与a c t i o n _ m a p p i n g 组件对象进行匹配。 ( 3 ) 调用具体的a c t i o n 组件对象进行用户请求处理,并接收所返回的处理结果。 ( 4 ) 根据执行结果和当前状态,选择具体的视图组件响应客户的请求。 ( 5 ) 负责初始化和清除应用配置的信息。 3 3 2a c t i o n m a p p i n g 组件 a c t i o n m a p p i n g 组件包含有关特定事件如何被映射到特定a c t i o n 组件的信息。这种 映射关系表现为:配置文件( s 岫l t 蝴n 6 9 x m l ) 通过 或 标签为每个 元素创建一个与之对应的a c t i o n m a p p i n g 组件对象,以供s m a s 应用 程序运行期间使用。当a c t i o n s c r v l c t 接收了客户端的请求后,a c t i o n s e t v l e t 根据其u r i 及 标签设定的p a t h 属性查看对应的a c t i o n m a p p i n g 对象,a c t i o n m a p p i n g 对象会 告诉a c t i o n s e r v l e t 使用哪一个a c t i o n 对象( 在 标签中使用t y p e 属性设定) ,而 a c t i o n s e r v l e t 再将处理请求的工作交给该a c t i o n 对象来执行。 西安科技大学硕士学位论文 3 3 3a c t i o n f o r m 组件 a c t i o n f o r m 组件主要用于保存用户请求表单中的数据,并可保持其状态的连续性, 在不同页面间传递这些数据。a c t i o n f o r m 包含的v a l i d a t e o 方法用于表单数据的有效性验 证。a c t i o n f o r m 组件符合j a v a b e a n 规范,其中所定义的属性都有与之对应的g e t x x x o 和s e t x x x 0 方法。对于a c t i o n f o r m 可以从以下几个方面来理解: o ) a c t i o n f o r m 表示用户请求表单中的数据,可以将其看作是模型和视图的中介, 它负责保存视图中的数据供模型或者视图使用。 ( 2 ) a c t i o n f o r m 的本质是一个或多个j a v a b e a n ,在调用它的a c t i o n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农业种植技术与种子供应保障协议
- 房屋普通买卖合同6篇
- 机动车临时牌照借用协议书范本
- 家庭农场果蔬类种植与销售合作合同
- 房屋租赁合同范本与法律解读
- 工业自动化控制系统技术服务合同
- 双重视角融合:房地产企业成本控制的创新与实践
- 卡洛·斯卡帕层叠设计方法:形式、空间与材料的交织
- 网络游戏公司股权转让及品牌授权合作协议
- 甲乙丙三方合作的城市综合体商业地产产权转让协议
- 学前儿童英语教育与活动指导(学前教育专业)全套教学课件
- 2024年湖南长沙湘江新区所属事业单位招聘12人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 《电能计量装置安装接线规则》
- 物质与意识的辩证关系
- 网络热梗是否融入现实生活
- IEP个别化教育计划-课件
- 128个自然拼读口诀表打印
- 汽车机械基础 课件 绪论
- 浙江博瑞电子科技有限公司新建年产175吨高纯六氟丁二烯项目环境影响报告书
- 客车检车员-中国铁路兰州局集团有限公司编
- 胖东来收银管理制度
评论
0/150
提交评论