(计算机应用技术专业论文)基于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页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)基于struts和hibernate的web应用的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 在w e b 系统设计中,随着业务逻辑的越来越复杂,如何提高w e b 系统的执 行效率、可复用性、可扩展性和可维护性,降低构建和维护的成本,一直是业 界普遍关注的焦点。软件架构的建立是复杂而又持续改进的过程,软件开发者 尽量重用以前的架构,s t r u t s 和h i b e r n a t e 就是其中的两个优秀开发框架。s t r u t s 是一个基于j 2 e e 平台实现了m v c 设计模式的典型框架,它提供了自己的控制 器组件,并整合了j 2 e e 相关技术用于实现m v c 设计模式中的模型组件和视图 组件模型。s t r u t s 框架有效地分离了数据的控制和数据的表现,克服了传统w e b 应用开发方式所固有的弊端,适应越来越复杂的多层w e b 应用系统的设计需求, 为开发和配置企业应用提供了健壮、稳定的服务。h i b e r n a t e 是另一种新的 o r m ( o b j e c t r e l a t i o n a lm a p p i n g ) 开发框架,它不仅提供了从j a v a 类到数据库的 映射,也提供了数据查询和恢复等机制。 本论文正是依据s t r u t s 和h i b e r n a t e 这两大框架的基本原理,开发了一个购 物网站系统。全文共分为六个章节,论文的主要工作如下: 1 首先简要介绍了论文研究的背景、研究的内容和研究的意义。 2 接着详细论述了s t r u t s 和h i b e r n a t e 的基本原理和它们的技术优势。通过 将这两个架构整合起来,可以得到一个开发灵活、低耦合且易于维护的系统。 3 然后以购物网站系统为实例阐述了该系统的需求分析,描述了系统的角 色及权限控制,介绍了系统的总体框架及业务模块划分情况,分析了各个业务 模块的相应业务功能和业务流程。 4 紧接着依据s t r u t s 和h i b e r n a t e 这两大框架的基本原理,借助对系统的需 求分析,实现了购物网站系统,并解决了本系统中存在的一些问题。 5 在第5 章根据s t r u t s 和h i b e r n a t e 的配置文件对系统进行了详细部署并给 出了本系统的运行过程。 6 最后对全文进行了总结,指出了系统的不足以及今后需要研究的方向。 本文研究结果证明,基于s t r u t s 和h i b e r n a t e 的j 2 e ew e b 应用开发具有很好 的可行性。在开发过程中,s t r u t s 和h i b e r n a t e 这两大框架的基本原理为本系统 的实现提供了重要的理论基础,也为实际企业开发奠定了坚实的基石。 关键词:s t r u t s ,j 2 e e ,购物系统,o r ,h i b e r n a t e a b s t r a c t i nt h ew e bs y s t e md e s i g n ,蕊t h eb u s i n e s sb e c o m e sm o r ea n dm o r ec o m p l e x , p e o p l ea r ea l w a y sf o c u s i n go nh o wt oe n h a n c et h es y s t e m se f f i c i e n c y , r e u s a b i l i t y e x t e n d i b i l i t ya n dm a i n t a i n a b i l i t ya n dh o wt or e d u c et h ec o s to fc o n s t r u c t i o na n d m a i n t e n a n c e t h es o f t w a r ec o n s t r u c t i o n se s t a b l i s h m e n ti st h ep r o c e s sw h i c hi s c o m p l e xa n di m p r o v e sc o n t i n u a l l y t h ed e v e l o p e r st r yt h e i rb e s tt or e u s et h ef o r m e r f r a m e w o r k ,s t r u t sa n dh i b e r n a t ei sj u s tt w oo u t s t a n d i n gd e v e l o p m e n tf r a m e w o r k si n a l lf r a m e w o r k s a p a c h es t r u t si sac l a s s i c a lw e bf r a m e w o r k ,w h i c hi sb a s e do nj 2 e e p l a t f o r ma n di m p l e m e n t st h em v cd e s i g np a t t e r n i t h a sp r o v i d e di t sc o n t r o l l e r m o d u l ea n dt h ec o n f o r m i t yj 2 e ec o r r e l a t i o nt e c h n i q u eh a sb e e nu s e di nm o d e l m o d u l ea n dt h ev i e wm o d u l em o d e lo fr e a l i z i n gt h em v cd e s i g np a t t e r n t h es t r u t s f r a m e w o r kh a ss e p a r a t e dt h ed a t ac o n t r o la n dt h ed a t ap e r f o r m a n c ee f f e c t i v e l y , h a s o v e r c o m et h ei n h e r e n tm a l p r a c t i c eo ft r a d i t i o n a lw e ba p p l i c a t i o nd e v e l o p m e n tw a y , h a sa d a p t e dm o r ea n dm o r ec o m p l e xm u l t i - l a y e rw e ba p p l i c a t i o ns y s t e m sd e s i g n d e m a n d ,a n dh a sp r o v i d e dv i g o r o u s l y , h e a l t h i l ya n dt h es t a b l es e r v i c ef o rd e v e l o p i n g a n dd i s p o s i n gt h ee n t e r p r i s ea p p l i c a t i o n h i b e r n a t ei sa l s oo n ek i n do fn e wo r m ( 0 b j e c tr e l a t i o n a lm a p p i n g ) d e v e l o p m e n tf r a m e w o r k ,i th a sn o to n l yp r o v i d e dt h e m a p p i n gf r o mt h ej a v ak i n dt ot h ed a t a b a s e ,a l s oh a sp r o v i d e dt h ed a t ai n q u i r ya n d r e s t o r em e c h a n i s m sa n ds oo n t h ep a p e rh a sd e v e l o p e das h o p p i n gw e b s i t es y s t e m ,w h i c hi sp r e c i s e l yb a s e do n t h eb a s i cp r i n c i p l eo fs t r u t sa n dh i b e r n a t e t w of r a m e s t h ef u l lt e x ti sa l t o g e t h e r d i v i d e di n t os i xc h a p t e r s ,t h ep a p e r p r i m et a s ki sa sf o l l o w s : 1f i r s t l y b r i e f l yi n t r o d u c e dt h ep a p e r r e s e a r c hb a c k g r o u n d ,t h er e s e a r c hc o n t e n t a n dt h er e s e a r c hs i g n i f i c a n c e 2t h e ne l a b o r a t e ds t r u t sa n dh i b e r n a t e sb a s i cp r i n c i p l ea n dt h e i rt e c h n i c a l s u p e r i o r i t yi nd e t a i l t h r o u g hg e t i n gt h et w oc o n s t r u c t i o n sc o n f o r m i t y , w em a yo b t a i n as y s t e mw h i c hi sd e v e l o p m e n tn i m b l y , l o wc o u p l i n ga n de a s yt om a i n t a i n 3t h e nt a k i n gt h es h o p p i n gw e b s i t es y s t e ma st h ee x a m p l e ,e l a b o r a t e dt h i s n s y s t e m sd e m a n da n a l y s i s ,d e s c r i b e ds y s t e m sr o l ea n dj u r i s d i c t i o nc o n t r o l ,i n t r o d u c e d s y s t e m so v e r a l lf r a m ea n dt h es e r v i c em o d u l e sd i v i s i o ns i t u a t i o n ,a n a l y z e de a c h s e r v i c em o d u l e sc o r r e s p o n d i n gs e r v i c ef u n c t i o na n ds e r v i c ef l o w 4c l o s e l yr e a l i z e dt h es h o p p i n gw e b s i t es y s t e ma n ds o l v e ds o m ep r o b l e m sw h i c h e x i s ti nt h i ss y s t e m ,w h i c hi sr e s t i n go nt h e s et w ob i gf r a m e b a s i cp r i n c i p l eo fs t r u t s a n dh i b e r n a t ea n dt h ea i dt os y s t e m sd e m a n da n a l y s i s 5i nt h e5 t hc h a p t e ri th a sc a r r i e do nt h ed e p l o y m e n tt ot h es y s t e mi nd e t a i ,la n d h a sg i v e nt h i ss y s t e m sm o v e m e n tp r o c e s sa c c o r d i n gt ot h ec o n f i g u r a t i o nf i l e so f s t r u t sa n dh i b e r n a t e 6f i n a l l yh a sc a r r i e do nt h es u m m a r yt ot h ef u l lt e x t ,h a sp o i n t e do u ts y s t e m s i n s u f f i c i e n c ya sw e l la st h ef u t u r es t u d yd i r e c t i o n t h ea r t i c l e f i n d i n g sp r o v e dt h a tt h ej 2 e ew e b sa p p l i c a t i o na n dd e v e l o p m e n t t h a ta r eb a s e do ns t r u t sa n dh i b e r n a t eh a st h ev e r yg o o df e a s i b i l i t y i nt h ep r o c e s so f d e v e l o p m e n t ,t h e s et w ob i gf r a m e s b a s i cp r i n c i p l eo fs t r u t sa n dh i b e r n a t eh a s p r o v i d e dt h ei m p o r t a n tt h e o r e t i c a lf o u n d a t i o nf o rt h i ss y s t e m sr e a l i z a t i o n ,a l s oh a s e s t a b l i s h e dt h es o l i dc o r n e r s t o n ef o r t h ea c t u a le n t e r p r i s ed e v e l o p e m e n t k e y w o r d s :s t r u t s ,j 2 e e ,s h o p p i n gs y s t e m ,o r ,h i b e r n a t e i i i 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 侧u 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩e q 或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 武汉理工人学硕士学位论文 1 1 选题背景 第1 章绪论 当前,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 ) 框架t 4 2 1 ,尤其适用于开发大型可扩展的w 曲应用。 在采用s t r u t s 架构的企业级应用程序中,开发人员最关心的是如何实现复杂 的业务逻辑,而绝大多数业务对象都涉及到关系数据库。在采用j a v a 作为w e b 应用的开发语言时,传统的方法是直接通过j d b c a p i 与数据库进行交互,但是 这个工作量很大,而且一旦业务逻辑稍微有一些变化,就要大量地更改这些 j d b c 中的s q l 语句,因此不管是开发还是维护系统都很不方便。于是,人们 想到了在业务逻辑层和数据库层之间增加一个持久层,专门负责实现对象和关 系数据库之间的映射,将对象作为永久信息来存储和访问,即对象的持久化工 作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 ,开发人员可以按照 j a v a 的基础语法进行持久层开发。 1 2 研究内容 本文提出了一种基于s t r u t s 和h i b e r n a t e 的w e b 应用开发模式,通过对系统 的详细分析,提供了一种实现多层w e b 应用系统开发的解决方法。为了充分说 明框架的先进性及可用性,本文结合项目“购物网站系统 的设计实现,对集 成的框架进行阐述。 本论文研究的主要内容如下: ( 1 ) 在分析w e b 系统开发的一般模型和m v c 设计模式的基础上,详细阐述 武汉理:r 大学硕十学位论文 了s t r u t s 框架的体系结构和基本原理。 ( 2 ) 研究了将持久化框架集成到s t r u t s 应用中的优点,深入探讨了持久层的对 象关系映射机制,论证了持久层在实际开发中的重要性。 ( 3 ) $ t j m 以上的理论基础提出基于s t r u t s 和h i b e r n a t e 的w e b 应用系统的解决 方案,并将此方案应用到购物网站系统中进行实践。 1 3 研究意义 在湖北九洲电器集团的购物网站系统的开发过程中,我们采用基于m v c 模 式的s t r u t s 框架,并结合对象关系映射的h i b e r n a t e 技术来设计系统。采用这种 开发模式,具备以下意义: ( 1 ) 对于一个复杂的应用,s t r u t s 框架可以方便迅速地将其划分成模型、视图 和控制器组件,提高了应用的可重用性和扩展性。同时,其分层设计的体系结 构,使系统在内容不断增长的情况下仍能保持清晰的结构。 ( 2 ) h i b e r n a t e 作为优秀的持久层框架实现,提供了强大、高性能的对象到关 系型数据库的持久化服务,其良好的持久层映射机制,使得操作完全面向对象, 明显提高了开发效率。 ( 3 ) 将h i b e r n a t e 技术和s t r u t s 架构整合起来,让s t r u t s 负责降低系统总架构 的耦合性,让h i b e r n a t e 负责降低业务模型部分的开发难度,可以得到一个开发 灵活、低耦合及易于维护的系统。 1 4 论文的创新处 总的说来,本论文有如下创新处: ( 1 ) 打破了传统的将视图和控制器混杂的设计模式,引入了新的设计模式。 ( 2 ) 全部应用开源软件设计,对源代码不设限制,使开发者能更深入的了解 其内部实现机制。 ( 3 ) 从上到下,模块化分层构建系统,功能明确,层次清晰。 2 武汉理工大学硕十学位论文 1 5 组织结构 全文共分为六个章节: 第1 章绪论 简要介绍了课题研究背景、研究内容以及研究意义。 第2 章s t r u t s 及h i b e r n a t e 原理分析 阐述和分析了s t r u t s 框架的体系结构及核心组件,研究了s t r u t s 对m v c 设 计模式的实现方式,分析了m v c 设计模式的优点和适用范围;然后详细阐述了 持久化框架h i b e r n a t e 的体系结构和实现原理。 第3 章购物网站系统需求分析 介绍了湖北九洲电器集团购物网站系统的项目需求分析,项目系统分析和 设计,开发工具和环境,项目中参与的角色。 第4 章购物网站系统基于s t r u t s 及h i b e r n a t e 的实现 详细介绍了购物网站系统的实现过程。 第5 章系统部署及运行 介绍了整个项目所用到的配置文件和运行过程。 第6 章总结与展望 对全文做了总结,并指出了不足和以后的工作。 3 武汉理工大学硕+ 学位论文 第2 章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 2 e ew e b 应用。s t r u t s 是a p a c h e 基 金会j a k a r t a 项目下的一个开源项目,它凭借其结构清晰和开发灵活,被公认为 是开发基于m v c 模式w e b 应用的最经典的框架。h i b e r n a t e 是一个对象关系映 射( o b j e c t r e l a t i o n a lm a p p i n g ) 的开源框架,它根据0 r ( 对象关系) 映射技术 思想,对j d b c 进行了轻量级封装,从而让开发人员可以使用一种面向对象的方 式来操纵数据库。 大部分的w e b 应用在职责上至少能被分成这4 层:控制层、模型层、持久 层和数据库层( 见图2 - 1 ) 。每个层在功能上都应该是十分明确的,而不应该与 其它层混合。每个层要相互独立,通过一个通信接口而相互联系。 榨制层持久屡 s t r u t s m v c h i b e m a t e s t r u t sa c t i o n模型层 d a t a s c d 竺i a c t i o n f o r m f j s p q u e r y l a n g u a s t r u t s - c o n f i g g e x m l 图2 - 1s t r u t s h i b e r n a t e 框架 2 1s t r u t s 框架技术 2 1 1s t r u t s 框架结构 s t r u t s 是a p a c h es o f t w a r ef o u n d a t i o n 的一个开放源代码项目,它提供了一个 构建基于模型视图控s j j 器( m o d e l v i e w c o n t r o l l e rm v c ) 体系结构的w e b 应用程 序框架1 2 2 l 。s t r u t s 提供了对开发m v c 系统的底层支持,它采用的主要技术是 s e r v l e t 、j s p 和c u s t o mt a gl i b r a r y 。s t r u t s 结构如图2 - 2 。 4 武汉理一 人学硕士学位论文 视i 蛩( v i e w ) :s t r u t s 应用中的v i e w 部分是通过j s p 技术实现的。s t r u t s 提供 了自定义的标记库,通过这些自定义标记可以非常好地和系统的m o d e l 部分交 互。这些自定义标记可以创建j s p 表单,可以实现和m o d e l 部分中的a c t i o n f o r m 的映射,完成对用户数据的封装。 控$ 1 器r ( c o n t r o l l e r ) :控制器是s e r v l e t 实现的一个命令模式。它的作用是从 客户端接受请求,并根据这个请求选择执行相应的业务逻辑,然后把响应结果 送回到客户端。在s t r u t s 中的c o n t r o l l e r 功能由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 s e r v l e t 用以接受客户端发来的请求,并由s t r u t s c o n f i g x m l 来 确定调用哪个类,这样s t r u t s c o n f i g x m l 的配置信息就被转换成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 m a p p i n g 传递给a c t i o n 类。 图2 - 2 s t r u t s 结构 模型( m o d e l ) :它主要是以j a v a b e a n 的形式存在。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 处理器对象封装了具体的业务逻辑并且把 响应结果分派到v i e w 组件,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 是个抽象类,在应用的时候都是要从它派生子类对象,a c t i o n s e r v l e t 将参数化的类传递给a 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 i e w 和m o d e l 之间的交互。 5 武汉理工大学硕十学位论文 2 1 2s t r u t s 主要组件 在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 帮助控制器将请求映射到操作 a c t i o n f o r w a r d 完成操作转移的类 a c t i o n s e r v l e t 类 框架中的控制器组件是由s t r u t s 的a c t i o n 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 类的扩展。在基于s t r u t s 的应用程序中需要执行事务 的表单和超级链接会被提交到一个请求u r i ,它是映射到这个s e r v l e t 的,这个 s e r v l e t 类将会有一个单一的实例,所有会改变用户交互状态的请求都会由这个 实例完成接收和处理。控制器在处理一个请求时会完成以下任务: 1 它将请求的u r i 与适当的a c t i o n m a p p i n g 进行匹配。 2 它将请求映射到相应的a c t i o n 类,如果这是特定a d t i o n 类的第一个请求, 它将初始化这个实例并且进行缓存。 3 它创建或是发现一个a c t i o n f o r m 实例,然后将请求过程参数移植到b e a n 。 4 它将响应转发到a c t i o n f o r w o r d 对象中指定的资源。 5 它将调用a c t i o n 实例中的方法,并将a c t i o n f o r mb e a n 对象r e q u e s t 和 r e s p o n s e 对象传给它。 a c t i o n m a p p i n g 类 表单的输入事件通常是在h t r p 请求时发生的,s e r v l e t 容器将h t r p 请求 转换为h t t p s e r v l e t r e q u e s t 。控制器查看输入事件并请求分派给某个a c t i o n 类, s t r u t s c o n f i g x m l 确定c o n t r o l l e r 调用哪个a c t i o n 类,s t r u t s - c o n f i g x m l 配置信息 被转换为一组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 的信息。a c t i o n s e r v l e tc o m m a n d 通过p e r f o r m o 方法将a c t i o n m a p p i n g 传递给a c t i o n 类,这样就使a c t i o n 可访问用于控制流程的信息。 a c t i o n 类 a c t i o n 类是业务逻辑的一个包装。a c t i o n 类的用途是将h t t p s e r v l e t r e q u e s t 转换为业务逻辑,使用a c t i o n 的方法非常简单,通过创建它的子类并继承 6 武汉理丁大学硕士学位论文 p e r f o r m ( ) 或者e x e c u t e 0 方法即可。a c t i o n s e r v l e t 使用p e r f o r m ( ) 方法将参数化的类 传递给a c t i o n f o r m 3 2 1 。这个过程避免了以往程序中所出现的太多的 r e q u e s t g e t p a r a m e t e r 0 调用的问题。扩展的a c t i o n 类应该控制应用程序的流程而 不应该控制应用程序的逻辑,通过将业务逻辑放在单独的包或e j b 中就可以为 系统的开发提供更大的灵活性和可重用性。 a 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 所表示的数据是由h t m l 表单所设置或更新的数据。 a c t i o n f o r w a r d 类 在a c t i o n f o r w a r d 类中描述了一个请求,这就是控制器s e r v l e t 将a c t i o n 类 的处理结果转发到目的地。a c t i o n 类对用户的请求创建一个响应,然后使用 a c t i o n f o r w a r d 类将响应转发到另一个资源。a c t i o n f o r w a r d 类的逻辑名称是由配 置文件中的 元素来定义。 2 1 3s t r u t s 工作流程 对于采用s t r u t s 架构的w e b 应用,在w e b 应用启动时就会加载并初始化 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 的映射信息存放在a c t i o n m a p p i n g 对象中【2 1 l 。 s t r u t s 的工作流程图2 3 : 当a c t i o n s e r v l e t 接收到一个客户请求时,将执行如下流程: 1 检索和用户请求匹配的a c t i o n m a p p i n g 实例,如果不存在,就返回用户请 求路径无效的信息。 2 如果a 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 对象中。 3 根据配置信息决定是否需要表单验证,如果需要验证,就调用a c t i o n f o r m 的验证方法v a l i d a t e 0 。 4 如果a c t i o n f o r m 的v a l i d a t e 0 方法返回一个不包含任何a c t i o n m e s s a g e 的 a c t i o n e r r o r s 集合对象或返回n u l l ,就表示表单验证成功。 5a 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 ,如果相应的a c t i o n 实例不存在,就先创建这个实例,然后 调用a c t i o n 的e x e c u t e 0 方法。 7 武汉理工大学硕士学位论文 6a c t i o n 的e x e c u t e ( ) 方法返回一个a c t i o n f o r w a r d 对象,a c t i o n s e r v l e t 再把客 户请求转发给a c t i o n f o r w a r d 对象所指向的j s p 组件。a c t i o n f o r w a r d 对象指向的 j s p 组件生成动态网页,返回给客户。 对于以上流程的第4 ,如果a c t i o n f o r m 的v a l i d a t e 0 方法返回一个包含一个 或多个a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,就表示表单验证失败,此时 a c t i o n s e r v l e t 将直接把请求转发给包含用户提交表单的j s p 组件。在这种情况下, 不会创建a c t i o n 对象。 2 1 4s t r u t s 开发流程 s t r u t s 提供了一个非常好的m v c 模式的应用框架。应用s t r u t s 开发系统可 以极大地提高开发效率。对于般的应用程序开发具有以下的开发流程: 1 ) 需求分析阶段收集和定义应用程序需求。 8 武汉理1 二大学硕士学位论文 2 1 基于数据采集和显示的原则定义和开发用户界面需求。 3 ) 为每个用户界面定义访问路径。 4 ) 定义a c t i o n m a p p i n g s 建立应用业务逻辑之间的联系。 5 ) 开发满足用户界面需求的所有支持对象。 6 ) 基于每个用户界面需求提供的数据属性来创建对应的a c t i o n f o r m 对象。 7 ) 开发被a c t i o n m a p p i n g s 调用的a c t i o n 对象。 8 ) 开发应用业务逻辑对象。 9 1 对应a c t i o n m a p p i n g 设计的流程创建j s p 页面。 1 0 ) 建立合适的配置文件s t r u t s c o n f i g x m l ,w e b x m l 。 1 1 ) 开发测试部署。 在具体开发应用中对应各个部分的主要工作包括: v i e w :为了使用m o d e l 中的a c t i o n f o r m 对象,开发者必须使用s t r u t s 提供 的t a 西i b 创建h t m l 表单,利用s t r u t s 提供的t a g l i b 编写用户界面把业务逻辑 和显示逻辑分离。s t r u t s 框架通过t a g l i b 建立了v i e w 和m o d e l 之间的联系,s t r u t s 的t a g l i b 还提供了很多定制页面的功能。 m o d e l :采用j a v a b e a n 和e j b 组件设计和实现系统的业务逻辑,根据不同 的请求从a c t i o n 派生出具体的a c t i o n 对象,完成由b e a n 构成的业务组件,创 建由a c t i o n f o r m 派生出的类,实现对客户端表单数据的封装。 c o n t r o l l e r :s t r u t s 为开发者提供了控制部分的实现,开发人员需要详细配置 a c t i o n m a p p i n g 对象,同时,需要编辑两个配置文件w e b x m l 和s t r u t s c o n f i g x m l 。 前者描述了系统的c o n t r o l l e r 对象;后者是用于建立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 中用户请求与业务逻辑的对应法则,同时它还描述了 客户提供的数据与a c t i o n f o r m 组件的对应映射关系,通过它们建立s t r u t s 系统 中各个模块之间的联系。 2 1 5s t r u t s 优点与缺点 1 缺点 t a g l i b 是s t r u t s 的一大优势,但对于初学者而言,却需要一个持续学习的过 程,甚至还会打乱我们网页编写的习惯。s t r u t s 将m v c 的c o n t r o l l e r 一分为三, 在使得结构更加清晰的同时,也增加了系统的复杂度。 9 武汉理上人学硕士学位论文 2 优点 s t r u t s 跟t o m c a t 、t u r b i n e 等诸多a p a c h e 项目一样,是开源软件,这是它的 一大优点,这使得开发者能更深入的了解其内部实现机制。 除此之外,s t r u t s 的优点主要集中体现在两个方面:t a g l i b 和页面导航。标 记库t a 西i b ,运用灵活,能大大提高开发效率。关于页面导航,我认为那将是今 后的一个发展方向,事实上,这样做,使系统的脉络更加清晰,通过一个配置 文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着非常大的 好处,尤其是当其他开发者接手这个项目时,他们只要看一看该项目的配置文 件,就可知道该项目的核心内容,从而为他们的下一步工作指定方向。 s t r u t s 已逐步越来越多地运用到商业软件,虽然它现在还有不少缺点,但它 是一种非常优秀的j 2 e em v c 实现方式,如果我们的系统准备采用j 2 e em v c 架构,那么可以优先考虑s t r u t s 框架。 2 2h i b e r n a t e 框架技术 2 2 1h i b e r n a t e 实现o r m 机制 h i b e r n a t e 是j d b c 的轻量级的对象封装,它是一个独立的对象持久层框架, 和a p ps e r v e r ,e j b 没有什么必然的联系1 3 5 j 。h i b e r n a t e 可以用在任何j d b c 可 以使用的场合,例如j a v a 应用程序的数据库访问代码,d a o 接口的实现类,甚 至可以是b m p 里面的访问数据库的代码。h i b e r n a t e 的兼容性和j d b c 与数据库 都有一定的关系,但是和使用它的j a v a 程序以及a p ps e r v e r 没有任何关系,也 不存在兼容性问题。长久以来,在j a v a 开发领域中,基于数据库应用的设计一 直是面向关系的,即与数据库相关的处理过程并没有实现真正的面向对象,围 绕对象关系的映射和持久性数据的访问,在j a v a 领域中发展起来了一些a p i 和 框架。e j b 、j d b c 等持久化解决方案存在这样或那样的问题,开发人员尝试用 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 应用程序可以通过调用h i b e r n a t ea p i 或直接通过j d b c 来访 问数据库,j a v a 程序员可以方便地使用对象编程的思想将对象映射到关系数据 1 0 武汉理: 大学硕+ 学位论文 库,而不必花费大量的开发时间去更新和维护复杂的数据持久层1 1 1 l 。h i b e r n a t e 不仅提供了从j a v a 类到数据表之间的映射,也提供了数据查询和恢复机制。相 对于使用j d b c 和s o l 来手工操作数据库,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 2 e e 架构应 用软件开发的难度和复杂度,提高j a v a 应用软件的开发效率,进而使j a v a 的企 业级应用开发更加容易、更加灵活和更加强大。 2 2 2h i b e r n a t e 原理 h i b e r n a t e 提供了实现持久化层的一种模式,它采用元数据来描述对象关系 的映射细节,在j a v a 应用的业务逻辑层和数据库层之间充当桥梁,从本质上来 讲是一种轻量级“对象关系型数据映射”( o b j e c t r e l a t i o n a lm a p p i n g 简称o r m ) 。 图2 4 是h i b e r n a t e 原理图,其中p e r s i s t e n to b j e c t 是简单的业务实体对象( 要被持 久化的对象) ,通过h i b e r n a t e 被透明地持久化到数据库中,从而减少了繁琐而且 容易出错的j d b c 的操作。 图2 4h 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 使用数据库和配置文 件来为应用程序提供

温馨提示

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

评论

0/150

提交评论