(计算机软件与理论专业论文)基于mvc模式的j2ee的应用研究与开发.pdf_第1页
(计算机软件与理论专业论文)基于mvc模式的j2ee的应用研究与开发.pdf_第2页
(计算机软件与理论专业论文)基于mvc模式的j2ee的应用研究与开发.pdf_第3页
(计算机软件与理论专业论文)基于mvc模式的j2ee的应用研究与开发.pdf_第4页
(计算机软件与理论专业论文)基于mvc模式的j2ee的应用研究与开发.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(计算机软件与理论专业论文)基于mvc模式的j2ee的应用研究与开发.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士研究生毕业论文 基于m v c 模式的j 2 e e 应用研究与开发 摘要 随着我国电子政务的推进,社区作为政府与群众联系的桥梁和纽带是社会的 重要组成部分,它的信息化程度直接影响到政府对社区的管理和居民的生活水 平。但目前大多数社区使用的还是早期的w i n d o w s 操作系统下的单机版信息管 理系统,使用不同的后台数据库,普遍存在着可移植性差、工作效率低、可扩展 性差、可维护性差、部署麻烦等缺点。因此,迫切需要对这些原有系统进行有效 的改进和整合,建立一套较完善的社区信息管理系统,克服原有系统存在的种种 弊端。 近年来,随着网络技术的迅速发展和j 2 e e 平台的广泛采用,基于b s 的多 层w e b 体系结构逐渐发展成熟起来。m v c 设计模式分离了数据的控制和数据的 表现,在实现多层w e b 应用系统中具有明显的优势。s t r u t s 是一个基于m v c 设 计模式的开源框架,而h i b e m a t e 是目前流行的对象映射工具。 本文首先从软件系统体系结构入手,讨论了b s 多层体系结构、m v c 模式、 j 2 e e 等相关概念和技术。然后,给出了一个基于m v c 模式应用s t r u t s 和h i b e r n a t e 的j 2 e e 应用的社区信息管理系统解决方案。最后,针对社区信息管理系统中异 构数据库集成的问题,提出了利用h i b e m a t e 数据访问技术来实现不同物理位置 的数据的透明访问。 关键词:j 2 e e w cs t r u t sh i b e r n a t e 异构数据库社区信息管理系统 堡主里壅圭兰些丝兰 苎主型! 堡苎竺! ! ! ! 壁旦塑塞兰堑垄 a b s t r a c t w i t ht h ed e v e l o p m e n to fe g o v e r n m e n t ,t h ec o m m u n i t yw h i c hc o n n e c t st h e g o v e r n m e n ta n d t h ep e o p l eh a sb e c o m ea ni m p o r t a n t p a r to ft h es o c i e t y t h ee x t e n s i o n o f e c o m m u n i t ya f f e c t st h el e v e lo f c o m m u n i t ym a n a g e m e n ta n dt h el i f eo f r e s i d e n t s a n dn o wm o s tc o m m u n i t ys t i l lu s ef o r m e rs y s t e m sw o r k e do nw i n d o w sw h i c hl a c ko f t r a n s p l a n t a b i l i t y , e x p a n s i b i l i t y , m a i n t a i n a b i l i t ya n ds oo n c o n s e q u e n t l y , w en e e dt o b u i l dan e wm a n a g e m e n ts y s t e mo fc o m m u n i t yb a s e do nt h ef o r m e rs y s t e m s i nr e c e n ty e a r s w i t l lt h er a p i dd e v e l o p m e n to fn e t w o r ka n de x t e n s i v ea d o p t i o n o fj 2 e ep l a t f o r m ,m u l t i l a y e rw e bs t r u c t u r eb a s e do nb sg r o w su pg r a d u a l l y m v c d e s i g np a t t e r ns e p a r a t e sc o n t r o lo fd a t af r o mr e p r e s e n t a t i o no fd a t a , a n dt h e r e f o r eh a s t h ea d v a n t a g eo fi m p l e m e n t a t i o no fm u l t i l a y e rw e ba p p l i c a t i o n s s t r u t s i st h e a p p l i c a t i o nf r a m e w o r kw h i c hi m p l e m e n t sm v cb a s e do nj 2 e ep l a t f o r ma n dh i b e r n a t e i so n eo f t h em o s tp o p u l a ro r ( o b j e c t r e l a t i o n ) m a p p i n gt 0 0 1 t h i sp a p e rf i r s t l yp r e s e n t e da n dd i s c u s s e ds o m et e c h n o l o g ya n d c o n c e p t sr e l a t e d t oo u l s u b j e c t ,t h e np u tf o r w a r das o l u t i o no ft h em a n a g e m e n ts y s t e m0 1 1c o m m u n i t y i n f o r m a t i o nu s e ds t r u t sa nh i b e r n a t e ,ab sm u l t i t i e r e dj 2 e ew e b a p p l i c a t i o nb a s e d o nm v c ,f i n a l l yg i v e sas o l u t i o no fi n t e g r a t i o no fh e t e r o g e n e o u sd a t a b a s e si nt h e m a n a g e m e n ts y s t e mo fc o m m u n i t yb a s e do nh i b e r n a t e w r i t t e nb y :y a ol e i l e i ( c o m p u t e rs o f t w a r ea n d t h e o r y ) d i r e c t e db y :p r o f c h e nl i a n k e y w o r d s :j 2 e e ;m v c ;s t r u t s ;h i b e r n a t e ;h e t e r o g e n e o u sd a t a b a s e s ; m a n a g e m e n ts y s t e mo fc o m m u n i t y 独创性声明 y9 2 8 7 5 6 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得壹量叁鲎或其他教育机 构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献 均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:出峪( 爆撮签字日期: p d 6 年r 月日 学位论文版权使用授权书 本学位论文作者完全了解壹璺叁鲎 有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查回和 借阅。本人授权南昌大学可以将学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:d 扯褪懑 导师签名:六驴卟东 签字日期:g o o b 年皇月如日签字日期:加d 占年s 月加日 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 第1 章引言 1 1 课题来源及意义 1 1 1 课题背景 在全球信息化浪潮的推动下,人类社会己经逐步步入信息时代,信息基础设 施建设和i n t e r n e t 技术的日渐完善,使得基于这一技术的应用以惊人的速度向 社会生活各方面渗透。特别是随着全国电子政务的推进,社区信息化建设已成为 当今社区建设的一种趋势,是电子政务建设不可或缺的基础和重要组成部分。然 而当前社区管理大多使用的是w i n d o w s 操作系统下的单机版的软件,而且各系 统使用的后台数据库几乎都不相同,这就给使用者带来了诸多不便l lj : 第一,数据共享问题,因为原有系统大多是单机版,而且其后台使用的数据 库大都不同,所以即便是有了局域网的建设,系统之间也不能做到有效的数据交 换和共享。例如,一个社区往往是无法查询到另一个社区的信息,而且,如果某 次要使用的数据涉及到多个系统,还必须考虑到数据交换格式的问题等等。 第二,重复建设问题,因为每个系统各自为政,这势必造成不同程度的数据 冗余和重复建设的问题,从而也就可能出现资金浪费和各系统之间的数据异构现 象,给数据库维护带来了很多问题。 第三,管理混乱,缺乏综合统筹管理,各个系统互相不联接,影响未来决策 的数据依托。 第四,安全性差,很容易造成重要数据的流失。 第五,与相关单位的交流非常困难,需要大量时间,严重影响工作效率。 第六,系统扩展性差,由于没有统一的系统建设规划,导致新旧系统不能有 效联接等等。 综上所述,为了提高社区工作人员的工作效率和系统的利用率,加快社区信 息化进程,就必须对这些原有系统进行有效的改进和整合,建立一套完善的社区 信息管理系统,来克服原有系统存在的种种弊端。 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 1 1 2 技术背景 随着软件规模和复杂度的日渐升级,人们越来越深刻地认识到,良好的软件 体系结构对保证系统的成功至关重要。早先的大型机和哑终端构成的集中式的计 算模式和网络技术的推动下发展到咀c s 结构为代表的两层模式,c s 结构的客 户端庞大、服务器端容易成为瓶颈等缺点促使多层( n t i e r ) 分布式结构的出现。 如今,网络已融入人们的生活,各种w e b 应用系统也应运而生,但随着用 户需求的不断变化和市场竞争的日益激烈,这些w e b 应用系统必须不断地改进 其内容和形式,而解决该问题的关键是选择正确的软件系统体系结构。w e b 应用 系统多采用基于b s 的三层或多层框架结构,就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 ) 模式1 2 5 】正是将系统划分为模型层、视图层、控制层,因此,m v c 模式适应了日 益复杂的w e b 应用系统的设计需求。采用m v c 模式构建w e b 应用系统的体系 结构,能够有效地解决在w e b 应用系统开发过程中由于系统结构的复杂程度较 高而带来的诸多关键性问题【2 】,如代码之间的耦合问题,代码的易维护性问题, 组件的可重用性问题,不同技能的开发人员如何分工的问题等等。 j 2 e e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理相关 问题的体系结构,提供了一个企业级的计算模型和运行环境,用于开发和部署多 层体系的应用。j 2 e e 提供的多层分布式应用模型、组件重用、一致化的安全模 型以及灵活的事件控制,加快了应用程序的设计和开发,可以容易、快速地建立 融合i n t e m e t 技术尤其是w e b 技术的n 层( n t i e r s ) 结构的分布式企业应用。基于 j 2 e e 技术的b s 结构具有可维护性好、可扩展性好、安全性好等优点,较好地 解决了c s 结构所固有的可维护性差、可扩展性差、安全性差、部署麻烦等弊端 吼 最近几年,m v c 模式被引入到s u n 公司的j 2 e e 平台。基于m v c 模式的 j 2 e e 应用开发,在实际应用中,受到越来越多的欢迎。m v c 模式利用控制器来 分离模型和视图,达到层间松散耦合的效果,从而提高了系统的灵活性、复用性 和可维护性。 s t r u t s 就是一个基于m v c 模式的w e b 应用程序的框架。它是a p a c h es o f t w a r e f u n d a t i o n 的一个开源项目。s t r u t s 提供了c o n t r o l l e r 组件并且整合了其它技术来 硕士研究生毕业论文 基于m v c 模式的j 2 e e 应用研究与开发 实现m o d e l 和v i e w 。h i b e r n a t e 是另一个开源框架,它是一种实现对象和关系之 间映射( o r m ,o b j e c tr e l a t i o nm a p p i n g ) 的框架。它对j d b c 进行了轻量级的对象 封装,使得j a v a 程序员可以使用面向对象编程思维来操作关系数据库。 综上所述,本文提出了一个基于m v c 模式应用s t r u t s 和h i b e r n a t e 技术的 j 2 e e 架构来实现社区信息管理系统的解决方案。 1 2 研究内容 首先,主要是讨论分析了j 2 e e 和m v c 模式。s u n 公司的j 2 e e ( j a v a 2 平台 企业版) 是一个基于j a v a 的、适合服务器端构件体系结构的、完整的企业级应用 开发平台。j 2 e e 技术主要有:e j b ,s e r v l e t s ,j s p , j d b c ,j n d i 等。j 2 e e 平台的应 用程序主要由构件组成,应用程序的逻辑被封装到实现各种功能的一些构件中, 这些构件具有固定的格式并遵循j 2 e e 规范。应用系统的开发就是设计这些构件 并组装成整个应用。而m v c ( m o d e l v i e w c o n t r o l l e r ) 模式正是将系统划分为模 型层、视图层、控制层,采用m v c 模式构建w e b 应用系统的体系结构,能够有 效地解决在w e b 应用系统开发过程中由于系统结构的复杂程度较高而带来的诸 多关键性问题 2 1 ,如代码之间的耦合问题,代码的易维护性问题,组件的可重用 性问题,不同技能的开发人员如何分工的问题等等。 其次,介绍了s t r u t s 和h i b e r n a t e 技术,以及如何运用这两种技术构建一个 基于m v c 模式的j 2 e e 架构。并详细介绍了基于该架构的社区信息管理系统的 设计和实现。 最后,本文通过对课题所涉及的相关概念和技术进行分析研究之后,针对目 前社区信息管理中普遍存在的各子系统数据库异构的问题,提出了基于对业务数 据进行主题域的划分,采用h i b e r n a t e 数据访问技术实现对异构数据库的集成, 消除了数据集成中对物理数据结构的依赖。 1 3 本文结构 第1 章,引言部分,陈述了本文的背景及意义,简单地介绍了一些与本文相 关的概念和技术,给出了本文的主要研究内容。 第2 章,首先介绍了基于b s 的w e b 应用体系结构的发展,然后介绍了j 2 e e 硕士研究生毕业论文 基于m v c 模式的j 2 e e 应用研究与开发 体系结构以及m v c 模式在w e b 应用体系结构中的应用。 第3 章,详细介绍了s t r u t s 框架的主要技术及其工作原理。 第4 章,对o rm 印p 洫g ( 对象关系映射) 框架h i b e m a t e 的体系结构及工 作流程进行详细介绍。 第5 章,给出了基于m v c 模式应用s t r u t s 和h i b e r n a t e 技术的j 2 e e 应用一 社区信息管理系统的解决方案。在此基础上,应用前面几章介绍的相关技术,对 社区信息管理系统的开发进行了介绍,包括系统设计、实现等内容。 第6 章,介绍了利用h i b e r n a t e 数据访问技术解决社区信息管理系统中数据 库异构的问题。 第7 章,总结本文并说明以后的进一步工作。 硕士研究生毕业论文 基于m v c 模式的j 2 e e 应用研究与开发 第2 章j 2 e e 体系结构和m v c 设计模式 2 1 j 2 e e 体系结构 2 1 1 企业应用面临的挑战及多层b s 构架 计算机网络技术的发展和成熟,特别是i n t e m e t 的普及,将应用扩展到局域 网、广域网甚至i n t e m e t 上已经成为企业发展的必然需求。企业迫切需要有效地 实施企业系统的开发,构建出高质量结构、高度可用的企业应用,具备与网络时 代相适应的特点,具有集成i n t e m e t 的能力。面对迅速变化的技术和经济形势所 带来的冲击、企业应用技术所带来的新需求,企业级的应用开发面临着反应性、 程序设计生产率、可靠性、可用性、安全性、可扩展性、集成化等多方面的新挑 战【2 6 1 。 组件技术和应用服务器技术的出现为企业级网络分布式应用提供了很好的 技术支持,可以有效地控制因重复开发而带来的应用系统成本的提高并增强应用 系统的重复使用性,发挥面向对象分析设计的功能。在这种局面下,多层 b s ( b r o w e r s e r v e r ) 结构应用而生。客户机的规模被压缩,成为一个简单的浏览器; 应用逻辑被集中起来,置于一个或多个服务器上。图2 - 1 便是一个主流的基于多 层b s 构架的企业系统结构图。 图2 1 多层b s 企业应用系统结构图 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 目前,分布式企业应用最前沿的体系结构是多层b s 构架,现代企业分布式 多层体系结构的解决方案是基于应用服务器技术和组件开发的分布式应用【4 】。多 层b s 体系结构能够分散服务器的压力,增强系统的可扩展性,使应用具有良好 的可重用性和可维护性,同时简化客户端,减少维护费用。 第一,多层结构能将业务的处理分散到不同的服务器上。这样的处理过程在 时间上各个模块可以并行处理,提高了效率;在空间上分布在不同的节点处理, 分散了各个节点的压力,使得整个系统能够承担更大业务量的处理。 第二,多层结构增强了系统的可扩展性。因为应用服务器可以是物理上分布 的多个服务器,系统可以自动调节各个服务器之间的负载平衡,客户端并不需要 关心访问的是哪一个服务器。对于更大业务量的需求,系统也可以很容易的无限 制的扩展。 第三,多层结构提高了应用的可重用性和可维护性。整个系统都是按照组件 开发的模式进行的,每个组件完成一个单的功能,同时可以互相调用,使得相 同功能的组件只需次编码,代码的可重用性好。如果业务需求有改变,只需修 改相应的组件模块,只要接口不变对于别的组件都无影响,系统的维护量极小。 另外,对于w e b 的访问,这类解决方案还提供了数据库动态网页生成引擎, 它与应用服务器的结合进一步解决了w e b 用户的需求。无论是普通的 c l i e n t s e r v e r 应用,还是基于w e b 的企业应用,多层体系结构都会使不同企业的 系统更稳定、更健壮,满足系统不断增长的业务量需求。因此,基于c s 结构的 企业应用系统正逐渐被以应用服务器技术为特点的多层b s 体系结构所取代。 2 1 2j 2 e e 体系结构 j 2 e e 2 8 1 是一种利用j a v a2 平台来简化诸多与多级企业解决方案的开发、部 署和管理相关复杂问题的体系结构【5 】。j 2 e e 提供了一套完整的开发多层分布式 应用的技术和设施( 服务a p i ) ,是为当今众多厂商支持的多层分布式应用的标准, 为快速灵活地建立大规模的分布式企业应用提供了高效的解决方案。 j 2 e e 使用多层分布式应用程序模型,根据功能的不同把应用程序逻辑划分 成各个组件。一个组件应该被安装在什么地方,取决于该组件属于多层j 2 e e 应 用的哪一层。这些层分别是客户层、w e b 层、业务层、企业信息系统层( e i s ) ”。 6 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 如图2 - 2 所示。 j 2 e e 应用1 围 j 2 e e 应用2 _ _ _ _ _ _ _ _ 客户层1 _ j 强i 业务层i _ j 瞵一 一 客户端机器 j 2 e e 服务器机器 数据库服务器机器 图2 2 多层j 2 e e 应用 1 客户层( c l i e n tt i e r ) j 2 e e 应用可以是基于w e b 的,也可以是不基于w e b 的。 在一个基于w e b 的j 2 e e 应用中,用户的浏览器在客户层中运行,并从一个 w e b 服务器下载w e b 层中的静态h t m l 页面或由j s p s e r v l e t 生成的动态h t m l 页面。在一个不基于w 曲的j 2 e e 应用中,一个独立客户程序,或者一个不是运 行在h t m l 页面中、而是运行在其他基于网络的系统( 如手持设备或汽车电话) 中的a p p l e t 程序,在客户层运行,并在不经过w e b 层的情况下访问业务层构件 e j b 。 2 w e b 层( w e bt i e r ) j 2 e ew e b 组件可以由j s p 页面、基于w e b 的a p p l e t 以及显示h t m l 页面 的s e r v l e t 组成。就像客户层一样,w e b 层可能包含一个j a v a b e a n 来管理用户输 入,并将输入发送给在业务层中运行的e j b 来处理。 w e b 层也称为表示层( p r e s e n t a t i o nt i e r ) 。 3 业务层( e j b b u s i n e s st i e r ) 作为满足某个特定业务领域( 比如银行、零售或金融业) 需要的业务逻辑代码 由运行在业务层的e j b 来执行。一个e j b 从客户程序处接收数据,( 若需要) 对数 据进行处理,再将数据发送到企业信息系统层存储。一个e j b 还从存储中检索 数据,并将数据送回客户程序。运行在业务层的e j b 依赖于容器提供诸如事务、 虽习圈 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 生命期、状态管理、多线程及资源缓冲池等十分复杂的系统级功能。业务层也称 e j b 层。 业务层和w e b 层一起构成了j 2 e e 应用的中间层。 4 企业信息系统层饵i st i e r ) 企业信息系统层运行企业信息系统软件,这层包括企业基础设旌系统,例如 企业资源计划( e r p ) 、大型机事务处理( m a i n f i a m et r a n s a c t i o np r o c e s s i n g ) 、数据 库系统以及其它遗产信息系统( l e g a c yi n f o r m a t i o ns y s t e m ) 。j 2 e e 应用组件因为 某种原因( 如访问数据库) 可能需要访问企业信息系统。j 2 e e 平台支持c o n n e c t o r 架构,该架构是将j 2 e e 平台连接到企业信息系统上的一个标准a p i 。 一个j 2 e e 组件就是一个自带功能的软件单元。这些组件之间相互通信。j 2 e e 规范定义了下列组件1 6 】:1 客户组件应用客户和a p p l e t : w e b 组件一j a v as e r v l e t 和j s p ; 业务组件一企业j a v a b e a n s f z j b ) 组件。 j 2 e e 的巨大吸引力7 1 在于: 1 平台独立性 企业的信息分布在不同的平台和应用中,在程序设计语言方面需要做出权 衡。所选择的语言能够在企业中方便地应用,而不显得笨拙,事务处理也要高效。 当集成各种不同的技术进而形成具体的平台和应用时,采用统一的程序设计模型 就能够减少许多困难。 2 可重用性 代码重用是所有程序设计的目的之一。要达到重用目的,方法之一就是把应 用的商业需求划分为不同的组件,而采用面向对象方法封装公用功能是另外一种 方法,j 2 e e 采用了这两种方法。j 2 e e 的j a v a 是一种面向对象的程序设计语言, 提供了重用机制,但是不像对象那样,创建和管理组件需要一种复杂的基础框架 机制,基本的面向对象概念并未提供这样的机制,然而j 2 e e 提供了一种相当强 大的机制来重用组件。 3 模块化 当开发一个完整的服务器端应用程序时,程序会迅速变大、复杂化。把应用 硕士研究生毕业论文 基于m v c 模式的j 2 e e 应用研究与开发 划分为相对独立的模块,每个模块负责处理一个具体的任务,按照这种方式,理 解和维护应用程序就会变得容易。模块化应用的手段有j a v as e r v l e t , j a v a s e r v e r p a g e 和e n t e r p r i s ej a y a b e a n 一它们可以把应用程序划分为不同的层和任务。 基于j 2 e e 进行企业系统的开发,不仅能够简化应用结构、提高开发效率, 而且构建的系统具有很强的可移植性、重用性、可伸缩性。因此,j 2 e e 为搭建 具有可伸缩性、灵活性、易维护性的企业系统提供了良好的机制i x 】。 2 2 m v c 设计模式 设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难 2 7 1 。 至今,我们追求软件复用的目标己经多年,但没有取得很大的成功。实际上,绝 大多数业务复用成功的例子都发生在用户接口领域,而不是业务组件领域,而后 者才是我们努力追求的目标。作为业务系统的设计师,他们力求促进复用,但是 实际上只专注于设计和构架层次上的复用。设计模式证明了它是一种提高复用层 次的极好方法1 8 j 。 2 2 1 设计模式 设计模式是情境中标准设计问题的重复性解决方案 9 1 。一般而言,一个设计 模式有四个基本要素f 1 0 1 : 1 模式名称( p a t t e mn a m e ) 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个 新的模式增加了人们的设计词汇。设计模式允许人们在较高的抽象层次上进行设 计。模式名称可阻帮助人们思考,便于与其他人交流设计思想及设计结果。找到 恰当的模式名称也是设计模式编目工作的难点之一。 2 问题( p r o b l e m ) 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它 可能描述了特定的设计问题,如怎样用对象表示算法等:也可能描述了导致不灵 活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先 决条件。 3 解决方案( s o l u t i o n ) 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因 为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定 而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义 的元素组合( 类或对象组合) 来解决这个问题。 4 效果( c o n s e q u e n c e s ) 描述了模式应用的效果及使用模式应权衡的问题。尽管描述设计决策时,并 不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有 重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问 题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、 扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮 助。 不同的设计模式具有一些共性: 1 设计模式是从实践中获得的。设计模式并非凭空想象产生的。实际上, 它们大都来自于实践,是被“发现( d i s c o v e r ) ”而不是“写作( w r i t e ) ”出来的。 2 设计模式表达好的设计。设计模式并不仅是关于对象的设计,而且关于 对象间的通信。因此有时也称为“通信模式”。正是简单而不乏优雅的通信方法 设计使得设计模式变得如此重要。 3 设计模式避免无谓的重复劳动。 4 设计模式可重用。 5 多个设计模式可以一起用来解决更大的问题。孤立地使用某个设计模式 还不能够充分发挥设计模式的优势,通常将多个设计模式联合使用。 6 设计模式存在于不同层次的抽象级别。设计模式存在于不同的粒度 ( g r a n u l a r i t y ) ,小到具体的解决方案,大到通常的系统问题。 7 模式不断向前发展。设计模式使人们可以更加简单方便的复用成功的设 计和体系结构。将已证实的技术表述成设计模式会使新系统开发者更加容易理解 其设计思路。设计模式能够帮助做出有利于系统复用的选择,帮助设计者更快更 好的完成系统设计。 1 0 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 2 2 2m v c 设计模式 当前的应用系统正在向多层w e b 的方向发展。设计多层w e b 应用的一个难 点是如何创建结构合理整洁的瘦客户机层。在组合正确的外观和行为、包装表示 逻辑的同时,不能和任何业务逻辑混杂,将用户界面、流程控制和业务逻辑进行 分离,要在各层创建易于阅读、易于维护、易于扩展的代码【9 】。这就需要一个能 开发出松散耦合应用程序的解决方案:模型视图控制器( m v c ,m o d e l v i e w c o n 仰l l e r ) 设计模式 2 5 1 。 ( 1 ) m v c 在传统应用程序设计中的应用 模型,视图控制器( m v c ) 模式源于传统的面向对象语言s m a l l t a l k 8 0 t ,它 是第一个分开表示逻辑和业务逻辑的设计模式。m v c 引入视图( 表示层) 、模型( 数 据) 和协调两者的控制器。在出现m v c 模式之前,用户界面设计通常把这些层 合并在一起,而m v c 模式则把它们分离开,使各个模块相对独立,提高灵活性 和复用性。 m v c 将应用程序系统分为三个组成部分: 1 v i e w :用户视图模块,这是用户界面部分。与w e b 应用程序一样,主管 应用程序与人之间的接口。一方面它为用户提供了输入手段,并触发应用逻辑运 行:另一方面,它又将逻辑运行的结果以某种形式显示给用户。 2 c o n l x o l l e r :流程控制模块,该部分是用户界面与m o d e l 的接口。一方面 它解释来自于v i e w 的输入,将其解释成为系统能够理解的对象,同时它也识别 用户动作,并将其解释为对m o d e l 特定方法的调用;另一方面,它处理来自于 m o d e l 的事件和m o d e l 逻辑执行的结果,调用适当的v i e w 为用户提供反馈。 3 m o d e l :事务逻辑模块,这是整个模型的核心。它表示的是解决方案空 间的真正的逻辑。它采用面向对象的方法,将问题领域中的对象抽象为应用程序 对象。在这些抽象的对象中封装了对象的属性和这些对象所隐含的逻辑。 v i e w , c o n l z o l l e r , m o d e l 三者的动态协作关系如图2 3 所荆1 4 1 。 从图中我们可以看到,c o n t r o l l e r 接收使用者的消息,要求m o d e l 处理应用 领域的资料;m o d e l 告诉v i e w ,让v i e w 知道m o d e l 的内容已更新,v i e w 接获 通知并进行准备工作,就绪了才要求m o d e l 送来新内容,显示于视窗里。下图 硕士研究生毕业论文 基于m v c 模式的j 2 e e 应用研究与开发 是典型的m v c 结构,但也有许多衍生出来的结构。例如,有些系统的c o n t r o l l e r 及v i e w 都可以接收使用者传来的消息。通常,屏幕上可显示多个视图,各呈现 m o d e l 的某一个层面,所以一个m o d e l 可配合多个v i e w 。 状 态 查 询 改 变 提 醒 v i e w 表现m o d e l 向m o d e l 发出更新请求 将用户请求交给 c o n t r o l l e r m o d e l 封装应用状态 封装应用功能 提供功能接口 通知状态改变 用户请求 状 态 改 变 c o n t r o l l e r 定义应用特征行为 将用户请求映射为 m o d e l 更新 选择合适的v i e w 方法调用一 事件 图2 3m v c 动态协作关系 传统的m v c 模式只是从概念上将视图从流程控制、业务逻辑中独立出来, 并定义了相互间作用的机制,使各个模块的开发相对独立,但是它没有针对不同 视图类型,解决流程控制等对象的统一问题。因此,针对具体的研究对象,我们 在使用m v c 模式时需要对此做进一步的研究。 ( 2 ) m v c 在w e b 中的应用 传统的m v c 模式主要针对一般的应用程序,而w e b 开发向软件开发人员提 出了一些特有的挑战,最明显的就是客户机和服务器的无状态连接。这种无状态 行为使得模型很难将更改通知视图。在w e b 应用中,为了发现对应用程序状态 的修改,浏览器必须重新查询服务器。因此,在w e b 中引入m v c 设计模式需要 对其做进一步的改进以适应w e b 这样的环境。 m o d e l 2 就是在w e b 这样的特殊环境下m v c 设计模式的一种变体,它把j s p 和s e r v l c t 组件结合在一起【1 1 】。在m o d e l 2 中,v i e w 是应用程序的外观,由j s p 组件实现。c o n t r o l l e r 则是由s c r v l e t 组件来实现,它负责处理导航流,可以调用 m o d e l 并且负责选择正确的j s p 页面来创建和显示动态内科17 1 。m o d e l 2 的体系 结构如图2 - 4 。 1 2 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 厂 i _ j 浏 卤。数笋 览 器 r r e s p o n s e w e b a p p l i c a t i _ o ns e r v e r 图2 - 4m o d e l 2 体系结构 m o d e l 2 的目的和m v c 一样,也是利用控制器来分离模型和视图,达到一 种层间松散耦合的效果,提高系统灵活性、复用性和可维护性。它确立了开发人 员与网页设计者的角色分工,减轻了开发人员的工作量,使得开发人员不必考虑 繁琐的网页设计,而只专心于商业事务的开发和后台处理工作。网页设计者也可 以轻松的改变程序的外观而不需要知道后端s e r v l e t 的工作方式。在实际应用中, 项目越复杂,使用m o d e l 2 的优势就越大。 ( 3 ) m v c 的优点 m v c 模式常用于以下几个方面:分布式应用;大型应用:生命周期长的应 用:界面和后台的可移植性非常重要的地方;数据必须使用多种方法进行观察和 操作的地方;对多开发人员支持同步、模块化开发;允许根据技能进行工作的分 工;简化单元测试;使用在不同应用中可重用的企业b e a n 。 通过上面的分析,可以看到使用m v c 模式进行系统设计可以获得以下优点: 1 设计清晰:用模型中的方法来操作它的数据和状态,很容易理解如何来 控制模型的行为。当设计一个应用时,这种方式将使整个程序更加容易执行和维 护。 2 模块的有效性:如果需要,任何组件甚至整个模块都可以换进换出,视 图、控制器或模型的程序改变不会都影响到其他方面。不同的组件开发能够同时 进行。 3 代码和设计的复用性:广泛采用可复用的组件,能够降低新项目的开发 成本,通过对设计的复用,使得开发小组之间更易于沟通,设计的系统更易于理 解。 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 4 易于维护:控制器和视图可以随着模型的扩展而进行相应的扩展,只要 保持一种公共的接口,控制器和视图的旧版本也可以使用。 5 功能强大的用户界面:用户界面与模型方法调用组合起来。发送给模型 的“标准”命令,都是由单个用户行为触发的。这就使得程序可以使用更加清晰 友好的界面发布给用户。 6 允许多种用户界面的扩展:在m v c 模式中视图与模型没有必然的联系, 都是通过控制器发生关系。如果要增加新类型的用户界面,只需要改动相应的视 图和控制器即可,而模型则无需发生改动。 2 3 基于j 2 e e 和v c 开发多层w e b 应用 即使利用最先进的软件平台j 2 e e ,开发多层w e b 应用仍然是个难题。在基 于组件的j 2 e e 平台充分内置了灵活的情况下,如何组织应用程序以实现简单高 效的应用程序升级、维护和扩展,以及如何让不懂程序代码的人员避开程序数据 【】成为我们首先要解决的问题。我们既要充分考虑到多层结构中各层之间需要密 切配合才能完成最终功能,又要在实际开发中尽可能的使各层的开发相对独立, 减少各层之间的耦合程度,避免开发人员相互制约,同时还必须考虑如何提高系 统的效率。 m v c 是设计交互式应用时广泛采用的一种设计模式,也是j 2 e e 蓝图推荐 的在开发w e b 应用时使用的方法【”i 。m v c 模式分离了数据的控制和数据的表 现。由于不存在耦合,将多数据集表述在多视图中就变得很容易,同时也使得为 新的客户类型提供支持更为简单。使用这种结构,代码冗余被最大限度地减少。 对于开发人员来讲,可以分清开发者的责任:程序设计人员可以专注于业务的处 理,网页设计人员专注于用户交互的界面。基于j 2 e e 平台和m v c 设计模式, 可以容易的构建可复用的软件系统框架,同时简化软件开发,提高软件性能和可 维护性,达到提高软件质量的目的【2 4 】。 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 第3 章s t r u t s 框架 3 1s t r u t s 的体系结构 j a k a r t a 是a p a c h es o f t w a r e 的一个研究开发j a v a 产品的工程,主要为 j a v a 开发者提供各种开发工具及软件框架u 。s t r u t s 是j a k a r t a 工程提供的用于 开发w e b 应用软件的框架,他采用了m v c 模型2 。它的创建者希望改进和提高 s e r v l e t ,j s p ,标签库,以及面向对象的技术水平。s t r u t s 这个名字来源于在建 筑和旧式飞机上使用的支持金属框架,它的目的是使运用m v c 模式开发w e b 应用的时间减少。在利用j s p ,s e r v l e t 的优点建立可扩展的j 2 e ew e b 应用时, s t r u t s 是个不错的选择。s t r u t s 是一个w e bf r a m e w o r k ,它继承了m v c 的各项 特性,并根据j 2 e e 的特点,做了相应的变化和扩展。它通过把一组相互协作 的类s e r v l e t ,以及标签库结合在一个统一的框架中,将m v c 模式所具有的“分 离业务逻辑和显示逻辑”的能力发挥到了极点,完全实现了m o d e l 2 ,并很好的 帮助j a v a 开发人员开发j 2 e ew e b 层。 s t r u t s 实质上就是在m o d e l2 的基础上实现的一个m v c 架构。它只有一 个中心控制器,它采用x m l 定制转向,使用a c t i o n 来处理逻辑。s t r u t s 由 s e r v l e t ,标记库,实用类库等构成,它提供了自己的控制器,同时整合了其它的 一些技术去实现m o d e l 层和v i e w 层。它的体系结构如图3 1 所示: 图3 1s t r u t s 体系结构图 从图中看到s t r u t s 的三个部分: 硕士研究生毕业论文基于m v c 模式的j 2 e e 应用研究与开发 1 视图 视图主要是由j s p 建立。s t r u t s 自身包含一组标记库,是s t r u t s 的精华之 一【1 9 】。它们可以简化j s p 页面的代码,灵活运用它们可以大大提高他们的开发 效率。 2 模型 s t r u t s 中的模型由一系列的b e a n 来实现,可以自己定义业务逻辑b e a n 。 s t r u t s 本身还提供了一种非常有用的b e a n ,即f o r m b e a n ,它可以在模型和视图 之间保存数据。 3 控制器 s t r u t s 中的控制器主要是它自身提供的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 c o n f i g x m l 配置文件,它包含了所有页面导航的定义。 a c t i o n s e r v l e t 接受请求,并根据配置文件中的定义将控制转移到适当的a c t i o n 类。其余的控制逻辑和对模型的访问由a c t i o n 类来完成。 3 2 详细论述s t r u t s 的主要类 s t r u t s 框架中相互协作的类,主要包括a c t i o n s e r v l e t ,a c t i o n ,a c t i o n f o r m , a c t i o n m a p p i n g 。它们的调用关系如图3 2 所示。 图3 - - 2s t r u t s 类间的调用关系 这些类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论