已阅读5页,还剩62页未读, 继续免费阅读
(计算机软件与理论专业论文)基于Struts和Hibernate的管理信息系统研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于s t r u t s 和h i b e r n a t e 的管理信息系统的研究与实现 摘要 计算机和网络技术的迅速发展,加快了教育现代化进程的发展步伐,促进了 教学方法、教学过程和管理手段的变革。本课题是以研究并利用现有的w e b 技 术对s t r u t s 框架和h i b e r n a t e 框架进行整合而展开的,实现了教学管理系统的企 业级应用。 本文首先介绍中国海洋大学继续教育学院基于c s 传统管理信息系统的不 足和国内外研究现状。基于现有技术的发展背景,提出了基于b s 模式的管理信 息系统的解决方案。讨论了j 2 e e 软件体系结构的发展和软件分层的优势与不足, 研究了开发w c b 应用的m o d e l1 和m o d e l 2 ( m v c ) 体系结构,比较了两者的优缺 点。讨论了几种实现m v c 设计模式的框架的模式特点、使用场合及优缺点,在 此基础上详细讨论了s t r u t s 框架和提供面向对象方法操作数据库的h i b e r n a t e 技 术,阐述了将两者整合的优势。接着对成人教育学院系统作了详细的需求分析, 它为学院的日常管理工作提供了远程登陆、浏览和录入功能,并且要求完备的打 印功能使教师学生可以在线实现“可见即可得”,可以方便学生和教师及教务人员 即时了解掌握学院教学信息。基于系统分析和w e b 开发技术的研究,采用 s t r u t s + h i b e r n a t e 模型设计并实现了整个教务管理系统的网络部分。并以用户登录 录入成绩为例,详细描述了软件框架配置、模型层、视图层和控制器层的实现过 程。在此基础上实现了s t r u t 框架下分页算法和对用户权限的控制,保证系统不 被非法访问,并将s t r u t s 框架中的国际化工具运用于系统中,解决了系统应用中 可能遇到的国际化问题。 基于s h 模型的教务m i s 系统具有结构灵活、易于维护、扩展性好、界面友 好等优点,经过一年多的调研和开发,系统已经在局域网内试运行。 关键词:j 2 e e ,m v c ,s t r u t s ,h i b e r n a t e ,管理信息系统 t h er e s e a r c ha n da p p l i c a t i o no f m a n a g e m e n ti n f o r m a t i o n s y s t e mb a s eo ns t r u t sa n dh i b e r n a t e a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fc o m p u t e ra n dn e t w o r kt e c h n o l o g y , t h ep r o c e s so f m o d e r n i z a t i o no ft h ee d u c a t i o nd e v e l o p m e n ti ss p e e d i n gu p ,t h et e a c h i n gm e t h o d sa n d t e a c h i n gm a n a g e m e n tt o o l sa r ec h a n g i n g 。t h i sa r t i c l es t u d ya n dl l s et h ee x i s t i n g 、耽b t e c h n o l o g yi n t e g r a t i o nt h eh i b e r n a t ea n ds t r u t sf r a m e w o r kt oa c h i e v et h et e a c h i n g m a n a g e m e n ts y s t e me n t e r p r i s ea p p l i c a t i o n s i nt h i sp a p e r ,f i r s ti n t r o d u c et h el a c ko fc o n t i n u i n ge d u c a t i o nc o l l e g eo fo c e a n u n i v e r s i 够o fc h i n am a n a g e m e n ti n f o r m a t i o ns y s t e mt h a tb a s e do nt h ec st r a d i t i o n a l 。 t h e n ,o nt h eg r o u n do fe x i s t i n gt e c h n o l o g y ,p r o p o s et h em e t h o dt h a tb a s e do nb s m o d e lm a n a g e m e n ti n f o r m a t i o ns y s t e m s 。d i s c u s st h ea d v a n t a g e sa n dl a c k so ft h e d e v e l o p m e n t o fj 2 e es o f t w a r ea r c h i t e c t u r ea n ds 0 1 r a r e l a y e r e d ,s t u d y t h e a r c h i t e c t u r eo fm o d e l 董a n dm o d e l 2 ( m v c ) t h a t u s ei nw 曲d e v e l o p m e n t ,a n d c o m p a r et h ea d v a n t a g e sa n dd i s a d v a n t a g e so fb o t h d i s c u s ss e v e r a lc h a r a c t e r i s t i c so f 刚e d e s i g np a a e r n st oa c h i e v et h ef r a m e w o r ko ft h em o d e l ,t h eu s eo fo c c a s i o n s , a n di t sa d v a n t a g e sa n dd i s a d v a n t a g e s t h e nb a s eo n _ a l lo ft h e s e ,t h e r ei sad e t a i l e d d i s c u s s i o na b o u tt h es t r u t sf r a m e w o r ka n dt h eh i b e r n a t ed a t a b a s et e c h n o l o g yt h a t p r o v i s i o no ft h eo b je c t - o r i e n t e dm e t h o d ,r e c o u n tt h ea d v a n t a g e so fi n t e g r a t i o nb o t h t h e nt h e r ei sad e t a i l e da n a l y s i st h en e e d so fi n s t i t u t eo fa d u l te d u c a t i o ns y s t e m ,i t s p r o v i d e s ar e m o t el o g i n ,b r o w s i n ga n dd a t ai n p u tf u n c t i o nf o rt h ea c a d e m y s d a y - t o - d a ym a n a g e m e n tw o r k , a n dd e m a n d e dc o m p l e t ep r i n t i n gf u n c t i o ns ot h a t s t u d e n t sa n dt e a c h e r sc a ng oo n - l i n ep r i n t i n g ,i tm a k e ss t u d e n t sa n dt e a c h e r s c o n v e n i e n ta c h i e v et h ea c a d e m i ci n f o r m a t i o na n yt i m e 。b a s eo nt h es y s t e ma n a l y s i s a n dr e s e a r c ht h ew e bd e v e l o p m e n tt e c h n o l o g y ,u s i n gs t r u t s + h i b e r n a t em o d e l d e s i g nt h ep a r to fn e t w o r ko ft h ee n t i r em a n a g e m e n ts y s t e m 。a n dr e s u l t st ou s e r s i n p u ta c h i e v e m e n t sa sa l le x a m p l e ,d e t a i l e dd e s c r i p t i o nt h ef r a m e w o r ko ft h es o f t w a r e 薹薹 c o n f i g u r a t i o no ft h em o d e l ,v i e w - c o n t r o l l e rl a y e ra n dt h er e a l i z a t i o no ft h ep r o c e s s o nt h eb a s i so ft h i sf r a m e w o r ki m p l e m e n tt h es t r u tp a g i n ga l g o r i t h ma n dc o n t r o lt h e u s e r sr i g h t ,k e e pt h es y s t e mw a sn o tb ei l l e g a lv i s i t ,a n ds t r u t st o o l sa l eu s e di nt h e i n t e r n a t i o n a ls y s t e m ,t h es o l u t i o no ft h es y s t e mt h a tm a yb ee n c o u n t e r e di nt h e a p p l i c a t i o no fi n t e r n a t i o n a li s s u e s t h ea c a d e m i cm i ss y s t e mt h a tb a s e do nt h es t r u t s + h i b e r n a t em o d eh a st h e a d v a n t a g e so ff l e x i b l e ,e a s yt om a i n t a i n ,s c a l a b i l i t y ,a n du s e r - f r i e n d l y ,a f t e rm o r et h a n o n ey e a rr e s e a r c ha n dd e v e l o p m e n t ,t h es y s t e mh a sb e e n n m n i n gi nt h el a n t e s t k e yw o r d :j 2 e e ,m v c ,s t r u t s ,h i b e r n a t e ,m i s i i i 独创声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含未获得史垦瀣注太堂或其他 教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:讥葡而 签字日期:如d p 年孑月5 1 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,有权保留并 向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人 授权学校可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用 影印、缩印或扫描等复制手段保存、汇编学位论文。同时授权中国科学技术信息 研究所将本学位论文收录到中国学位论文全文数据库,并通过网络向社会公 众提供信息服务。( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:协葡砷 导师签字: 签字日期:知0 1 年 s 月弓1 日签字日期姗j 年箩月 1 日 基予s t r u t s 和h i b e r n a t e 的管理信息系统研究与实现 1 绪论 1 1 课题来源 教务管理信息系统是学校信息建设的重要组成部分,也是提高教学管理质量 和水平的重要环节。近年来,中国海洋大学继续教育学院学生的人数增长迅速, 致使教务信息管理的数据量呈几何级数增长,原有的管理方法、管理手段已难以 适应成人教育事业发展的要求。 中国海洋大学继续教育学院原来使用的是十年前由v i s u a lf o x 开发的基于 c 燔结构的管理系统,该系统因为技术和其他原因无法支持数据共享、权限设置、 远程维护等功能,难以确保数据的安全。原始数据的录入都集中在教学管理部门, 无疑加大了其工作量。单机系统的事务处理、数据处理箍力较低,无法实现多用 户的实时请求。不具备管理功能,无法满足当前教学管理的需要。并且近几年来 随着数据的不断增多,问题越来越突出。 随着软件技术的发展和继续教育学院本身管理体制的不断进步,该软件已经 远远不能满足酷常办公的需求,急切需要开发新的适应学院发展的管理系统。 王2 课题背景及意义 我们处在一个信息技术飞速发展的时代,人们已经处于一个数字佬的生存空 间当中。i n t e r n e t 技术所构造的无限信息资源在逐渐改变着人们的生活和工作方 式,也改交了传统麓教育教务管理方式。 近年来,随着网络技术的迅速发展和j 2 e e 平台的广泛使用,基于b s 的多 层w 的体系结构管理软件发展并成熟起来,多层w e b 应用的开发成为主流【瓤。 但是,在多层w e b 体系结构的设计中,仍然存在着程序可重用程度低、维护工 作繁琐、应交能力较弱等不足。同时,多层w e b 应用软件需要面对复杂的网络 环境、多样化的用户需求、灵活的业务模式、复杂的业务流程、众多的组织机构 及层次和角色分工等阂趣,在业务和技术上也是复杂多变的同。因此,如何组织 教育管理应用程序以实现简单高效的程序编写、升级、维护和扩展,是当前 基于s t r u t s 和h i b e r n a t e 的管理信惠系统研究与实现 i n t e m e t 技术发展的热点之一,也是一个缀僮得探讨的研究课题。 为了达到课题的研究目的,提高开发的效率,考虑到应用系统的灵活性、安 全性、实用性等,就需要有一种好的设计模式,一个好麴可复用的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 c ) 模式是国外使惩较多的一种设计模式, 是x e r o xp a r c 在八十年代为编程语畜s m a l l t a l k - - 8 0 发明的一种软件设计模式, 至今已被广泛使蔫【3 】。它是设计交互式应用时广泛采用的一种设计模式,也是 j 2 e e 蓝图推荐的在开发w e b 应用时使用的方法【4 】。利用m v c 设计模式开发w e b 应焉,可以将表现逻辑帮业务逻辑分离,构建可复用的软件系统框架,圆时简化 软件开发,大大减少了开发时间,缩短了维护周期,提高了软件的性能和可维护 性,达到提高软件质量的露的,成为基于w e b 的应震和服务的首选。但是,要 开发此类应用是一个艰苦的过程。s t r u t s 为我们解决这一切。它提供了构建基于 m v c 的应用程穿的基础或框架,嚣时还为更快、更轻松开发m v c 提供了库和 实用程序。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 e s o f t w a r ef 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 a v a 领域,可以直接通过j d b c 编程来访闯数据 库。这样优点是运行效率高,缺点是在源程序中嵌入大量s q l 语句,使得对项 匿的维护交得很艰难。如果直接通过j d b c 编程来开发单独的持久化层,把数据 库封装起来,对业务层提供统一a p i 访问,那么花费的时间和精力对开发人员 有是得不偿失的。h i b e r n a t e 正是为了解决的这一问题如现的持久化中闻件。它 对m b c 作了简单封装,提供o r m 映射服务,通过h i b e r n a t e a p i 我们可以方便 地操作数据库。 系统应用基于s t r u t s 和h i b e r n a t e 的m v c 设计模式,使得整个管理系统的结 构层次清晰并实现了层之间的解耦,使得在开发过程中层与层之间的工作几乎是 2 基予s t r u t s 和h i b e r n a t e 的筲理信息系统研究与实现 完全独立的,极大的提高了系统的开发效率阁。同时也提供了系统的可重用性和 灵活性,为日后的扩展和维护留有很大的余地。 1 3 文章主要内容 论文着重研究应用s t r u t s 和h i b e r n a t e 技术开发基于b s 结构的m i s 系统。 主要分为三部分,首先论述采用科s 结构开发m 璐的优点,再介绍采取中闻件 实现m i s 的技术特点,为实际应用的开发打下理论基础;然后分析s t r u t s 和 h i b e r n a t e 在应用中所涉及的闻题,寻求如何解决办法的途径;最恁是b 怨结构 的m i s 在实际项目中的设计与实现。 本文共分六章,结构如下: 第一章绪论部分对本文所要研究课题的研究目的及意义作了简要的阐述,说 明了课题研究的主要内容。 第三章主要介绍了软件分层及其相关知识,并讨论了分层的优缺点。本章也 简单分绍了一下j 2 e e 框架的m v c 模式及m o d o l l 和m o d o l 2 的基本知识,模式 的使用范围等。 第三章主要介绍了基于m v c 模式的w e b 应用框架,在分析了他们的优势和 不足的基础上,重点研究s t r u 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 t r u t s 和h i b e r n a t e 的w e b 应用的开发框架, 实现了一个登陆并管理成绩的予系统,用实例说明了j 2 e 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 的管理信惠系统研究尚实现 2 软件分层与j 2 e e 框架 2 1 软件分层 级观钧多年来计算机应用软件的演变过程,可以看出,应用程序之闻由单 层体系结构发展为多层体系结构。最初的应用软件只是在大型机上的单层应用程 序,许多程序采用文件系统来存储数据。2 。世纪7 0 年代数据摩得到普及,加 世纪8 0 年代p c 和局域网的出现是数据库技术飞速发展,原来的单层应用发展 为双层应用,如图2 - 1 : i应用程序层 图2 1 双层应用程序 在双层应用中,数据库层存放持久性业务数据,应用程序作为单独的一层,在这 个层中负责生成用户界面的代码和负责业务逻辑的代码混合在一起。例如,在同 一个j s p 文件中,既包含生成动态网页的代码,还包含穗应用户请求的,完成樵 应业务逻辑的代码。由于界面代码与业务逻辑代码掺杂一起,使程序结构不清晰, 而且维护很困难。对于大型复杂的应餍软件,这一阀题显得尤为突出。在这种环 境下,三层结构应运而生,它把原来的应用程序层划分为表述层和业务逻辑层, 如黧2 - 2 l 表述层 l i 业务逻辑层 l 数一层j 图2 - 2 三层应用程序 4 基于s t r u t s 和h i b e r n a t e 的管理信息系统研究与实现 三层结构是目前典型的斑用软件的结构。 1 表述层:提供与用户交互的界面。g u i 和w e b 页是表述层的两个典型例子。 2 。业务逻辑层:实现各种业务逻辑。例如当用户发出生成订单的请求时,业务 逻辑曾负责计算订单的价格、验证订单的信息,以及把订单信息保存到数据 库中。 3 数据库层:负责存放和管理应用的持久性业务数据。例如对于电子商务网站 应用,在数据库中保存了客户、订单和商品等业务数据。关系数据库依然是 目前最流行的数据库。 2 1 1 区分物理层和逻辑层 软件的分层包含两种含义:一种是物理分层,即每一层都运行在独立的机器 上,这意味着创建分布式的软件系统;一种是逻辑分层,指的是在单个软件模块 中完成特定的功能。例如在图2 - 3 中,业务逻辑层和数据库层运行在同一台机器 上,这台机器及时应用服务器,又是数据库服务器,因此整个系统物理上为两层 结构,而逻辑上为三层结构。而我们平时如果没有特别说明,软件分层均指的是 逻辑分层。 2 1 2 软件层的特征 圈2 - 3 物理层贺逻辑层 由于每个软件都有囊身的特征,因此不可熊提供一个逶合于所有软件的体系 结构。但是总的来说,软件的层必须符合以下特征: 5 基于s t r u t s 鄹h i b e r n a t e 的管理蓿惠系统研究麓实现 1 。每个层有一组相关的类或组件构成,共同完成特定的功能。 2 层与层之间存在自上而下的依赖关系,即上层组件或访问下层组件的a p i , 焉下层组件不应该依赖上层组件。例如:表述层依赖于业务逻辑层,露业务 逻辑层依赖于数据库层。 3 每个层对上层公开a p i ,但具体的实现细节对外透贺。当某一层的实现发生 变化,只要它的a p i 不变,不会影响其他层的实现。 软件分层的一个基本特征就是层与层之闻存在自主焉下的依赖关系,例如以 图2 4 所示把电子商务网站系统按照业务功能划分为客户管理模块、订单管理模 块和库存管理模块。这几个模块之闻为并列关系,不存在童上面下的依赖关系, 因此不算分层的结构。但是每个模块都可以划分为表述层、业务逻辑层和数据库 层,这两种划分方式是正交的。 图2 - 4 按功能划分应用的模块 每个软件都向上公开接嚣,封装实现细节,如图2 - 5 所示。 三三 第二层a p i 第三层实现 图2 - 5 软件屡向上公开接口,封装细节 由予软件上层总是依赖下层软件,因此也可以把软件上层称为客户程 序。如表述层是业务逻辑层的客户程序,业务逻辑层是持久化层的客户程序。 6 基于s t r u t s 和h i b e r n a t e 豹管理信息系统研究与安糯 2 1 3 软件分层的优点 恰当地力软件分层,将会提离软件的以下性能。 1 伸缩性 姊缩性是指应用程序是否能支持更多的是户。例如,在双层g u i 应用程序 中,通常对每个用户都提供一个数据库连接。如果有1 00 0 0 个用户,则需要建 立王o0 0 0 个数据库连接。焉在三层结构中,可以采尾数据库连接浊棍剿,用少 量数据库连接支持多个用户。应用的层越少可以增加资源( 如c p u 和内存) 的 邃方就越少。屡数越多,爵鼓将每层分布在不同的枫器上,镶如,用一缓服务器 作为web 服务器,一组服务器处理业务逻辑,还有一组服务器作为数据库服务 器。 2 可维护性 可维护性指酶是当发生需求变化时,只需要修改软件觞某一部分,不会影响 到其宦部分的代码。层数越多,可维护性也会不断提高,因为修改软件的莱一层 酶实现,不会影噙其他屡。 3 可扩展性 霹扩展性措的是瑗有系统率增船薪功麓酶难易程度。层数越少,增加薪功能 就越容易破坏现有的稷序结构。层数越多,就可以在每个层中提供扩展点,不会 打破纛餍酶整体框架。 4 可重用性 霹重焉幢指鲤是程痔代码没宥冗余,阕一个程序麓满足多种需求。例如,监 务逻辑层可以被多种表述层共事,既支持基于g u i 界面的表述层,也支持基于 w e b 页面酶表述层。 5 可管理性 可管理靛撵酶是管理系统的难易程度。将应用程亭分势多层焉,萄戮将工作 分解给不同的开发小组,从而便于管理。应用越复杂规模越大,需臻的层就越多。 2 1 4 软件分层的缺点 豢然,软件分层越多,对软件设计入员莳要求就越嵩。在设计阶段,必须花 时间构思合理的体系结构。否则,如果在体系结构方面存在缺陷,例如,层与层 7 纂于s t r u t s 秘h i b e r n a t e 的管理信息系统研究鸯实现 之闽出现了爨下嚣上黔依赖关系,一旦业务逻辑发生变化,不仅嚣要修改监务逻 辑层的代码,还需要修改表述层的代码。此外,软件层数越多,调试会越困难。 铡如在三层结擒中,由予存在蠡上露下的依赖关系,懿果表述屡运行出现了错误, 该错误有可能是表述层产生的,还有可能是业务逻辑层产生的,也有可能是由数 据库层产生的,在这种情嚣下,每个软徉层的舞发人员必须联合起来,才能找到 错误的原因。 舞票应用规模毙较夸,业务逻辑很篱单,软葶李屡数少反孬会篱纯发开流程 并提高开发效率【6 】。 2 2j 2 e e 与m o d e l l 、m o d e l 2 企业级应用作为一个在r r 界的流行诃,被用在了许多领域,涵盖的范围十 分广。既包含类似股票系统的交易处理应用,也包括基予电话的系统;既可能是 常见的c 搭模式,也可能是仅仅存在予内联潮中的b b s 系统,当然还可能是网 上购物系统。j 2 e e 就是戈了解决“企业级应建”方面的溺题,作海官方的标准, j 2 e e 将工作划分为不同的层次,包括如下三层:服务器端业务逻辑层、服务器 端表示层帮客户端表示层。j 2 e e 的应用部署在j 2 e e 服务器中,j 2 e e 莠瑟务器支 持w e b 组件以及三层架构,并使用标准j 2 e e a p i 处理不同事务r 7 1 。 2 + 2 m v c 模型 m v c 模型是一个存在予服务器端表达层的模型。它将应鼹分开,改变了应 用之间的高度耦合。m v c 模型将应用分为模型( m o d e l ) 、视图( v i e w ) 和控制 器( c o n t r 0 1 ) 3 层。 1 模型:相当于一个数据库殿用,用数据库来存储应用的状态。 2 。视图:相当于一个页夏的显示,戬某种方式将模型孛的虚震展现在用产面嚣。 3 控制器:在视图中将用户的输入提交给指定的模型,然后在模型中解释用户 靛输入,爱蜃将结果返回绘视蚕。 m v c 模型如果2 - 6 所示尝 8 基予s t r u t s 和h i b e r n a t e 的管理信息系统研究与实现 图2 - 6m v c 模型 在j 2 e e 中蠹置了m v c 的概念,常常使用j a v a b e a n 佟为模型层的应用,使 用s e r v l e t 作为控制器层的应用,使用j s p 来进行试图层的应用。 2 2 2m o d e u 和m o d e l 2 在服务器端表达层构架中,早裳曾经列举了两种框架,分别为m o d e l1 和 m o d e l2 。 1 m o d e l1 的框架,使用j s p 直接处理w e b 浏览器的请求,并使用j a v a b e a n 处理业务逻辑。虽然编写代码十分容易,但是j s p 混淆了m v c 模型中的视图 层和控制层,高度耦合的结果是j s p 代码十分复杂,后期维护困难。m o d e ll 的架构如图2 7 所示。 2 。m o d e l2 的框架,将s e r v l e t 酶概念引入框架体系中,使用它来分配视图层j s p 的显示页面同时调用模型层的j a v a b e a n 来控制业务逻辑。这是个良好的 9 基于s t r u t s 和h i b e r n a t e 的管理信息系统研究与实现 m v c 模式。m o d e l2 架构使用j a v a b e a n 、j s p 、s e r v l e t 三者协同工作。m o d e l 2 的架构如图2 7 所示。 模型层 j a v a b e a n 控制器层 j s p j s p 视图层 图2 - 7 m o d e l l 3 基于m v c 模式的w e b 框架 模型层 j a v a b e a n 控制器层 s e r v l e t j s p 视图层 图2 8 m o d e l 2 为了将m v c 设计模式有效地应用于j 2 e e 应用开发之中,在a p a c h e 软件基 金赞助下,一个叫做j a k a r t a 的项目计划得以开展,项目的创立者希望通过对该 项目的研究,为开发人员提供一个开发m v c 模式的应用框架,s t r u t s 正是这个 项目的产物。 本章详细的分析了s t r u t s 框架的体系结构、处理流程及基本组件,为后续章 节研究如何将s t r u t s 框架应用到w e b 开发中做好技术理论准备。 3 1 框架的定义 3 1 1 框架的概念 随着软件开发的发展,可重用、易扩展,而且是经过良好测试的软件组件, 越来越为人们所青睐。这意味着人们可以将充裕的时间用来分析、构建业务逻 辑,而非繁杂的代码工程。于是人们将相同类型问题的解决途径进行抽象,抽 取成一个应用框架,这就是所说的框架。r o b e r t s 和j o h n s o n ,把框架定义成一 1 0 基于s t r u t s 和h i b e r n a t e 的管理信息系统研究与实现 个系统全部或者部分的可复用设计,表现为一组抽象类及它们实例之间的相互 作用方式。另一个比较通用的定义是:“框架是一个可被程序开发者定制的应 用程序的骨架”【引。这两个定义并不矛盾,第一个描绘了框架的结构,第二个描 绘了框架的用途。一个软件框架捕获解决某一特定问题域所需的编程经验、设 计经验和该领域专家经验。它隐藏了该领域中的所有应用程序的共同部分( 也称 为冰点f r o z e ns p o t ) 暴露出需要针对不同应用程序进行定制的部分( 也称为热点 h o ts p o t ) 。框架的用户就是通过定制框架的热点来满足的不同应用的需要。 3 1 2 使用框架的好处 框架与类库不同,框架提供的不是一组功能性的组件。恰好相反,它提供了 一个软件结构,一种业务流程,以及“好莱坞模式”的开发原则一d o n tc a u m e ,i l l c a uy o u ( 在好莱坞,演艺界人士在把简历递交给娱乐公司以后,所能做的 就是等待。这些公司会告诉它们“不要打电话给我,我们会打给你”。好莱坞原则 的关键是娱乐公司对娱乐项目的完全控制。应聘的演艺人员只是被动地服从总项 目流程的安排,在需要的时候完成流程中的一个具体环节) 。换言之,选择框架, 就是用自由换便利,开发人员基本上只需并且只能在框架限制的范围内编写一些 业务组件,框架会帮助管理这些组件之间的协调,在w e b 框架里,这种“自由 换便利”的原则就体现为:必须要把业务逻辑放在这里,把显示逻辑放在那里, 按照要求把它们组织起来,甚至必须遵守一定的规则,不能随心所欲。当然,收 获的就是结构更加良好,质量更加可靠的w e b 应用。因此使用框架的好处有如 下几个方面: 1 通过提供一个基础设施,框架减少了开发人员需要编写、测试、调试的 代码的数量。开发者只编写、测试、调试那些各个应用程序特有的代码。 2 用同一个框架创建的不同的应用程序或( 子) 系统共享相同的结构,这样 它们非常容易集成。 3 用同一个框架开发的多个应用程序维护起来比用不同的设计方案创建的 多个应用程序更容易。 4 有助于同一项目中的人员并行工作,项目开发人员可以分成两个组,一 组负责开发、改进、扩展框架,而另一组与此同时负责使用这个框架实现特定能 基于s t r u t s 和h i b e r n a t e 的管理信息系统研究与实现 应用程序。 5 框架的每个实例自动重用了框架的算法、数据结构等。 3 2 实现m v c 的w e b 应用开发框架 现在有很多可供使用的实现了m v c 设计模式的w e b 框架,下面将简单介绍 几种,并对这几种框架的优缺点进行比较分析,最终选择一种较合适的开发框架。 3 2 1s t r u t s 框架 ( 一) s t m t s 框架的概念 s t r u t s 这个名字来源于在建筑和旧式飞机中使用的支持金属架,它的目的是 为了减少在运用m v c 设计模型来开发w e b 应用的时间。s t r u t s 继承了m v c 的 各项特性,并根据j 2 e e 的特点,做了相应的变化与扩展。s t r u t s 有如下的主要 功能: 1 包含一个c o n t r o u e rs e r v l e t ,能将用户的请求发送到相应的a c t i o n 对象。 2 j s p 自由标签库,并且在c o n t r o l l e rs e r v l e t 中提供关联支持,帮助开发人 员创建交互式表单应用。 3 提供了一系列实用对象:x m l 处理、通过j a v ar e f l e c t i o n a p i s 自动处理 j a v a b e a n s 属性、国际化的提示和消息。 s t r u t s 提供了它自身的控制器组件,并整合了其他技术,以提供模型和视图。 对于模型,同大多数的第三方软件包一样,如h i b e r n a t e 或o b j e c tr e l a t i o n a lb r i d g e s t r u t s 能够和标准数据连接技术相结合,如j d b c 和e j b 。对于视图,s t r u t s 与 j a v as e r v e rp a g e s 协同工作,包含j s t l 和j s f 。 ( 一- - ) s t r u t s 框架的优缺点 1 优点: ( 1 ) s t r u t s 跟t o m c a t ,t u r b m e 等诸多a p a c h e 项目一样,是开源软件,使开发 者能更深入的了解其内部实现机制; ( 2 ) 设计良好、功能强大的标记库,能够灵活重用,大大提高开发效率; ( 3 ) 页面导航,使系统脉络更加清晰; ( 4 ) 具有采用m v c 设计模式的所有可获得的特性和优点; 1 2 基予s t r u t s 和h i b e r n a t e 的管理信息系统研究与实瑰 ( 5 ) 提供了个方便的方法对应用程序的信息进行国际化; ( 6 ) 提供了灵活的体制来处理错误和异常。 2 缺点: ( 1 ) 理解和使用框架有一定的难度: ( 2 _ ) 视图部分的精力主要集中在j s p 上,以x m l 等多种元素作为视图实现 的功能,需要进一步加强。 3 2 2j a t o 框架 r ) j a t o 框架的概念 j a t o 应用程序框架是i p l a n e t 应用程序框架的旧名。它是一个成熟的、强大 的,基于j 2 e e 标准的面向于开发w e b 应用程序的应用框架。结合了显示字段、 应用程序事件、组件层次和以页面为中心的开发方法、以及m v c 和服务到工作 者s e r v i c e t o - w o r k e r s 的设计模式等概念。j a t o 可适用于中、大、超大规模的 w e b 应用。但是它也不是一个企业层的应用框架,也就是说它不会直接提供创建 e j b 和w e bs e r v i c e s 等企业层组件的方法,但用它可以构造出访问企业层组件的 客户应用。这个框架功能主要有三部分组成: 1 i p l a n e t 应用框架核心; 2 i p l a n e t 应用框架组件; 3 i p l a n e t 应用框架扩展。 应用框架核心定义了基本接嚣、对象协议、简单组件,以及i p l a n e t 应用框 架程序的最小核心。包括视图简单组件、模型简单组件、请求分发组件和可重用 命令对象。i p l a n e t 应用框架组件利用框架核心定义的基本接墨、协议j 罄组件向开 发者提供高层的重用组件,这些组件既有与特定视觉效果无关的水平组件,也有 适应特定实用环境、提高哥用性焉特意提供酶垂直型组件。 ( 三) j a t o 框架的优缺点 王。优点: ( 1 ) 这种框架的适应范围大,即提供了底层接阴,也有立即可用的组件。 0 对大型的应用支持较好。 2 缺点: 1 3 基于s t r u t s 和h i b e r n a t e 的管理信息系统研究与实现 ( 1 ) 不是业界标准。 ( 劲目前还没有开发工具的支持 ( 3 ) 没有定义网页导航,开发者在视图中自己指定具体的导航u r , 。 3 2 3e n h y d r a 框架 e n d y d r a 是o b j e c t w e b 组织的开源项目,它作为一个应用服务的开发平台, 是基于j 2 e e 标准,建立在j a v a 虚拟机之上的。e n h y d r a 运用了已经在j a v a 中比 较成熟的面向对象的技术来设计它本身的层次结构。 e n h y d r a 应用程序框架分为三个独立的层次:表示层( n ep r e s e n t a t i o nl a y e r ) , 商务层( t h eb u s i n e s sl a y e r ) 、数据层( t h ed a t al a y e r ) 【8 】。 e n h y d r a 提供了很多应用工具,其中最常用的是x m l c ( t h ee x t e n s i b l em a r k u p l a n g u a g ec o m p i l e r ) 和d o d s ( 髓ed a t ao b j e c td e s i g ns m d m ) 。其中x m l 用来建 立一个代替x m l 文档结构的j a v a 对象,d o d s 用来建立数据模型的图形化操作 工具,它把对数据库直接的操作都封装在工具包里面。e n h y d r a 由于其开源项目 的优势,正日益被越来越多的人研究应用,但e n h y d r a 的初始学习曲线有点陡峭, 并且还没有实现完全的松藕合结构。 与s t r u t s 框架相比,s t r u t s 专注于统一控制器的实现和用户提交的表单自动 映射为j a v a b e a n ,使用户提交的请求和数据能够自动获取,减少编程的复杂度。 而e n h y d r a 则专注于开发平台和运行平台的开发。 3 2 4w a f 框架及c o c o o n 框架 w a f 是w e ba p p l i c a t i o na m w o r k 的简称,是s u n 蓝皮书例子程 序中提出的应用框架,实现了m v c 设计模式。它的优势是屏幕导航定义明确, 为框架的扩展提供了广阔的空间,但源码较乱,稳定性和可靠性无保证,只是一 个框架躯干,没有正式的模型层,视图的概念不强,没有模型到视图的定义。 而c o c o o n 是一项x m l 发布框架。允许定义x m l 文档和文档的转换,并最 终生成所需的表示形式,c o c o o n 的核心技术是x s p 。x s p 和j s p 非常相似,都 是基于j a v a 的技术,x s p 实际上就是动态的x m l 文档,是在x m l 文件中嵌入 了动态的数据内容,x s p 分为三种类型:嵌入式的x s p 、嵌入逻辑单的x s p 和 1 4 基予s t r u t s 和h i b e r n a t e 的管理信息系统研究与实现 带t a g l i b 标记库的x s p 。c o c o o n 主要是侧重于视图显示的研究。 类似的w e b 框架还有很多,比如j e t s p e e d ,z o p e ,s p r i n g 等。它们的功能强 弱各不相同,有的是纯w e b 层的框架,而有的可能涵盖到业务逻辑和数据持久 筒 ,石。 通过对上述凡种框架的比较分析可以得出结论,s t r u t s 框架是实现m v c 设 计模式的一个相对成熟的框架,也是一个很有发展空间和发展潜力的框架,因此 本课题的w e b 应用程序开发框架选择使用s t r u t s ,并会对该框架进行深入的研究。 3 3s t r u t s 的体系结构 s t r u t s 的体系结构实现了m v c 设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年牙齿外伤选择题库及答案
- 电路分析期末试卷及答案
- 后期制作考试题及答案
- 互联网创业项目方案
- 公务员面试陪练面试题及答案
- 华夏航空秋招真题及答案
- 公务员面试乱答面试题及答案
- 河钢集团秋招试题及答案
- 广汽集团秋招面试题及答案
- 供应链管理招聘笔试题及答案
- 2025年河北省专技人员继续教育公需课(新课程答案七)
- 浙江赞生药业有限公司年产20亿片(粒)中成药口服固体制剂项目环评报告
- 国家生态安全课件
- 师生交通安全教育:筑牢校园平安防线
- 2025-2030中国酸枣市场供需格局与营销渠道发展趋势报告
- 股骨粗隆间骨折护理疑难病例讨论
- 《资治通鉴》与为将之道知到课后答案智慧树章节测试答案2025年春武警指挥学院
- 2024年广东春季高考语文试题及答案
- T-QASE 005-2024 岸边集装箱起重机设备使用管理和维护保养作业规范
- 招标代理服务投标方案(技术标)
- 2024年金钥匙科技知识竞赛试题及答案
评论
0/150
提交评论