(控制理论与控制工程专业论文)基于struts框架和hibernate技术的web应用的设计与实现.pdf_第1页
(控制理论与控制工程专业论文)基于struts框架和hibernate技术的web应用的设计与实现.pdf_第2页
(控制理论与控制工程专业论文)基于struts框架和hibernate技术的web应用的设计与实现.pdf_第3页
(控制理论与控制工程专业论文)基于struts框架和hibernate技术的web应用的设计与实现.pdf_第4页
(控制理论与控制工程专业论文)基于struts框架和hibernate技术的web应用的设计与实现.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(控制理论与控制工程专业论文)基于struts框架和hibernate技术的web应用的设计与实现.pdf.pdf 免费下载

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

文档简介

尘整墨三叁兰墅主堂垡堕兰 一 摘要 随着亡1 算机和网络技术的h 新月异,尢线通信网络从2 5 g 剑3 g 的推进,t j :界进入 了前所未有的信息化时代,移动商务成为当今企、k 信息化的重要内容。对于复杂多变的 市场环境,开发伸缩性强、扩展性好、重用性高和易维护、易管理的w e b 应用是当前 w e b 技术发展的热点之一。 对于w e b 应用开发技术的扩展性、重用性和维护性等问题,整合了s t r u t s 框架祁 h i b e 】1 a t e 技术,构建了一个s h 模型它具有结构灵活、易于维护、扩展性好等优点。 以此为基础,本文探讨了无线自动售货机运营支撑系统的开发。论文自姥讨论了w e b 应片j 开发技术的发展,研究了儿发w e b 应用的m o d e l1 和m o d e l2 ( m 、,c ) 体系结构, 比较了两者的优缺点。分析了m v ci r ;1 模式的种实现s t l u t s 框架和提供面向对象方 法操作数据库的h i b e r n a t e 技术,闱述了将两者整余的优势。接着对尤线自动售货机运 营支撑系统作了详细的需求分析,它为系统运营丽提供了远程监控售货机状态、商品种 类和数量的功能,可以方便系统运营人员即时掌握信息:同时为不同层面的管理人员提 供销最统计报表、计费兑帐、物流管理功能。基于系统分析和w e b 开发技术的研究, 采用s h 模型跬计并实现了无线自动售货运营支撑系统,比较了陔系统采用m o d e ll 体 系结构和s i i 模型开发的差别。并以用户登录为例,洋细描述了软什框架配置、模犁层、 视图层和控制器层的实现过程。 基于s h 模型的无线自动售货机运营支撑系统具有结构灵活、易于维护、扩展性好、 界面友好等优点,经过半年多的使用,系统运行可靠。 关键词:s h 模型;i i v 0 设计模式;s t r u t s 框架:h i b e r n a t e 技术 大连理工大学硕士学位论文 d e s i g na n dr e a l i z a t i o no fw e ba p p l i c a t i o n ba s e do ns t r u t sa n dh i b e m a t e a b s t r a c t a l o n gw i t ht h ea d v a n c eo lt h em o b i 】en e t w o r kf r o m25 gt o3 g t h ed e v e l o p m e n to ft h e m o b i l eb u s i n e s si so b v i o u sd a yb yd a y m o b i l eb u s i n e s sb o o o m o si m p o r t a n tn o wa n df u t u r e m e a n w h i l e ,t h et e c h n o l o g yo fc o m p u t e ra n dn e t w o r kc h a n g e sw i t he a c hp a s s i n gd a y ,t h e w o r l de n t e r si n t ot h ea g eo fg l o b a li n f o r m a t i o n ,a n di n f o r m a t i o nb e c o m e st h es y m b o lo ft i l e e n t e r p li s em o d e r na d m i n i s t r a n t i ti san e c e s s a r yc h o i c ef o rt h em o b il eb u s i n e s so p e r a t o rt o u s ec o m p u t e rn e t w o r kt om a n a g et h em o b i l eb u s i n e s s s ot h ea p p l i c a t i o no fw e bw h i c hh a s b e t t e rd e v e l o p m e n t m a i n t a i n a b i l i t y ,e x p a n s i b i l i t y ,r e p e a t a b i l i t ya n de a s ym a n a g e m e n t ,i st h e h o t s p o to ft h ew e bt e c h n o l o g y f o rt h ee x p a n s i b i l i t y ,r e p e a t a b i l i t ya n dm a i n t a 】n a b l l i t yo ft h ew e bt e c h n o l o g y ,c o m b i n e w i t hs t r u t sf r a m e w o r ka n dh i b e r n a t et e c h n o l o g y ,s e t u pas hm o d e lw h i c hh a ss o m em e r i t s s u c ha sf l e x i b i l i t y ,m a i n t a i n a b i l i t ya n de x p a n s i b i l i t y t h i sp a p e rd i s c o s s e st h ed e v e l o p m e n to f t h e o p e r a t i n gs u p p o r ts y s t e m o fw i r e l e s s v e n d i n g m a c h i n e f i r s t l y ,i n t r o d u c e s t h e d e v e l o p m e n th i s t o r yo ft h ew e ba p p l i c a t i o n ,d i s c u s s e sa n dc o m p a r e st h em o d e lla n dm o d e l 2 ( m v c ) o fw e ba p p l i c a t i o nd e v e l o p m e n ta n a l y s e st h ec o m b i n a t i o no ft h es t r u t sf r a l n e w o i k b a s e do nt h em v c d e s i g np a t t e r na n dt h eh i b e r n a t et e c h n o l o g y b a s e do no b j e c t r e l a t i o n s h i p m a p p i n g ,w h i c hm a k e sp r o g r a m m e ru s et h eo b j e c t o r i e n t e dt h i n m n gt oo p e r a t et h ed a t a b a s e t h e n ,d i s c u s e st h eo p e r a t i n gs u p p o r ts y s t e mo fw i r e l e s sv e n d i n gm a c h i n ei nd e t a i l s i t p r o v i d e st h el o n g d i s t a n c ei n o n i t o r i u gf o rv e n d i n gm a c h i n es t a t e ,c o m m o d i t yk i n da n d n u m b e rt ot h es y s t e mo p e r a t o r ,w h i c hf a c i l i t a t e st h eo p e r a t o rt om a s t e rt h ei n f o r m a t i o ni nt i m e i ta l s oo f f e r ss t a r t s t i e s ,c h a r g i n g ,m a n a g i n gt od i f f e r e n tl e v e lm a n a g e r b a s e so n s y s t e m a n a l y s i sa n dw e bd e v e l o p m e n tt e c h n o l o g y ,a d o p t i n gs hm o d e ld e s i g n sa n dr e a l i z e st h e o p e r a t i n gs u p p o r ts y s t e mo fw i r e l e s sv e n d i n gm a c h i n et a k e su s e rl o g i nf o ra ee x a m p l e ,a n d o u t l i n e st h er e a l i z a t i o no fs o f t w a r ef r a m e w o r k ,m o d e l ,v i e wa n dc o n t r o l l e rl a y e r sa tl e n g t h i ti si n d i c a t e df r o mt h er e s u to ft h ep r o g r a mr u n n i n gt h a tt h eo p e r a t i n gs u p p o r ts y s t e mo f w i r e l e s sv e n d i n gm a c h i n eb a s e do ns hm o d e lc a ni m p l e m e n tt h ef u n c t i o no ft h es y s t e m t h i s s y s t e mw o i k ss t a b l y ,n o r m a l l ya n d i se a s yt ob eo p e r a t e da n dm a i n t a i n e d k e yw o r d s :s hm o d e l ;m v cd e s i g np a t t e r n ;s t r u t sf r a m e w o r k ;h i b e r n a t e 7 r e c h n o l o g y 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特另r i d i :l 以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名:趁墨! 坌日期:毫2 垡! 兰堕! ! 虚 大连理t 大学硕士研究生学位沦文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用 规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子 版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,出可采用影印、缩印或扫描等复制手段保存和汇编学位沧 文。 作者签名:熟望璺 导师签名: 砸立 导师签名:,型盟弛 j 4 年上明监日 大连理= :【_ ? 大学硕士学位论文 1 绪论 1 1 课题研究的背景和意义 随着移动网络的快速发展,移动网络从2 5 g 到3 g 的推进,网络所支持的移动数据 速率的快速提升,一些面向移动商务领域发展的趋势日益明显:越来越多的消费者喜欢 上了网上购物,增值的s m s 业务大受欢迎,而且越来越多的预付费充值购买可以通过 移动电话进行。移动商务成为现在和今后移动应用的重要内容【1 ,2 j 。另方面,随着计算 机技术的普及和网络技术的飞速发展,世界进入了前所未有的信息化时代,为企业的发 展提供了种种机遇和更广阔的发展空间,将企业卷入信息化的大潮中来,企业信息化是 企业现代化管理的标志,是企业快速响应市场变化的必备条件,如今企业大多采用各种 不同的w e b 应用程序来提高自身的管理能力。 为了应对由于市场信息变化的需求,企业对w e b 应用程序的可扩展性要求越来越 高,因此对传统的w e b 应用技术提出了技术挑战。传统的w e b 应用开发将页面显示、 业务逻辑和数据处理都集中在页面代码中,导致应用程序的耦合性很强,从而引起w e b 应用的扩展和维护极其困难,同时也不利于开发人员分工协作。传统的w e b 应用开发 在大型的企业级应用中愈加显的力不从心。随着j 2 e e 平台的出现,基于b s 的多层 w e b 体系结构逐渐发展成熟起来,多层w e b 应用的开发已成为主流。但是,在多层w e b 体系结构的设计中,普遍存在程序可重用程度低、维护工作繁琐、应变能力较弱等不足: 同时,多层w c b 应用软件需要面对复杂的网络环境、多样化的用户需求、灵活的业务 模式、复杂的业务流程、众多的组织机构及层次、角色分工等问题,在业务和技术上也 是复杂多变的【3 , 4 1 。因此,如何组织应用程序以实现简单高效的应用程序升级、维护和扩 展,是当前w e b 技术发展的热点之一。 为了降低成本、加快应用程序的开发和设计。依据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 o d e l 、 v i e w 和c o n t r o l l e r ,强迫将表现逻辑和业务逻辑分离,避免其相互纠缠,从而简化了维 护工作。它使每一部分的细节都隐藏在接口背后,同时减少了它们之间的代码耦合。 m v c 作为一种强大的代码管理工具,成为实现w e b 应用的首选模式,但是,要开发此 类代码却是一个辛苦的过程。幸运的是,s t r u t s 为我们解决这一切,它提供了构建基于 m v c 的应用程序的基础或框架,同时还为更快、更轻松开发m v c 提供了库和实用程 基丁s t r u t s 框架和h i b e r n a l e 技术的w e b 应用的设汁与实现 序。s t r u t s 最初是有c r a i gr m c c l a n a h a n 创建的,在2 0 0 0 年用于a p a c h es o f t w a r e f o u n d a t i o n ( a s f ) 的j a k a r t a 项目。2 0 0 1 年6 月,s t r u t s l 0 发布。从那以后,许多人在 原代码和文档方面都对该项目做出过贡献,s t r u t s 得到了迅速的发展。如今,s t r u t s 已成 为构建j a v a w e b 应用程序的实际标准,并且已经成为j a v a 体系的一部分吼 数据库操作在w e b 应用中具有相当重要的地位,可以说,所以的w e b 应用都离不 开数据库。目前,关系数据库占据着市场的主导地位,不利于面向对象的编程思想的发 挥,如何使利用面向对象的思想操作关系数据库也是当今的w e b 应用技术发展的热点 之一。 以前的使用j d b c 编程束访问数据库,虽然运行效率高,但是在j a v a 程序代码中嵌 入大量的s o l 语句,使得项目难以维护。现在,越来越多的j a v a 开发人员把h i b e r n a t e 作为企业应用和关系数据库之间的中间件。h i b e r n a t e 是对象关系映射( o b i e c t r e l a f i o n a l m a p p i n g ) 的解决方案,简写为o r m ,简单地说就是将j a v a 中的对象与对象关系映射 至关系数据库中的表格与表格之间的关系,h i b e r n a t e 提供了这个过程中自动对应转换的 方案1 6 l 。从而使程序员可以方便的使用面向对象的思想操作关系数据库。 1 2 本文主要内容 本文的章节安排如下: 第1 章绪论,介绍了本文的研究背景、目的和意义,以及论文的组织结构。 第2 章w e b 应用开发技术,通过介绍w e b 应用开发技术发展和j 2 e e 体系结构, 研究了m v c 设计模式及其实现s t m t s 框架,研究了基于o r m 的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 h 模型) 来开发w e b 应用。 第3 章无限自动售货机运营支撑系统的分析和设计,详细分析了无限自动售货机 运营支撑系统的需求,划分了功能模块及每个功能模块需要实现功能,设计了系统框图、 包以及主要类。 第4 章系统实现,以用户登陆为例,详细介绍了利用s h 模型的实现过程。同时也 验证了利用s h 模型实现w e b 应用的可行。 大连理工大学硕士学位论文 2w e b 应用开发技术 2 1w e b 应用开发技术的发展 i n t e r n e t 最初主要由科研和军事部门用于共享科研信息,这些信息中的大部分都是 静态文档。因此,i n t e r n e t 一开始主要是作为一种文化共享机制出现的。 1 9 9 5 年,i n t e m e t 开始进入商业化,w c b 上出现了信息大爆炸。与w e b 上共享的研 究内容相似,早先的商业内容也主要是由加入了简单图形的文本构成。使用超连接后, 用户可以从一个页面连接到另一个页面,但是页面上的内容仍然是静态文档,不支持其 他形式的用户交互操作。但是不久以后,企业就希望能够向用户提供动态内容,带给用 户更丰富和更具吸引力的i n t e r n e t 体验。动态内容就是专门为特定用户提供的数据。例 如,某个用户要查看在线商品信息,用户输入商品名称后,服务器将对此做出响应。响 应是基于请求即时生成的,因而内容是动态的。 为填写动态内容方面的空白,w e b 服务器软件开始使用c g i 脚本来创建应用程序; 这些应用程序可以在w e b 服务器上运行,同时生成动态内容并将其返回浏览器。通过 c g i ,即通用网关接口,w e b 服务器可以接受请求,并运行服务器端程序,该程序将执 行某些操作,然后以标准格式输出信息。w e b 服务器软件然后会读取输出信息,并将该 信息返回给请求浏览器。最初,许多c g i 脚本都是使用p e r l 或其他基于u n i x 的脚本语 言编写的。但是随着时间的推移,构建的用来运行c g i 脚本的程序逐渐变得越来越复杂, 因此许多诸如c 和c + + 等面向应用的语言就被用来创建更大、具有更多功能的应用程 序。随着h t i v i l 表单的出现,c g i 脚本还能够接收来自浏览器的数据,并对这些数据 进行处理。 在基于c g i 的应用程序开发在服务器端流行起来的同时,j a v a 编程语言开始被人所 知,起初主要是a p p l e t 。a p p l e t 使w e b 开发人员能够向w c b 页面添加丰富的动态功能。 因为j a v a 程序具有“编写一次,随处运行”机制,因此任何支持j a v a 的浏览器都能运行 a p p l e t 。开发人员从此就能在w e b 页面中轻松地加入动态内容。基于同样的原因, j a v a a p p l e t 不仅在客户端遍地开花,并且在1 9 9 7 年,随着s e r v l e t 技术的出现,它的触 角也开始延伸到服务器端。s e r v l e t 解决了c g l 中的许多不足的地方,例如不可移植性 和效率低下,并为w e b 应用程序范例提供了基于j a v a 的解决方案。s e r v l e t 可在操作系 统间移植,并能在任何装有j a v a 虚拟机( j v m ) 的服务器上运行。因此,它们也得益于 j a v a 的“编写次,随处运行”机制。由于s e r v l e t 采用多线程操作,而不是单独处理每个 一3 一 基于s t r u t s 框架和h i b e r n a t e 技术的w e b 鹿用的设计与实现 请求,因此s e r v l e t 比c g i 具有更有效的执行模型。s e r v l e t 还能访问j a v a 的各种库,包 括j d b c a p i 。 引入s e r v l e t 后,s u n 发布了j a v a s e r v e rp a g e s ( j s p ) 技术,以此作为s e r v l e t 技术的 延伸。j s p 构建w c b 应用程序的思路与s e r v l e t 相反:通过在基于h t m l 的页面中内嵌 j a v a 代码,向服务器发送j s p 请求时,j a v a 服务器容器将检查j s p 是否已编译到某个 s e r v l e t 中。如果已经编译,则服务器将继续执行该s e r v l e t :如果尚未编译,服务器容器 将把j s p 代码转换为j a v a 源文件并编译该文件,这样后续的j s p 请求就将发现s e r v l e t 已经编译并可随时执行。 这样的好处是无需手动重新编译代码即可对j s ph t m l 进行更改。服务器容器对编 译过程进行管理,并将对j s p 中的h t m l 是否已更改进行识别,然后重新将j s p 编译 到s e r v l e t 中。j s p 解决了在s c r v l e t 中嵌如显示代码( 删l ) 的问题,该问题使得开发 过程很麻烦,因为h t m l 作者不得不费劲地使用j a v a 代码编辑h t m l ( 分工不明确) 。 采用j s p 以后,h t m l 开发人员可以直接使用j s p ,而无需使用j a v a 代码【5 ,7 】。 2 2j 2 e e 体系结构 通常编写w c b 应用程序之所以困难是因为许多复杂代码需要交互工作,以处置数 据交易和管理程序状态( 如多线程操作、资源共享,以及其他底层细节) 。j 2 e e 所提 出的基于构件和平台独立的编程环境简化了程序的编写。业务逻辑采用程序模块形式编 程,并且j 2 e e 服务器以容器的形式提供底层服务。由于编程人员无需自己开发这些底 层服务,可以更专注解决手头的业务问题。 j 2 e e ( j a v a2p l a t f o r m ,e n t e r p r i s ee d i t i o n ) 是s u n 公司定义的一个开发分布式企业 级应用的规范。它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次 分布式应用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和 组件,组件在分布式服务器的组件容器中运行( 如s e r v l e t 组件在s e r v l e t 容器上运行, e j b 组件在e j b 容器上运行) ,容器间通过相关的协议进行通讯,实现组件间的相互调 用。遵从这个规范的开发者将得到行业的广泛支持,使企业级应用的开发变得简单、快 速。 j 2 e e 规范定义了以下四个层次,典型的j 2 e e 四层结构如图2 1 所示: 大连理工大学硕士学位论文 图2 1j 2 e e 四层体系结构 f i g 2 1f o u rl a y e r ss y s t e ms t r u c t u r eo f j 2 e e 层 ( 1 ) 客户端层( c l i e n tt i e r ) 客户端层用来实现企业级应用系统的操作界面和显示层。另外,某些客户端程序也 可实现业务逻辑。可分为基于w e b 的和非基于w c b 的客户端两种情况。基于w e b 的情 况下主要作为企业w e b 服务器的测览器。非基于w e b 的客户层则是独立的应用程序, 可以完成瘦客户机无法完成的任务。 ( 2 ) w e b 层( w e bt i e r ) 为企业提供w 曲服务。包括企业信息发布等。w e b 层由w e b 组件组成。j 2 e ew e b 组件包括j s p 页面和s e r v l e t s 。w e b 层也可以包括些j a v a b e a n s 。w e b 层主要用来处理 客户请求,调用相应的逻辑块,并把结果以动态网页的形式返回到客户端。 ( 3 ) 业务层( b u s i n e s st i e r ) 业务层也叫e j b 层或应用层,它由e j b 服务器和e j b 组件组成。一般情况下许多开 发商把w c b 服务器和e j b 服务器产品结合在一起发布,称为应用服务器。e j b 层用来 实现企业级信息系统的业务逻辑。这是企业级应用的核心,由运行在业务层中的e j b 来 处理。一个b e a n 从客户端接收数据、处理,然后把数据送到企业信息系统层存储起来。 同样,一个b e a n 也可以从企业信息系统取出数据,发送到客户端程序。业务层中的e j b 要运行在容器中,容器解决了底层的问题,如事务处理、生命周期、状态管理、多线程 安全管理、资源池等。 基于s t r u t s 框架和h i b e r n a t e 技术的w e b 应用的设计与实现 ( 4 ) 企业信息系统层( e n t e r p r i s ei n f o r m a t i o ns y s t e mt i 哪 处理企业系统软件,包括企业基础系统、数据库系统及其他遗留的系统。j 2 e e 将 来的版本支持连接架构( c o n n e c t o ra r c h i t e c t u r e ) 。它是连接j 2 e e 平台和企业信息系统 层的标准a p l t 8 , 9 1 。 业务层和w c b 层共同组成了三层j 2 e e 应用的中间层,其他两层是客户端层和存储 层或企业信息系统层。因此很多时候也将其考虑为三层结构。这是因为它们分布在三个 不同的位置:客户端机器、j 2 e e 服务器机器和后端的传统机器。 为实现企业级分布式应用,j 2 e e 定义了丰富的技术标准,符合这些标准的开发工 具和a p i 为开发企业级应用提供支持。这些技术涵盖数据库访问、分布式通信、安全等。 为分布式应用提供支持的多方面【1 0 】。 ( 1 ) 组件技术 j 2 e e 的核心思想是基于组件,容器的应用。每个组件提供了方法、属性、事件的接 口。组件可以由多种语言开发。组件是可以重用的、共享的、分布的。 ( 2 ) s e r v l e t s 和j s p s e r v l e t s 用来生成动态页面或接收用户请求产生相应操作( 调用日b ) 。j s p 基于文本, 通过容器产生相应的s e r v l e t s ,使内容和显示分开。j 2 e e 中提供了s e r v l e ta p i ,用于创 建s e r v l e t s 。 ( 3 ) e j b 技术 e j b 规范提供了一种开发和部署服务器端组件的方法。每个e j b 是按功能逻辑划分 的,开发时不必关注系统底层细节问题,只关注具体的事务分析。e j b 开发完毕后,按 规范部署在e j b 容器,完成相应的事务功能。e j b 支持分布式计算。真正体现了企业级 的应用。 ( 4 ) 数据库访问 无论是传统的企业信息系统还是将来的企业信息系统,数据库都占有重要的地位。 开发分布式系统要求数据库访问具有良好的灵活性和扩展性。j d b c ( j a v a d a t a b a s e c o n n e c t i v i t y ) 是一个独立于特定的数据库管理系统的开发接1 2 1 。它提供一个通用的访问 s o l 数据库和存储结构的机制,支持基本s q l 功能的一个通用底层的应用程序编程接 口。它在不同的数据库界面上提供了一个统一的用户界面。提供了多种多样的数据库连 接方式。j 2 e e 中提供了j d b c a p i 使多种数据库操作简单、可行。 ( 5 ) 分布式通信技术 分布式通信技术是分布式企业系统的核心技术。j 2 e e 框架为w e b 应用和e j b 应用 提供多种通信模式。 6 大连理工大学硕士学位论文 为了使运行于某一机器上的对象调用另一台机器的对象,j 2 e e 实现了如下通信方 式: j a v ar m i ( r e m o t em e t h o di n v o k e ) :远程方法调用。j a v ar m i 实现j a v a 对象间的远 程通信。服务器用注册器把一个名字和远程对象绑在一起,客户机通过名字从服务器注 册器上查找远程对象,找到后下载远程对象的本地代理,调用远程对象的方法。 j a v a i d l ( j a v a i n t e r f a c e d e f t l a t i o n l a n g u a g e ) :接口定义语言。可以实现j a v a 对象的 符合c o r b a 规范的远程对象通信。 j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) :j a v a 命名和目录接口。j n d i 为分布式系 统访问远程对象提供了一个标准的命名接口。e i b 主接口对象、数据源、消息服务器等 都可以用j d n i 树的形式注册到名称服务器中,调用它们的对象通过符合j d n i 的程序 接口在j n d l 名称服务器中查找指定名称的远程对象。 j m s ( j a v am e s s a g es e r v i c e ) :j a v a 消息服务。为开发消息中间件应用程序定义了一 套规范。j a v a 客户端和j a v a 中间层访问消息系统只要实现j m s 定义的简单的接口,就 可以实现复杂的应用,而不必去关注低级的技术细节。 2 3m v o 设计模式和s t r u t s 框架 在基于j 2 e e 的多层软件项目开发中,为了缩短开发周期,提高开发效率,人们不 会一起从头做起,而是在积极地寻找能够复用的设计或代码。于是越来越多的开发者开 始开发和使用设计模式和框架。 什么是设计模式? 不同的观点会影响什么是设计模式的解释,建筑学家c h r i s t o p h e r a l e x a n d e r 给出一个广泛意义上的设计模式概念:“每一个模式描述了一个在我们周围不 断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次的使用该 方案而不必做重复劳动”【i ”。在软件设计方面,随着面向对象技术的出现和广泛应用, 一方面软件的可重用性在一定程度上已经有所解决,另一方面对软件可重用性的要求同 时也越来越高。设计面向对象软件比较困难,而设计可重用的面向对象软件就更困难。 有经验的设计者知道:不是解决任何问题都要从头做起,他们更愿意重用以前使用过的 解决方案。因此,可以将这些面向对象软件的设计经验称为设计模式。具体到设计面向 对象软件这一领域,可以这样认为:设计模式就是对被用来在特定场景下解决一般设计 问题的类和相互通信的对象的描述。每一个设计模式都又系统命名、解释和评价了的面 向对象系统中的一个重要的和重复出现的设计。 设计模式可以有助于更加简单方便地重用成功的设计和体系结构,将已证实的技术 表达成设计模式也会使薪系统开发者更加容易理解其设计思路;同时设计模式还可以有 基于s t r u t s 框架和l - h b e m a t e 技术的w e b 府用的设计与实现 助于选择有利于系统重用的选择,避免设计损害了系统重用性;最后,通过提供一个显 示类和对象作用关系以及它们之间潜在联系的说明规范,设计模式甚至能够提高已有系 统的文档管理和系统维护的有效性。总之,设计模式可以帮助设计者更快更好地完成系 统设计。 一般而言,一个模式有四个基本要素【1 2 l : n ) 模式名称 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模 式增加了人们的设计词汇。设计模式允许人们在较高的抽象层次上进行设计。模式名可 以帮助人们思考,便于人与人交流设计思想和设计结果。 ( 2 ) 问题 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描 述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或 对象结构。有时候,问题部分会包括使用模式必须要满足的一系列先决条件。 ( 3 ) 解决方案 描述了设计的组成部分,它们之间的相互关系及各自的职责和协作方式。因为模式 就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计 或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合( 类或对 象组合) 来解决这个问题。 ( 4 ) 效果 描述了模式应用的效果及使用模式应权衡的问题。尽管在描述设计决策时,并不总 提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。 软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面 向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性和可移植性的影 响,显式地列出这些效果对理解和评价这些模式很有帮助。 上面把设计模式处理到定的抽象程度,它不用于直接编码或类重用,也不是复杂 到可作为一个完整的应用或子系统的领域专用的设计,而是对一定的对象与类的关系进 行描述,进而可对进行一定程度的修改,使之可解决在一定条件下的通用设计问题。 不同的设计模式具有下面一些共性1 1 3 1 : ( 1 ) 设计模式都是从实践中获得的。设计模式是被“发现”的,而不是被“写作”出来的。 ( 2 ) 设计模式表达好的设计。设计模式并不仅是关于对象的设计,而且关于对象间 的通信,因此有时也称为“通信模式”。 ( 3 ) 提出设计模式的目的之一都是避免重复的劳动,提高软件的可重用性。 大连理1 = 大学硕士学位论文 ( 4 ) 孤立地使用某个设计模式还不能够充分发挥设计模式的优势,通常都是将多个 设计模式联合使用,一起用来解决更大的问题。 s u n 在引入j s p 技术后,提出了有关使用j s p 技术的开发蓝图,并定义了构建基于 j s p 的w c b 应用程序的两种模型,即模型1 和模型2 。 模型1 体系结构十分简单,如图2 2 所示。 浏览器 j s p s e r v l e t数据库,服务 图2 2 模型1 体系结构 f i g 2 2s y s t e ms t r u c t u r eo fm o d e l1 首先浏览器向j s p 或s e r v l e t 发出请求,接着j s p 或s e r v l e t 将会对请求进行各种处 理,包括处理请求、确认数据有效性、处理事务逻辑及生成响应。从概念上讲很简单, 但该体系结构不适合大型应用程序的开发,因为不可避免地要复制每个j s p 中的许多功 能。此外,模型1 体系结构还将应用程序的事务逻辑和显示逻辑不必要地联系在一起, 导致页面被嵌入大量的脚本语言或者j a v a 代码段,从而使得很难在应用程序中引入“视 图”或访问点。例如,要进行无线访问,除了h t m l 界面,还需要添加无线标记语言 ( w m l ) 界面。在这种情况下,使用模型1 将需要复制业务逻辑和各个显示代码实例, 而这是不必要的。 模型2 或现在通常所指的模型一视图一控制器( m v c ) ,通过明确的应用程序功能 分工解决了起初模型1 设计的许多内在问题。如图2 3 所示。 在m v c 体系结构中,s e r v l e t ( 又称控制器) 接收所有的应用程序请求。然后控制 器将请求进行处理,同时使用模型2 准备视图( 通常是j s p ) 所需的任何数据,并将此 数据转发给j s p 。接着j s p 使用由控制器准备的数据生成浏览器的响应。本体系结构中, 事务逻辑和显示逻辑彼此相互独立。事务代码和显示代码的相互独立使得可以向应用程 序中添加多个界面,例如w c b 、无线或g u i ( s w i n g ) 。此外这种相互独立也使得可以 很好地重用代码。 基于s t r u t s 框架和f h b e m a t e 技术的w e b 应用的设计与实现 ,、 一 。掣( j s p ) 圊 卜一i v 叫矗二;l 视图 = = = = j 数据库服务 图2 3 模型2 体系结构 f i g 2 3s y s t e ms t r u c t u r eo fm o d e l 2 m v c 设计模式为构建可扩展、可重用的代码打下了坚实的基础。其最吸引人之处 在于它迫使用户必须抽象自己的代码,把项目分解为表示、逻辑和控制三部分,各部分 间的关联较小。以m v c 设计模式构造软件,可以使软件结构灵活、重用性好、扩展性 好f 1 1 4 1 。 框架( f r a m e w o r k s ) 是一个可复用的、“半成品”的应用程序,通过对框架的定制可 以产生满足客户具体需求的应用程序【1 5 1 。而m v c 设计模式是一个非常复杂的系统,实 现起来非常麻烦,所以采用m v c 设计模式开发w e b 应用时,最好选择一个已经搭建完 毕的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 框架是一种基于j a v a 的技术,w c b 应用程序开发人员通过s t r u t s 框架即可充 分利用面向对象设计、代码重用以及“编写一次,到处运行”的优点。s t r u t s 提供了一种 创建w c b 应用程序的框架,对应用程序的显示、表示和数据的后端代码进行了抽象。 s t r u t s 是对m v c 设计模式的一种实现。s t r u t s 体系结构如图2 4 所示。 客户端浏览器向c o n t r o l l e r ( s e r v l e t ) 发送一个h t i t 请求;c o n t r o l l e r 根据 s t r u t s - c o n f i g x m l 文件定制转向,使用a c t i o n 来处理逻辑;m o d e l 组件与永久数据存储或 者远程系统进行实际的交互,并管理交互过程;基于m o d e l 组件的处理结果以及返回的 数据,再有c o n t r o l l e r 决定哪个v i e w 组件用于用户显示的渲染,数据则是准备给v i e w 对象渲染的;被选择的v i e w 组件渲染h t t f 响应并将之发送到用户1 1 6 - 2 1 1 。 大连理工大学硕十学位论文 图2 4s t r u t s 体系结构 f i g 2 4s y s t e ms t r u c t u r eo fs t r u t s 2 4h i b e r n a t e 技术 在实际项目中,j 2 e e 三层或四层体系结构,往往不能很准确的指导开发,因为业 务层和数据库交互的过程往往需要对数据库调用接口做进一步的封装。h i b e r n a t e 是一个 o r m 工具,它可以将数据库资源映射为一个或者多个p o j o ,即普通的j a v a 对象,将 面向数据库资源的各种业务操作以p o j o 的属性和方法的形式出现,使我们摆脱繁琐的 j d b c 代码,将精力更多地集中在业务方法的实现上。 在三层软件结构中,业务逻辑层不仅负责业务逻辑,而且直接访问数据库,提供对 业务数据的保存、更新、和查询操作。为了把数据访问细节和业务逻辑分开,可以把数 据访问作为单独的持久化层【捌。如图2 5 所示。 持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的a p i 。完善的持久 化层应该达到以下目标: ( 1 ) 代码可重用性高,能够完成所有的数据库访问操作。 ( 2 ) 如果需要的话,能够支持多种数据库平台。 ( 3 ) 具有相对对立性,当持久化层的实现发生变化,不会影响上层的实现。 基于s t r u t s 框架和h i b e r n a t e 技术的w e b 应用的设计与实现 回圈 亩_ 恒自 图2 5 从业务逻辑层分离出持久化层 f i g 2 5d u r a b l et i e rs e p a r a t e df r o mt h eb u s i n e s sl 0 9 i ct i e r 那么,到底如何来实现持久化层呢? 对于复杂的数据模型,直接通过j d b c 编程来 实现健壮的持久化层需要有专业的知识,对于企业应用的开发人员,花费大量时间从头 开发自己的持久化层不是很可行。幸运的是,目前在持久化层领域,已经出现了许多优 秀的o r m 软件。h i b e r n a t e 就是一种越来越受欢迎的开发源代码的o r m 软件。o r m 软 件具有中间件的特性。中间件是在应用程序和系统之间的连接管道。h i b e r n a t e 可以看成 是连接j a v a 应用和关系数据库的管道。中间件和普通的应用程序代码的区别在于,前者 具有很高的可重用性,对于各种应用领域都适用;后者和特定的业务功能相关,不同业 务领域的应用程序代码显然不一样。图2 6 对比了直接通过j d b ca p i 及通过h i b e r n a t e a p i 来访问数据库的两种方式。 对象一关系映射( o r m ,即o b j o c t - r e l a t i o nm a p

温馨提示

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

评论

0/150

提交评论