




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 近年来,随着网络技术的迅速发展和j 2 e e ( j a v a2p l a t f o 肿e n t e r p r i s ee d i t i o n ) 平台的 广泛应用,基于b s 的多层w e b 应用体系结构逐渐发展成熟起来,多层w e b 应用的开 发已成为主流。数据持久化层的创建成为一个优秀的w e b 应用应该具有的重要方面。 数据持久层是企业开发中很棘手的一个问题,一个良好的企业数据持久化解决方案 必须提供安全,迅速地客户事务反应。在j 2 e e 中对数据的持久化可以采用不同的技术, h i b e r n a t e 作为一种新的轻量级的o r m 框架,它可以替代e n t i t yb e a n 实现对数据的持久 化,而且结合d a o 模式,h i b e r n a t e 可以设计出相对独立的数据持久层,专注于数据持 久化逻辑的实现,实现了数据访问逻辑和数据资源的松耦合。h i b e r n a t e 还减小了项目开 发的复杂性,它符合j a v a 规范的关系数据库的持久化使得项目的可维护行和可扩展性也 得到了很大的提高。 本文在充分研究以往数据持久层的发展和现状的基础上,作了以下几方面的工作: ( 1 ) 总结和分析了j 2 e e 以及m v c 设计模式的体系结构和设计原理,并对s t r u t s 框 架的核心组件及工作流程进行了系统分析。 ( 2 ) 根据数据持久化技术及h i b e m a e t 的国内外研究现状的文献,对h i b e m a e t 技术 在数据持久层中的应用进行了较为深入的探讨。 ( 3 ) 从数据持久化的核心模式角度对系统的持久化策略进行了划分,并对实现持久 化的主流技术进行了深入剖析,通过各种持久化技术的对比得出h i b e r n a t e 是实现数据 持久化的较好选择。 ( 4 ) 以分层的体系架构理论为指导,基于h i b e m a t e 建立了数据持久与访问的d a p l ( d a t aa c c e s sa n dp e r s i s t e n c el a y e r ) 模型框架,该模型在数据持久层能够很好地完成数据 的c r u d ( c r e a t e 创建、r e a d 读取、u p d a t e 更新、d e l e t e 删除) 操作,在数据访问层的设 计上引入了多种设计模式,使模型更具灵活性。 ( 5 ) 在充分的理论分析的基础上,提出了基于d a p l 模型的w e b 系统设计方案,将 数据持久化模型应用到s t r u t s 框架设计中,设计开发一个灵活性强、易移植、易扩充、 易维护的系统设计框架。 ( 6 ) 最后以财务管理系统作为实现案例,验证了基于d a p l 模型的w e b 系统设计方 案的理论性和实用性。 关键词:s t r u t s :数据持久化;h i b e r n a t e ;设计模式; 摘要 a b s t r a c t i nr e c e n ty e a r s ,t h en e t w o r kt e c h n o l o g yh a sb e e nd e v e l o p e dq u i c k l ya n dt h ep l a t f o r mo f j 2 e e ( j a v a 2p l a t f o r me n t e r p r i s ee d i t i o n ) h a sb e e na d o p t e de x t e n s i v e l y a n dt h em u l t i l a y e r w e ba r c h i t e c t u r eb a s e do nb sp a t t e mm a t u r e sg r a d u a l l y t h em u l t i - l a y e rw e ba p p l i c a t i o n d e v e l o p m e n th a sb e c o m et h em a i n s t r e a m c r e a t i n gt h ep e r s i s t e n c ed a t al a y e rb e c o m e sa l l i m p o r t a n ta s p e c tf o rag o o dw e ba p p l i c a t i o n t h es o l u t i n go fd a t ap e r s i s t e n c el a y e ri sav e r yd i f f i c u l tp r o b l e mi nt h ed e v e l o p m e n to f e n t e r p r i s e sw e bs y s t e m ,a sag o o ds o l u t i o n ,w h i c hs h o u l dp r o v i d es e c u r e ,r a p i dr e s p o n s e s e r v i c e st oc u s t o m e r s i nt h ej 2 e e ,w ec a nu s eal o to fd i f f e r e n tt e c h n o l o g i e st os e r v et h e p e r s i s t e n c el a y e r h i b e r n a t ea san e wl i g h t w e i g h to r mf r a m ew o r k ;i tc a nb ea na l t e m a t i v et o t h ee n t i t yb e a nt oa c h i e v ed a t ap e r s i s t e n c e a n dw i t ht h ec o m b i n a t i o no fd a om o d e , h i b e r n a t ec a nd e s i g nar e l a t i v e l yi n d e p e n d e n td a t ap e r s i s t e n c e ,f o c u so nd a t ap e r s i s t e n c e l o g i ct or e a l i z ea n da c h i e v el o o s e l yc o u p l e db e t w e e nt h ed a t aa c c e s sl o g i ca n dd a t ar e s o u r c e s h i b e r n a t ea l s or e d u c e st h ec o m p l e x i t yo ft h ep r o j e c td e v e l o p m e n t ,i ti sc o n s i s t e n tw i t ht h e j a v as t a n d a r do fr e l a t i o n a ld a t a b a s en o r m sa n dm a k e st h em a i n t a i n a b i l i t ya n ds c a l a b i l i t yh a v e b e e ng r e a t l yi m p r o v e d b a s e do nt h ef u l ls t u d i e so ft h ed a t ap e r s i s t e n c el a y e r ,t h i sa r t i c l ew o r k so nt h ef o l l o w i n g a s p e c t s : ( 1 ) s u m m a r i z e da n de x p l a i n e dt h ea r c h i t e c t u r ea n dd e s i g np r i n c i p l e so fj 2 e ed e s i g n p a t t e r n sa n dm v cm o d e l a n dg a v ea f u l la n a l y s i so nc o r ec o m p o n e n t sa n dw o r k f l o w so ft h e s t r u t sf r a m e w o r k ( 2 ) a c c o r d i n gt ot h ed a t ap e r s i s t e n c et e c h n o l o g ya n dl a s t i n gh i b e r n a t er e s e a r c hl i t e r a t u r e , d i s c u s s e dt h ea p p l i c a t i o no ft h eh i b e r n a t eo nt h ed a t ap e r s i s t e n c ei n d e p t h ( 3 ) f r o mt h et h ec o r eo fd a t ap e r s i s t e n c e ,d i v i d e dt h el a t e s tp e r s i s t e n ts t r a t e g ya n dd oa n i n - d e p t ht e c h n i c a la n a l y s i st ot h em a i n s t r e a mo fd a t ap e r s i s tt e c h n o l o g y g a i nar e s u l tf r o m c o m p a r i s o nt h r o u g hav a r i e t yo fp e r s i s t e n c et e c h n i c a l st h a th i b e r n a t ei st h eb e s tc h o i s e ( 4 ) g u i d i n gb yt h el a y e r e da r c h i t e c t u r et h e o r y ,b a s e do nh i b e m a t e ,e s t a b l i s h e dan e w f r a m e w o r km o d e ld a p l ( d a t aa c c e s sa n dp e r s i s t e n c el a y e r ) ,w h i c hc a r ld oag o o d p e r f o r m a n c eo nt h ed a t ac r u d ( c r e a t e ,r e a d ,u p d a t e ,d e l e t e ) o p e r a t i o n s i ta l s oc a nu s e o t h e rd e s i g np a n e n so fd a t aa c c e s s ,m a d et h em o d e lm o r ef l e x i b l e ( 5 ) f r o mt h ef u l lt h e o r e t i c a la n a l y s i s ,e s t a b l i s h e dan e ww e bs y s t e md e s i g nm o d e lb a s e d o nt h ed a p l i tb r i n g st h ed a t ap e r s i s t e n c em o d e li n t os t r u t sf r a m e w o r k ,r e c e i v e saf l e x i b l e , e a s yt ot r a n s p l a n t ,e a s ye x p a n s i o n ,e a s yt om a i n t a i nw e bs y s t e md e s i g ns t r a t e g y ( 6 ) f i n a l l y ,g a v et h ef i n a n c i a lm a n a g e m e n ts y s t e ma sa ne x a m p l e ,t ov e r i f yt h et h e o r e t i c a l a n dp r a c t i c a la s p e c to ft h en e ws y s t e md e s i g n 大连交通人学t 学硕十学何论文 k e yw o r d s :w r i t ec r i t e r i o n ;t y p e s e tf o r m a t ;m a s t e r sd e g r e ep a p e r i v 大连交通大学学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢及参考 文献的地方外,论文中不包含他人或集体已经发表或撰写过的研究成 果,也不包含为获得太蓬塞通太堂或其他教育机构的学位或证书而 使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在 论文中作了明确的说明并表示谢意。 本人完全意识到本声明的法律效力,申请学位论文与资料若有不 实之处,由本人承担一切相关责任。 学位论文作者签名:玉【 诤秀 日期:3o 口g 年ll 月、一日 大连交通大学学位论文版权使用授权书 本学位论文作者完全了解太蓬塞通太堂有关保护知识产权及保 留、使用学位论文的规定,即:研究生在校攻读学位期间论文工作的 知识产权单位属太连塞通太堂,本人保证毕业离校后,发表或使用 论文工作成果时署名单位仍然为太董塞通太堂。学校有权保留并向 国家有关部门或机构送交论文的复印件及其电子文档,允许论文被查 阅和借阅。 本人授权太整塞通太堂可以将学位论文的全部或部分内容编入 中国科学技术信息研究所中国学位论文全文数据库等相关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论 文。 ( 保密的学位论文在解密后应遵守此规定) 学位论文作槲:玉l 碍香 日期:o 。9 年1 五月 2 - 日 学位论文作者毕业后去向: 工作单位: 通讯地址: 电子信箱: 导师签名: 取裤汉 日期:击口一驴年j 月t o 日 电话: 邮编: 绪论 绪论 一课题背景 当前,s u n 公司提出的j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 逐渐成为企业w e b 应用丌发 的标准,s e r v l e t j s p 技术也得到了广泛的应用。随着j s p 技术的成熟,越来越多的丌发 人员开始使用w e b 应用框架。j a k a r t a s t r u t s 是a p a c h ej a k a r t a 软件组织提供的一项丌放 源代码项目,它为j a v aw e b 应用提供了模型视图控制器( m v c ) 框架,尤其适用于丌发 大型可扩展的w e b 应用。 企业级应用程序中采用s t r u t s 架构时开发人员最关心的是如何实现复杂的业务逻 辑,而绝大多数业务对象都涉及到关系数据库。在采用j a v a 作为w e b 应用的开发语言 时,传统的方法是直接通过j d b ca p i 与数据库进行交互。但是这个工作量很大,而且 一旦业务逻辑稍微有一些变更,就要大量地更改这些j d b c 中的s q l 语句,因此不管 是丌发还是维护系统都很不方便。于是,人们想到了在业务逻辑层和数据库层之间增加 一个持久层,专门负责实现对象和关系数据库之间的映射,完成将对象作为永久信息存 储和访问,即对象的持久化工作。 作为s t r u t s 架构体系中单独的一层,完善的持久层应该达到以下目标: ( 1 ) 代码可重用性高,能够完成所有的数据库访问操作。 ( 2 ) 如果需要的话,能够支持多种数据库平台。 ( 3 ) 具有相对独立性,当持久层的实现发生变化,不会影响上层的实现。 目前在持久层领域,己经出现了许多优秀的对象一关系映射框架,有的是商业性的, 有的是开放源代码的。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 , 开发人员可以按照j a v a 的基础语义进行持久层开发。 二课题研究的目的及意义 在当今这个网络化的社会罩,几乎所有的企业应用都需要持久化数据,没有数据持 久化需求的企业应用在现在的市场环境下几乎是不可能出现的。同时对于企业应用来 说,整体架构也己由原来的单层发展到今天的多层。其中,f l 了- - 层( 表述层、业务逻辑 层和数据库层) 向四层( 表述层、业务逻辑层、持久化层和数据库层) 的转变也是持久化技 术真j 下意义上的实现,通过多层设计,可以提高各模块的相对独立性,同时可以提高代 码的可维护性和可重用性等。具体的优点如下【2 1 : 大连交通入学 :学硕十学位论文 ( 1 ) 伸缩性 伸缩性指应用程序是否能支持更多的用户。例如,在双层g u i 应用应用程序中,通 常对每个用户都提供一个数据连接。如果有1 0 0 0 0 个用户,则需要建立1 0 0 0 0 个数据库 连接。而在多层应用结构中,可采用数据库连接池机制,用少量数据库连接支持多个用 户。应用的层越少,可以增加资源( 如c p u 和内存) 的地方就越少。层数越多,可以将每 层分布在不同的机器上,例如,用一组服务器作为w e b 服务器,一组服务器处理业务 逻辑,还有一组服务器作为数据库服务器。 f 2 ) 可维护性 可维护性指的是当发生需求变化,只需修改软件的某一部分,不会影响其它部分的 代码。层数越多,可维护性也会不断提高,因为修改软件的某一层的实现,不会影响其 他层。 ( 3 ) 可重用性 可重用性指的是程序的代码没有冗余,同一个程序能满足多种需求,能够完成所有 的数据库访问操作。例如,业务逻辑层可以被多种表述层共享,既支持基于g u i 界面的 表述层,也支持基于w e b 页面的表述层。那么,对于持久化层而言,它的代码不仅可 以用在本应用中,而且还可以用在其它的类似应用中,代码几乎可以原封不动。这也是 采用分层和持久化技术所带来的好处。 ( 4 ) 可管理性 可管理性指的是管理系统的难易程度。将应用程序分为多层后,可将工作分解给不 同的开发小组,从而便于管理。应用越复杂,规模越大,需要的层就越多。例如,将原 来的三层中的业务逻辑层分为四层结构中的业务逻辑层和持久化层后,对于不同的丌发 小组来说,他们可以同时编写自己的业务逻辑代码和数据访问代码,这不仅可以使程序 员降低了编程的复杂度,同时也可将程序中的业务逻辑代码和数据访问细节代码区别开 来,从而降低程序中模块间的耦合性。 ( 5 ) 可移植性 通过设置持久化层能够完成不同数据库平台之间的移植,即跨平台性。从软件的开 发角度来说,通过采用应用程序的分层和持久化技术,不仅能够满足自身目自i f 丌发的需 求,而且还能够作为日后开发的基础。当为不同的高等院校丌发财务网上管理时,总会 有很多的模块非常类似,这样我们就没有必要再去做那些无用功,而去把时间花在那些 类似的模块设计上。从而为我们的丌发节约时间降低成本。 2 绪论 三本文的主要研究工作 本文研究了当前流行的数据持久化技术和h i b e r n a t e 技术,对d a p l 持久化模型的 设计进行了较深入的研究。 主要研究工作如下: ( 1 ) 根据数据持久化技术及h i b e m a e t 的国内外研究现状的文献,对h i b e m a e t 技术 和d a p l 模型在数据持久层中的应用进行了较为深入的探讨。 ( 2 ) 利用以上的理论基础提出了d a p l 模型和h i b e r n a t e 的j 2 e e 应用的解决方案, 并将此解决方案应用到财务报销管理系统进行实践。 ( 3 ) 对实践过程中的关键技术进行分析、研究,并最终提出解决方案。 四本文的主要内容及组织结构 ( 1 ) 本文的主要研究内容 本文的重点在于对数据持久层的研究和实现,并结合数据持久化框架h i b e m a t e 和d a p l 模型,主要研究的内容为: 首先,介绍j 2 e e 技术和m v c 设计模式,重点讨论了实现了m v c 模式的w e b 丌 发框架s t r u t s 的基本理论、实现机制,核心组件,工作流程及应用开发的基本流程。其 次,简要介绍了数据持久化框架h i b e m a t e 及其起源,详细阐述了h i b e r n a t e 的体系结构 和核心接口,简要介绍了h i b e r n a t e 的o r m 及如何操作持久化数据。最后,对基于 h i b e r n a t e 的d a p l 模型进行深入研究和探讨的基础上,对持久化层的设计及应用进行 进一步的研究。 ( 2 ) 本文的组织结构 绪论:课题的研究背景,目的及意义作了简要的阐述,概述了本设计预期的研究成 果和创新点,说明了课题研究的主要内容和组织结构: 第一章:介绍了j 2 e ew e b 应用的概念,该技术的发展和现在技术的研究状况。重 点讨论了实现m v c 模式的w e b 开发框架s t r u t s 的基本理论、实现机制、核心组件、工 作流程及应用开发流程,介绍了j 2 e 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 的o rm a p p i n g 及o r m 的优势; 第三章:首先对几种持久化方案进行了比较,再根据第一章和第二章的原理、概念 提出了基于h i b e r n a t e 的d a p l 模型设计,并详细叙述了d a p l 框架模型的设计,最后 人连交通人学工学硕十学位论文 对开发的w e b 系统做一个简要的设计,从系统架构的角度分析该解决方案的设计思想 和理念,为最后部分的实践作了充分的准备工作。 4 第一章j 2 e e 技术和m v c 设计模式及s t r u t s 柜架 第一章j 2 e e 技术和m v c 设计模式及s t r u t s 框架 本文主要是研究s t r u t s 扩展框架的研究与应用,而s t r u t s 是一个基于j 2 e e 平台、实 现了m v c 模式的w e b 开发框架,所以有必要先介绍一下j 2 e e 、m v c 设计模式和s t r u t s 的相关知识。本章从j 2 e e 技术和m v c 设计模式出发,着重讨论了基于m v c 设计模式 的s t r u t s 的基本原理、实现机制、核心组件及其开发应用系统的基本流程。 1 1j 2 e e 技术 1 1 1j 2 e e 概述 j 2 e e 是一种利用j a v a2 平台来简化企业解决方案的丌发、部署和管理相关的复杂 问题的体系结构。j 2 e e 技术的基础就是核心j a v a 平台或j a v a2 平台的标准版,j 2 e e 不 仅巩固了标准版中的许多优点,例如“编写一次、随处运行的特性、方便存取数据库 的j d b ca p i 、c o r b a 技术以及能够在i n t e m e t 应用中保护数据的安全模式等等,同时 还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、j a v a s e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支持【引。 j 2 e e 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高 可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,j 2 e e 降低了开发多层 应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持e m e r p r i s e j a v a b e a n s ,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高 了性能。 1 1 2j 2 e e 体系结构 j 2 e e 使用多层分布式应用程序模型,应用逻辑按功能划分为组件。各个组件应该 被安装在什么地方,取决于该组件属于多层j 2 e e 应用的哪一层。实际上,设计j 2 e e 的 初衷是为了解决传统二层模式( c l i e n t s e r v e r ) 弊端。在传统模式中,客户端因为担当 了过多的角色而显得笨重,此模式在第一次部署的时候比较容易,但难于升级或改进, 可伸展性也不理想,而且经常基于某种专有的数据库协议。它使得重用业务逻辑和界面 逻辑非常困难,很难满足系统的技术要求。一个多层次应用能够为不同的服务提供一个 独立的层。现在的j 2 e e 企业级应用模型划分为多个层,这些层分别是客户层、w e b 层、 业务层、企业信息系统层( e i s ) h j 图1 1 所示: 火连交通人学r 学硕十学伊论文 j 2 e e 应用lj 2 e e h j l 用2 图1 1j 2 e e 体系结构 f i g1 1j 2 e ea r c h i t e c t u r e 客户层 _ _ _ _ _ _ _ _ _ _ 。 业务层 w e b j 县 e l s 层 _ j 客户端机器 j 2 e ej i 务器机器 ( 1 ) 客户层( c l i e n t t i e r ) j 2 e e 用可以是基于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 页面。在一个基于传统方式的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 b t i e r ) j 2 e ew e b 层组件可以是j s p 页面或s e r v l e t s 。按照j 2 e e 规范,静态的h t m l 页面 和a p p l e t s 不算是w e b 层组件。 正如图1 2 所示的客户层那样,w e b 层可能包含某些j a v a b e a n 对象来处理用户输入, 并把输入发送给运行在业务层上的e n t e r p r i s eb e a n 来进行处理。 ( 3 ) 业务层( e j b b u s i n e s s t i e r ) 作为满足某个特定业务领域( l l j t n 银行、零售或金融业) 需要的业务逻辑代码由运行 在业务层的e j b 来执行。一个e j b 从客户程序处接收数据,( 若需要) 对数据进行处理, 再将数据发送到企业信息系统层存储。一个e j b 还从存储中检索数据,并将数据送回客 户程序。运行在业务层的e j b 依赖于容器提供诸如事务、生命期、状态管理、多线程及 6 第一章j 2 e e 技术和m v c 设计模式及s t r u t s 框架 资源缓冲池等十分复杂的系统级功能。业务层也称e j b 层。业务层和w e b 层一起构成 了j 2 e e 应用的中间层。 ( 4 ) 企业信息系统层( e i s t i e r ) 企业信息系统层运行企业信息系统软件,这层包括企业基础设施系统,例如企业资 源计i c j ( e r p ) 、大型机事务处理( m a i n f r 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 e yi n f o r m a t i o ns y s t e m ) 。j 2 e e 应用组件因为某种原因( 如访问数据 库) 可能需要访问企业信息系统。 w e b 层 图1 2j 2 e e 模型结构 f i g1 2j 2 e em o d e la r c h i t e c t u r e 1 1 3 常用j 2 e ew e b 开发技术介绍 ( 1 ) s e r v l e t 技术 s e r v l e t s 是j a v a2 0 中新增的一个全新功能,s e r v l e t s 是一种采用j a v a 技术来实现 c g i 功能的一种技术。s e r v l e t 和c g i 一样都是运行在w e b 服务器上,用来生成w e b 页 面。s e r v l e t 在一个典型的w e b 应用中担任的重要角色就是s e r v l e t 非常适合做w e b 页面 之间的消息转发器。因为s e r v l e t 是一个被w e b 容器动态加载的组件模块,它并不十分 适合做用户的界面表示,而当w e b 用户发出请求的时候s e r v l e t 组件可以通过s e v r l e t 容 器来捕获这个请求消息,这样它可以调用模型组件来得出这个消息。 ( 2 ) j s p 技术 j s p ( j a v as e r v e rp a g e s ) 是由s u nm i c r o s y s t e m s 公司倡导、许多公司参与一起建立的 一种动态网页技术标准,其网址为h t t p :w w w j a v a s o f t c o r n p r o d u c t s j s p 。在传统的网页 h t m l 文件( 宰h t m ,h t m l ) 中加入j a v a 程序片段( s c r i p t l e t ) 和j s p 标记( t a g ) ,就构成了j s p 网页( 水j s p ) 。w b e 服务器在遇到访问j s p 网页的请求时,首先执行其中的程序片段,然 7 大连交通大学i :学硕十学何论文 后将执行结果以h t m l 格式返回给客户。程序片段可以操作数据库、重新定向网页以 及发送e m a i l 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执 行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无 p l u g i n ,无a c t i v e x ,无j a v a a p p l e t ,甚至无f r a m e 。 作为j a v a 平台的一部分,j s p 拥有j a v a 编程语言“一次编写,各处运行”的特点。 随着越来越多的供应商将j p s 支持添加到他们的产品中,您可以使用自己所选择的服务 器和工具,更改工具或服务器并不影响当6 仃的应用。 ( 3 ) e j b 技术 e n t e r p r i s ej a v ab e a n 简称e j b 是一套基于标准的分布式对象组件技术。它是c o r b a 和r m i 的服务器端j a v a 组件。e b j 技术和j v a b a e n 技术一样在企业开发中处理业务逻 辑。他们的区别在于e b j 组件是分布式的必须运行e b j 容器中。而j a v a b e a n 组件是运 行在调用方内存的组件。e j b 定义了基本用来处理业务流程逻辑的会话b e n a 和用来维 护业务持久状态的实体b e n a 。以及处理基于消息驱动的消息b a e n 。e j b 组件所运行的 e b j 容器,为e j b 组件维护了安全性,事务性,持久性,并行性,等多种服务。并提供 了开发,部署,运行等环境的支持。 e j b 组件分为两类:s e s s o nb e a n 和e n t i t yb e a n s 。两种类型的e j b 组件都可以存取 数据库。选择哪一类e j b 组件来存取数据库依赖于具体的应用系统。 ( 4 ) m x l 标记语言 可扩展标记语言( e x t e n s i b l em a r k u pl a n g u a g e ,x m l ) 提供了一种标记内容的方式, 可以添加关于数据用途的信息。信息使用x m l 存储之后,称为解析器的应用程序就能 够可靠地提取相关信息,并根据不同的需要处理。 x m l 可用于各种不同的应用程序,但其实质是:x m l 是一种表示数据的方式。有 时候数据是为数据库准备的,有些时候则是供人阅读的。与这两方面应用相关的技术, 比如数据验证和x m l 转换也已经随着x m l 自身一起发展起来。 ( 5 ) j n d i ( j a v an a m i n gd i r e c t o r yi n t e r f a c e ) j n d i 是一组a p i ,他通过j a v a 语言为应用程序提供命名和目录功能。它被定义成 独立于任何特定的目录服务实现。因此,各种不同的目录服务可以通过通用的方法被访 问。 ( 6 ) j d b c ( j a v ad a t a b a s ec o n n e c t iv it y ) a p i j d b ca p i 用于连接关系型数据库系统,包括两部分:应用级接口被应用组件用于访 问一个数据库;服务提供者接口用于添加j d b c 驱动程序到一个j 2 e e 平台。 本文用到的j 2 e e 技术主要有: 8 第一章j 2 e e 技术和m v c 设计模式及s t r u t s 框架 j a v as e r v l e t s 、j s p ( j a v as e r v e rp a g e s ) 、j n d i ( j a v an a m in gd i r e c t o r yi n t e r f a c e ) 、 j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) a p i 和x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 。 1 2m v c 设计模式 如今的应用程序j 下在向以w e b 界面为主支持多种用户界面类型扩展的方向发展, 而我们传统的w e b 设计中界面表示、流程控制和业务逻辑代码相互混杂导致可维护性、 可扩展性和可重用性下降,如何将其三者进行分离,提高系统的可维护性、可扩展性和 可重用性,同时可以使得设计出来的多层w e b 系统可以方便的支持多种用户界面类型 的扩展就成了解决问题的关键,m v c 模式的出现恰恰解决了这种问题。 1 2 1m v c 设计模式的结构 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 层实现系统中 的业务逻辑,通常可以用j a v a b e a n 或e j b 来实现。v i e w 层用于与用户的交互,通常用 j s p 来实现。c o n t r o l l e r 层是m o d e l 与v i e w 之问沟通的桥梁,它可以分派用户的请求并 选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执 行的操作1 5 】。 ( 1 ) 视图 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的 输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不 能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。 对于基于请求响应方式的w e b 应用,模型位于w e b 服务器端,视图位于用户浏览器端, 目前无法做到模型向视图主动发出数据更新事件,使用户界面能自动刷新。 ( 2 ) 模型 模型是应用程序的主体部分。模型表示业务数据和业务逻辑,一个模型能为多个视 图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。 ( 3 ) 控制器 控制器接收用户的输入并调用模型和视图去完成用户的请求。当w e b 用户单击w e b 页面中的提交按钮来发送h t m l 表单时,控制器接收请求并调用相应的模型组件去处 理请求,然后调用相应的视图来显示模型返回的数据。 ( 4 ) m v c 处理过程 首先控制器接收用户的请求,并决定应该调用哪个模型来处理;然后模型根据用户 请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型 返回的数据,并通过视图呈现给用户。 9 人连交通人学t 学硕十学何论文 ( 5 ) m v c 的适用范围 m v c 的内部原理比较复杂,所以要花费一些时间去理解它。将m v c 应用到软件 项目中,会带来额外的工作量,增加应用的复杂性,所以m v c 不适用于小型应用系统。 但对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,m v c 将会使软件 在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建m v c 框架时会花费 一定的工作量,但从长远的角度来看,它会大大提高软件的开发效率。 m v c 模式中的三要素:模型视图控制器之间的关系以及它们之问的协作,如图 l 一3 所示。 方法调用 事件 图1 3m v c 设计模型 f i g1 - 3m v c p a t t e r n 1 ,2 2m v c 设计模式在w e b 中的应用 在早期的w e b 应用开发中,程序代码和h t m l 混在一起,因而很难分离出单独的 业务模型。这使得维护应用程序非常困难,很难满足用户的变化性需求。在这种丌发模 式下,j s p 文件既要负责业务逻辑,又要控制网页流程以及页面显示。这会给应用程序 的开发带来一系列的问题,主要表现在以下几个方面1 6 j 。 ( 1 ) 软件设计与维护困难:h t m l 代码和j a v a 代码混合在一起,j s p 文件的编写者 既要负责网页的设计,又要负责业务逻辑的实现。但实际情况是既熟悉网页设计,又熟 悉j a v a 开发的人不多,这就造成了软件开发的分工不明确,不利于软件的设计和维护。 ( 2 ) 调试困难:由于h t m l 标记、j a v a 代码和j a v as c r i p t 代码都集中在一个文件, 使应用程序的调试变得非常困难。 1 0 第一章j 2 e e 技术和m v c 设计模式及s t r u t s 框架 为了解决以上的问题,s u n 公司先后推出了两种技术规范,这两种规范分别是 j s p m o d e l l 和j s p m o d e l 2 。这两种规范都使得页面的显示与应用的业务逻辑分开,在一 定程度上解决了软件设计,维护以及调试困难的问题【7 j 。 在j s p m o d e l l 体系中,用户通过浏览器向j s p 发送请求,j s p 负责业务流程控制和 提供表示层数据,同时充当视图和控制器。j a v a _ b e a n 负责实现业务逻辑。在m o d e l l 中, 未能实现视图与控制器之间的独立和分离,因此这种模式不适合丌发复杂的大型应用程 序。不加选择地随意运用m o d e l l ,会导致j s p 页内嵌入大量的j a v a 代码。这对j a v a 程 序员来说或许不算什么大问题,但对网页设计人员来说要维护这些j a v a 代码,确是一个 问题。从根本上讲,会导致角色定义不清或者职责分配不明,给项目管理带来很多麻烦。 j s p m o d e l 2 体系结构引入了s e r v l e t ,用它来充当控制器的角色,负责处理用户请求, 创建j s p 需要使用的j a v a b e a n 对象,根据用户请求选择合适的j s p 页返回给用户。在 m o d e l 2 体系中,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 中提取动态内容插入到静态模板。 因此m o d e l 2 体系结构清晰地分离了表达与内容,明确了角色定义以及开发者与网页设 计者的分工。事实上,项目越复杂,使用m o d e l 2 设计模式的好处就越大。 1 2 3m v c 设计模式的优点 大部分w e b 应用程序都是用像a s p ,p h p ,或者c f m l 这样的过程化语言来创建 的。它们将像数据库查询语句这样的数据层代码和像h t m l 这样的表示层代码混在一 起。经验比较丰富的开发者会将数据从表示层分离开来,但这通常不是很容易做到的, 它需要精心的计划和不断的尝试。m v c 从根本上强制性地将它们分开。尽管构造m v c 应用程序需要一些额外的工作,但是它给我们带来的好处是无庸质疑的i 引。 首先,最重要的一点是多个视图能共享一个模型,例如需要多种方式来访问你的应 用程序。对此,其中一个解决之道是使用m v c ,无论你的用户想要f l a s h 界面或是w a p 界面;用一个模型就能处理它们。由于已经将数据和业务规则从表示层分开,所以可以 最大化地重用代码。由于模型返回的数据没有进行格式化,所以同样的构件能被不同界 面使用。例如,很多数据可能用h t m l 来表示,但是它们也有可能要用f l a s h 或者w a p 来表示。模型也有状态管理和数据持久性处理的功能,例如,基于会话的购物车和电子 商务过程也能被f l a s h 网站或者无线联网的应用程序所重用。 因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序 的数据层和业务规则。如果你想把你的数据库从m y s q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京市通州区漷县镇觅子店社区卫生服务中心招聘非在编护理人员2人模拟试卷及1套参考答案详解
- 2025广东佛山市南海区狮山镇横岗小学招聘1人考前自测高频考点模拟试题及参考答案详解1套
- 2025深圳商品房买卖合同
- 2025技术开发委托合同标准范本格式
- 2025杭州市社区工作者合同范本
- 2025年西电集团医院招聘(57人)模拟试卷(含答案详解)
- 2025年甘肃省嘉峪关市胜利路小学招聘公益性岗位人员模拟试卷及1套参考答案详解
- 2025广西物流职业技术学院公开招聘副高及以上职称人员37人模拟试卷及完整答案详解一套
- 2025年度合同制员工的合同范本
- 2025年淮北濉溪县现代农业投资发展有限责任公司招聘5人模拟试卷及1套参考答案详解
- 湖南省2025年普通高等学校对口招生考试种植类专业综合知识试题
- 网约车考试全国公共科目考题及答案
- 银行支行安全防范教育培训制度
- JG/T 368-2012钢筋桁架楼承板
- 预包装中药管理制度
- 康复辅助技术咨询师理论考试复习题库(含答案)
- 肠痈护理常规
- DB32-T 5119-2025 锂离子电池工厂生产安全技术规范
- 利用沼液养殖微藻研究进展
- 2024从“小众运动”到“全民热潮”解码网球人群与市场机遇
- 2025年五四制部编版道德与法治五年级上册教学计划(含进度表)
评论
0/150
提交评论