




已阅读5页,还剩68页未读, 继续免费阅读
(计算机科学与技术专业论文)基于struts与hibernate的教师资源管理系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要:随着网络技术的不断发展,w e b 应用系统扮演的角色越来越重要。基 于b s 结构的w e b 应用程序也成为h t e m e t 上使用最为广泛的应用开发技术。在 w e b 技术发展的过程中逐渐产生了大量优秀的设计模式和框架技术,这使得w e b 开发技术得到了突飞猛进的发展。 本文着重对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 ) 。这种框架 模式真正实现了软件设计的“高内聚低耦合 目标,完成逻辑、业务与视图的分 离,极大地提高了软件系统整体解决方案的灵活性、可维护性和可扩展性,实现 应用系统的敏捷开发。 本文论述了架构对一个系统的重要性,同时肯定了分层架构模式的优越性, 并对s t r u t s 和h i b e r n a t e 框架进行了详细研究和分析。s t r u t s 框架为采用m v c 模式 开发分层架构中的w e b 层提供了优秀的解决方案,而h i b e r n a t e 解决了j a v a 对象 和关系数据库之间的阻抗不匹配问题,避免了采用面向关系的j d b c 方法来开发 持久层的缺点。因此,组合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 框架对北京交通大学计算机实验 教学中心的一个子项目教师资源管理系统,进行了详细设计与实现。该系统 是根据计算机基础教学基地自身需求特点设计的,系统可以有效地提高计算机基 础教学基地教师管理的工作效率和质量。 关键词:教师资源管理系统;s t r u t s ;h i b e r n a t e :m v c 分类号:t p 3 1 1 a bs t r a c t a b s t r a c t :w i t ht h ei n c r e a s i n gd e v e l o p m e n to fn e t w o r k s ,w e ba p p l i c a t i o n s p l a ya m o r ea n dm o r ei m p o r t a n tr o l e n ew e ba p p l i c a t i o n sb a s e do nb sh a v eb e c o m e t h em o s tw i d e l y - u s e da p p l i c a t i o n sa n dt e c h n o l o g i e si ni n t e r a c t al a r g en u m b e ro f e x c e l l e n td e s i g np a t t e r n sa n df r a m e w o r k sh a v eb e e np r o d u c e dg r a d u a l l yw i t ht h e d e v e l o p m e n to fw e bt e c h n o l o g i e s ,w h i c hm a k e sw e bt e c h n o l o g i e sd e v e l o pr a p i d l y w ed i s c u s st h el a y e r e da r c h i t e c t u r ei nw e ba p p l i c a t i o n s m v cf r a m e w o r k ( m o d e l - v i e w c o n t r o l l e r ) c o m p l e t e l yr e f l e c t st h eh i e r a r c h i c a ld e s i g ni d e ai nt h ew e b a p p l i c a t i o n s u c haf r a m e w o r ki ns o f t w a r ed e s i g nr e a c h e st h et a r g e to f ”h i 班c o h e s i o n a n dl o wc o u p l i n g ”,a n ds e p a r a t e st h el o g i cl a y e r , b u s i n e s sl a y e ra n dv i e wl a y e r i n d e p e n d e n t l y i tg r e a t l yi m p r o v e so v e r a l l s o l u t i o ni nt h ea s p e c to ff l e x i b i l i t y , m a i n t a i n a b i l i t y , s c a l a b i l i t ya n dc o m p l e t e st h ea g i l ed e v e l o p m e n to fa p p l i c a t i o n s f u r t h e r m o r e ,w ed i s c u s st h ei m p o r t a n c eo ft h eu s i n gf r a m e w o r kf o ras 0 1 a r e s y s t e m , a n ds h o wt h es u p e r i o r i t y o fl a y e r e da r c h i t e c t u r e w ea n a l y z et h es t r u t s f r a m e w o r ka n dh i b e r n a t ei ng r e a td e t a i l s t r u t si sa l le x c e l l e n ts o l u t i o nw h e nw eu s e m v cp a t t e m st od e v e l o pw e ba p p l i c a t i o n sw i t hl a y e r e da r c h i t e c t u r e m e a n w h i l e , h i b e r n a t er e s o l v e st h ep r o b l e m so fm i s m a t c hb e t w e e nj a v ao b j e c ta n dr e l a t i o n a l d a t a b a s e ,a n dd on o tc a u s et h ep r o b l e m sw h i c ha p p e a rw h e nu s i n gr e l a t i o no r i e n t e d j d b cm e t h o d st od e v e l o pp e r s i s t e n c el a y e r h e n c e ,t h ec o m b i n i n go fs t r u t sa n d h i b e r n a t ei sa ni d e a ls o l u t i o no fs y s t e ms t r u c t u r e b a s e d0 nt h ea b o v es t u d i e s ,t h i sp a p e r p r e s e n t sal i g h t - w e i g h ts o f t w a r es t r u c t u r ea n de x p l a i n sh o wt ou s et h es t r u c t u r ei n d e v e l o p i n ga p p l i c a t i o na n dt e s ti tw i t har e a lp r o j e c t f i n a l l y , w ed e s i g n sa n di m p l e m e t so n ep r o j e c t ,w h i c hi st h ec o n s t r u c t u r eo f c o m p u t e re x p e r i m e n t a la n dt e a c h i n gc e n t e r , t e a c h e rr e s o u r c e sm a n a g e m e n ts y s t e m , u s i n gt h ec o m b i n e df r a m e w o r ko fs t r u t sa n dh i b e r n a t e t h es y s t e ms e r v e sf o rt h e c o m p u t e rf o u n d a t i o n st e a c h i n gu n i ti nb e i j i n gj i a o t o n gu n i v e r s i t y t h es y s t e mi s d e s i g n e dt oi m p r o v ee f f i c i e n c ya n dq u a l i t yi nt e a c h e rm a n a g e m e n t ,b a s e do nt h e c h a r a c t e r i s t i c so ft h ec o m p u t e rf o u n d a t i o n st e a c h i n gu n i t k e y w o r d s :t e a c h e rr e s o u r c e sm a n a g e m e n ts y s t e m ;s t r u t s ;h i b e m a t e ;m v c c l a s s n 0 :t p 31 1 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 躲曩研期:川年日 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 签字r 期川年 导师签名: 签字日期: 广 每e 乒心 硅 少辱诤 k 下 名晰 箭阡,月 厂 致谢 本论文是在我的导师王移芝教授的悉心指导下完成的,王移芝教授严谨的治 学态度和科学的工作方法对我产生了极大的影响。从导师身上,我学到的不仅是 知识,还有做人与治学的道理。王老师悉心指导我们完成了实验室的科研工作并 顺利完成毕业论文的撰写,在学习上和生活上都给予了我很大的关心和帮助,在 此向王移芝老师表示衷心的感谢。 同时,也感谢计算机基地的陈连坤、周洪利、许宏丽、魏慧琴等各位老师。 在两年的研究生学习中,各位老师给我们提供了和谐、宽松的学习与科研环境, 使我们得到了更快的成长。 在实验室工作及撰写论文期间,王东伟、王嘉树、牛晓菲、陶昆、潘常春、 熊超等实验室同学对我论文研究工作给予了热情帮助,在此向他们表达我的感激 之情。 另外也感谢家人,他们的理解和支持才使我能够在学校专心完成我的学业。 1 绪论 本课题的主要工作是对s t r u t s 和h i b e r n a t e 两种开源框架进行研究,并且基于 这两种框架整合搭建出一个轻量级软件开发框架,进行实际应用项目的开发部署。 本文应用整合后的框架进行w e b 管理信息系统开发,完成计算机实验教学中心建 设项目中的一个子系统,北京交通大学计算机基础教学基地教师资源管理系统的 设计与实现。系统完全按照整合架构的分层结构进行设计与开发。本章主要介绍 课题的研究背景、研究内容、论文组织结构等。 1 1 课题背景 本课题来自于计算机实验教学中心的一个建设项目。为贯彻落实教育部财 政部关于实施高等学校本科教学质量与教学改革工程的意见( 教高( 2 0 0 7 ) 1 号) 的精神,推进高等学校实验教学内容、方法、技术、手段、队伍、管理及实验教 学模式的改革与创新,加强学生实践能力和创新精神培养,北京交通大学计算机 基础教学基地投入大量的人力与物力开展实验教学中心的建设工作。 本课题研究的目的就是设计与实现教师资源管理系统,实现对计算机基础教 学基地教师资源的信息化管理和自动化管理。传统的管理方式是以人为主体的人 工操作方式,虽然管理人员投入了大量的时间和精力,然而由于人工的能力是有 限的,所以管理工作难免会出现局限性,或带有个人的主观性和片面性。本课题 就是要设计与实现一个基于w e b 技术的管理信息系统,真正实现对教师资源的信 息化管理。 所谓管理信息系统( m i s ,m a n a g e m e n ti n f o r m a t i o ns y s t e m ) ,是计算机技术在 管理领域的一门实用技术。管理信息系统就是以人为主导,利用计算机硬件、软 件、计算机网络以及其他办公设备,进行各类信息的收集、加工、储存、更新和 维护。管理信息系统将信息管理工作统一化、规范化、信息化,极大地提高了管 理的效率j 。 纵观m i s 的发展过程,随着计算机技术以及i n t o - n e t 的飞速发展,m i s 也经过 了两个主要的发展阶段:第一阶段,采用c s ( 客户机朋艮务器) 计算模式;第二阶段, 采用基于i n t e m e t 的b s ( 汶0 览器服务器) 计算模式。近年来,随着网络技术的迅速 发展和j 2 e e 平台的广泛应用,基于b s 的多层w e b 体系结构逐渐发展起来,b s 体系结构猛烈冲击c s 体系结构,大有取而代之的趋势。但是,在很多传统的b s 的系统中,开发人员都采用j s p + j a v a b e a n 来完成客户端和服务器的交互,在这种 模式中,利用j a v a b e a n 实现j a v a 代码的封装,通过j a v a b e a n 访问业务对象,进 行业务处理,使页面和业务对象分离,由j s p 页面全权负责处理输入请求和页面 间的跳转,整个系统的核心就是j s p 组件。这种开发方式存在的问题: j s p 页面不仅包含大量h t m l 代码,还嵌入了许多j a v a s e r i p t ,导致页面代码混 杂难懂,使得修改和重用非常困难。 ( 1 ) 由于j s p 页面要动态显示数据,处理业务逻辑以及控制页面流程,系统 的运行效率和安全性有所降低; ( 2 ) 系统各个组件间的耦合度非常高,不利于系统的维护与扩展。 总之,在这些传统的w e b 管理信息系统开发中存在以下问题,如程序可重用 程度低、维护工作繁琐、应变能力较弱等。 无论是基于桌面的传统应用程序开发还是基于i n t e r n e t 的w 曲应用程序开发, 随着软件规模的日益庞大、业务逻辑日益复杂,系统的可维护性和可复用性都具 有举足轻重的作用。在一个软件的生命周期中,软件维护是此生命周期中持续时 间最长的阶段;西方发达国家的一个软件项目在其生命周期内,花在维护上面的 资金是花在原始开发上面的资金的两倍【2 】。同时,可复用性和可扩展性在一定程度 上也反映了可维护性,因为在系统的后期维护中,很多工作是完成扩展和修改现 有系统。所以,如何提高一个软件系统的可维护性、可复用性和可扩展性是当前 软件系统设计与开发时要解决的核心问题。 分析造成一个系统后期维护困难、可重用性和可扩展性低的原因,其中最主 要的就是在设计系统时没有对系统的架构设计给以足够重视。一个项目开始之初 的系统构架决定了一个项目的成败。好的系统架构设计既利于维护,也有利于开 发过程中的事务处理。架构好比是系统的骨架,如果架构设计不好,系统的“生 命力也不是很好,那么如何才能设计出一个良好的系统架构呢,本文对此问题 进行了研究p j 。 在j a v a 社区,开源项目进行得十分活跃,许多优秀的开源框架更是为我们提 供了帮助,从框架的定义中我们可知框架是面向特定领域的可重用性设计,s t r u t s 是面向w e b 层开发应用的框架,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 应用中的开发方 法。 2 1 2 课题研究的意义 实验教学中心的建设,目的是实现高等学校实验教学的改革与创新,加强学 生实践能力和创新精神培养。其中,很关键的一点就是创新型教师队伍的培养。 所以,建设教师资源管理系统,挖掘每一位教师自身的潜能,实现教师资源高效 利用和合理化管理也是至关重要的。所以,我们要完成实验中心的建设,有必要 建设一个结构合理的、高效的、方便易用的教师资源管理系统。 伴随网络技术的发展,基于w e b 的管理信息系统的应用也越来越广泛。但是 在w e b 体系结构的设计中,仍然存在程序可重用程度低、维护工作繁琐、系统升 级困难等不足。在软件生命周期中,软件维护是此生命周期中持续时间最长的阶 段。可复用性和可扩展性在一定程度上也反映了可维护性,因为在系统的后期维 护中,很多工作是扩展和改进现有系统。分析造成一个系统后期维护困难、可重 用性和可扩展性低的原因,其中最主要的就是在设计系统时没有对系统的架构设 计给以足够重视。一个项目开始之初的系统构架决定了一个项目的成败。框架是 可重用的、“半成品”应用程序,可以在它的基础上开发特定的应用程序,框架强 调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周 期,提高开发质量。 本课题研究的目的就是:通过一些开放性组织所提供的免费软件,即开源软 件或称为开源技术,来整合构建开发平台。结合s t r u t s 框架和h i b e r n a t e 数据持久 性机制来整合构建一个轻量级w e b 应用框架,并利用此框架来开发和部署一个基 于b s 结构的教师资源管理系统,从而为使用开源技术来建构企业级应用系统提 供一种可行方案和借鉴。整合构建这种开发框架( s t r u t s + h i b e r n a t e ) 的目的有四个: ( 1 ) 实现快速丌发。s t r u t s 框架是一个成熟的框架,已经在众多的系统中,如 银行、电信行业得到广泛应用。 ( 2 ) 低成本构建企业级应用。本系统建构过程中我们尝试使用免费的开源软 件及框架来开发企业级应用,使整个开发成本降到最低。 ( 3 ) 易维护、易扩展。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 的人员会越来越多,所以系统今后比较容易维护并且可以根据 业务需要进行扩展。 ( 4 ) 本课题的研究成果是建设计算机实验教学中心,实现其中的一个信息化 管理系统教师资源管理系统,实现教师资源的信息化管理。作为实际应用系 统,要求设计合理、便于维护和使用方便。 1 3 本文所做工作 本课题研究目的就是建设计算机实验教学中心,完成教师资源管理系统的设 计与实现。由于计算机基础教学基地的特殊性,系统维护管理都是由在读的研究 生负责,学生的流动性非常大,维护人员很难确定不变,因此管理维护工作也变 得非常艰难。所以,这就对软件系统的架构设计提出了很高的要求,要求开发的 系统使用简单、方便维护和易于扩展。鉴于以上情况,本文利用一些优秀的开源 软件对系统架构进行设计,研究基于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 框架的整合应用。 本文最主要的研究内容为基于s t r u t s 和h i b e r n a t e 框架的轻量级整合架构技术 以及基于此架构的教师资源管理系统的设计与实现。本文主要工作为以下三个方 面: ( 1 ) 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 两个开源架构的分析与研究,利用两个框架各自的 优势,提出一个整合s t r u t s 和h i b e r n a t e 框架的轻量级软件架构方案,并对此架构 进行了详细设计。整合后的开发框架,系统藕合性都降到了最低,实现了层与层 之间的独立。所以,系统开发的灵活性、可维护性和可扩展性也得到了很大的提 高。 ( 2 ) 基于整合架构的教师资源管理系统的设计与实现 对教师资源管理系统的设计与实现是本文的重中之重,这一部分的主要工作 完成三个方面:首先,对系统的总体设计目标进行分析,并做出详细的设计目标 和需求分析报告;其次,根据需求分析对系统的组织结构以及数据库进行详细设 计,并撰写系统设计说明书;最后,对系统的开发平台、运行环境、架构实现、 功能逻辑实现等方面作详细阐述。 ( 3 ) 黑盒测试与专业工具测试相结合。 作为一个w e b 应用系统,系统测试是一个重要的环节。本文着重从功能与性 能两个方面测试,分别采用了黑盒测试法与专业工具测试法。对系统功能采用黑 盒测试法进行测试,以检验系统功能的正确性与完整性;对系统性能采用专业的 性能测试工具s i l k p e r f o r m e r 进行测试,完成负载测试与压力测试。 1 4 本文组织结构 全文共分为六章,各章节的主要内容如下: 第一章,介绍课题背景、研究意义,并简要介绍本文所做的工作。 4 第二章,对系统相关技术以及架构进行研究。主要包括以下几个方面:( 1 ) 分 析了j a v a 企业级w e b 应用的分层架构技术,以及分层架构的优势;( 2 ) 对m v c 设 计模式进行了简单介绍并做出分析,还提出了m v c 两种典型模型,并且对两种模 型各自的优势进行了分析比较;( 3 ) 着重对教师资源管理系统开发的两种框架技术 s t r u t s 和h i b e r n a t e 工作机理进行分析,并且充分利用两种框架各自的优势条件整 合形成一个轻量级的开发框架。 第三章,对应用项目教师资源管理系统的设计目标以及需求分析作了详细阐 述;从功能模块设计、数据库结构设计、开发架构设计等方面对系统进行详细设 计。 第四章,首先介绍了系统的开发平台及运行环境:然后对系统架构的表示层、 控制层、业务层和持久层实现和功能模块实现作了详细说明。 第五章,对系统测试方式以及测试结果进行说明。 第六章,本论文总结以及工作展望 5 2 系统设计相关技术及架构研究 2 1 企业级j a v aw e b 的分层架构研究 随着j a v a 技术以及网络分布式对象技术的飞速发展,和在全球经济一体化的 背景下,基于b s 模式的w e b 企业信息系统已经得到广泛应用。但是构建一个结 构合理、易于使用、易于维护的企业级w e b 系统却不是一件十分容易的事情。这 需要在实践当中不断的摸索、总结,找到一种高效的设计模式和技术手段来实现。 2 1 1w e b 应用的分层架构 在构建一个w e b 应用时需要考虑很多问题,比如:在哪里处理用户交互;在 哪里处理业务逻辑;在哪里对应用数据进行持久化:以及怎样选择这些层的实现 技术和设计方案才能达到各层间的松散祸合并确保应用具有良好的扩展性等。所 以,对于一个实际应用来说,架构方案和实现技术的选择就显得尤为重要【3 1 。 软件工程中我们提倡一个软件应该是“高内聚,低偶合”,因为满足这种的软 件才会具有易于控制、扩展、维护等优点【2 】,而分层的目的就是对应用的逻辑功能 进行划分,使每层在完成自己功能的同时,不影响其他层的实现。分层模式在现 实生活中很多方面都有体现,如我国古代的封建等级制度、现有公司的企业管理 体制等,所以分层设计是一个很好的架构方案。 基于w e b 的分层架构根据侧重点不同有多种分层方式,通常被分为四个层次: 表示层、业务逻辑层、持久层和数据库层。通过分层,可以降低系统各部分之间 的耦合程度,有利于开发人员的分工,增加系统的可维护性及可扩展性【8 】。 ( 1 ) 表示层 提供用户交互接口,对用户的请求做出响应,实现技术有多种。 ( 2 ) 业务逻辑层 实现各种业务逻辑功能,是应用的核心所在,在j a v a 中常用j a v a b e a n s ,e j b 等技术。 ( 3 ) 持久层 实现数据访问细节,提供业务数据的保存、更新、删除和查询等操作。 ( 4 ) 数据库层 完成业务数据的存储和管理功能,常用的有:o r a c l e 、s q l s e r v e r 、d b 2 和m y s q l 等。 6 将系统进行如上的分层,从理论上可以让每一层各司其职,表示层提供友好 的用户交互界面、业务层处理具体的业务逻辑、持久层完成数据库的读取存储。 将一个复杂的应用领域细分成诸多最小单元,然后进行串联、组合,使得在实现 一个应用领域的过程中,最小单元达到最大复用。 2 1 2w e b 分层架构的优势 分层架构模式把应用系统组织成一个层次结构,每一层为上层服务,同时也 作为下层的客户端( 使用下层的功能为本层服务) 。通过这种分层思想,允许将一个 复杂问题分解成一个层堆栈的实现。由于每一层最多只影响两层,同时只要给相 邻层提供接口,允许每层用不同的方法实现,因此为软件重用提供了强大的支持, 同时也有利于系统以后的维护和扩展【s 】。 分层架构模式是最常用的一种软件体系架构模式,该模式具有以下优点: ( 1 ) 层次的复用性,如果每个层次有很好的抽象接口,那么它可以被其他环 境复用。 ( 2 ) 支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递 增的步骤进行分解,使系统更容易模块化。 ( 3 ) 支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变 最多影响相邻的上下层。 ( 4 ) 可替换性,因为独立的层次设计很容易被功能相同的模块替换。 2 2m v c 架构理论 2 2 1m v c 设计模式概述 为了达到软件设计的“高内聚,低耦合 的目标,w e b 开发应用都采用一种 易于延展、易于分配资源的模式,应用最广泛的就是m v c 分层架构模式【9 】。 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 则是控制器。使用m v c 的目的是将m 和v 的 实现代码分离,从而使同一个程序可以使用不同的表现形式【1 0 】。 模型一视图一控制器( m v c ) 是在八十年代发明的一种软件架构模式,至今 已被广泛使用。最近几年被推荐为s u n 公司j 2 e e 平台的架构模式,并且受到越来 越多的开发者的欢迎。 7 ( 1 ) 模型( m o d e l ) 模型就是业务流程状态的处理以及业务规则的制定。业务流程的处理过程对 其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业 务模型的设计可以说是m v c 最主要的核心。目前,流行的e j b 模型就是一个典 型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利 用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设 计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就 可以专注于业务模型的设计。m v c 设计模式告诉我们,把应用的模型按一定的规 则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽 象与具体不能隔得太远,也不能太近。m v c 并没有提供模型的设计方法,而只告 诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象 编程来做比喻,m v c 定义了一个顶级类,告诉它的子类你只能做这些,但没法限 制你能做这些。这点对编程的开发人员非常重要。 ( 2 ) 视图( v i e w ) 视图是用户看到并与之交互的界面。对老式的w e b 应用程序来说,视图就是 由h t m l 元素组成的界面,在新式的w e b 应用程序中,h t m l 依旧在视图中扮演 着重要的角色,但一些新的技术已层出不穷,它们包括f l a s h 和象x h t m l , x m l x s l ,w m l 等一些标识语言和w e bs e r v i c e s 。 如何处理应用程序的界面变得越来越有挑战性。m v c 一个大的好处是它能为 你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这 些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数 据并允许用户操纵的方式。 ( 3 ) 控制器( c o n t r o l l e r ) 控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击w e b 页面中的超链接和发送h t m l 表单时,控制器本身不输出任何东西和做任何处理。 它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来 显示模型处理返回的数据。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用 户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都 应该反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化 通知所有的视图,导致显示的更新。这实际上是一种模型的变化一传播机制。模型、 视图、控制器三者之间的关系和各自的主要功能,结构如图2 1 所示【1 0 】。 8 方法调用 图2 一l 2 2 2m v c 设计模式的优点 - - 事件 m v c 主要功能图 使用m v c 设计模式开发应用可以带来很多的好处,其优点主要表现在以下几 个方面【1 3 】: ( 1 ) 设计清晰:在m v c 设计模式下,应用清晰的分为模型、视图和控制器三 部分,三部分分别对应业务逻辑、用户界面、用户请求处理和数据同步。这种对 应功能模块的划分有利于选择重点进行设计和编写代码,并且不同功能的代码不 会混在一起,不会引起代码混乱。 ( 2 ) 模块、设计和代码可重用:m v c 作为模块化的体系,其中任何组件或者 模块只要接口适合都不会因为本身的改变而影响其他的模块。可重用的组件降低 了项目的开发成本。 ( 3 ) 可维护性高:表示层和业务层分离,可以方便地更改表示层代码而不用 重新编译模型和控制器代码,使得w e b 应用更易于维护和修改。 ( 4 ) 功能强大的用户界面:用户界面与模型方法调用组合起来,发送给模型 的“标准 命令,都是由单个用户行为触发的,这样就使得程序可以选择更加清 晰友好的界面呈现给客户端。 ( 5 ) 有利于软件工程化管理:在m v c 设计模式下,软件开发人员分别负责各 自部分,比如,软件的开发人员和网页的设计者之间就可以有明确的角色分工, 这样有利于项目的管理和代码的维护。 9 2 2 3m v c 开发模式的两个m o d e l 在m v c 设计模式的发展过程中,主要经历了两个大的阶段,也就是人们常说 的在w e b 层开发中存在的两大开发模式:m o d e l l 和m o d e l 2 。这两者的差别就是 对采用j s p 技术构成w e b 应用的不同模型的描述 1 0 】。 ( 1 ) m v cm o d e ll m o d e l l 的基础是j s p 文件,j s p 从h 丁r p 请求中取得参数,调用所需的业务 逻辑,处理h t t p 对话,然后生成h t m l 页面。一个完整的m o d e l l 项目包括一 组j s p 文件( 这些文件大部分是彼此独立的) 、一组所需的j a v a 类和其他组件。 m o d e l l 主要的优势就是简单,所以在进行快速和小型应用的开发时有很大的优势。 但m o d e l l 当中u i 图形用户界面端j s p 文件罩夹杂着大量的j s p 脚本和h t m l 代 码以及一些j a v a s c r i p t 脚本,m o d e l l 中业务逻辑和显示逻辑混合在j s p 页面中而 没有进行抽象和分离。从工程化的角度考虑,表现层与业务层的代码揉和在一起, 使得文件的结构混乱,可读性极差。所以,这就加大了程序段调试与维护的难度。 对于大型的w e b 应用开发要求就不能满足了,不利于应用系统的扩展和更新,也 不利于应用系统业务的重用和改动,如下图2 2 所示。 j s p 页面 客 数据库 户 一 ( d a t a b a s e ) 端 图2 2m v c m o d e l l ( 2 ) m v cm o d e l 2 m o d e l 2 是在m o d e l l 的基础上进行了改进,将原来的表现层与业务层分开, 增加了s e r v l e t ,在此模型当中s e r v l e t 作为一个处理控制中心。该模型的核心结构 就是j s p + s e r v l e t + j a v a b e a n s ,如图2 3 所示。模型中结合了j s p 与s e r v l e t 技术, 充分利用了j s p 和s e r v l e t 两种技术的优势。这个模型使用j s p 技术来表现页面, 使用s e r v l e t 技术完成大量的事务处理,使用b e a n 来存储数据。s e r v l e t 用来处理 1 0 请求的事务,充当一个控制者的角色,并负责向客户发送请求,它创建j s p 需要 的b e a n 和对象,然后根据用户请求的行为,决定将哪个j s p 页面发送给客户。 m o d a l 2 实现了j a v a 软件工程师与h t m l 用户界面设计者工作的分离,使他们分 别工作于他们所负责的部分。各自功能的改变并不会影响对方的工作,应用的部 分改变并不强求其他部分也跟着发生改变,h t m l 开发人员可以在改变程序的外 观时,并不需要改变后端s e r v l e t 的工作方式。 这是一种突破性的软件设计方式,它清晰地分离了显示和内容,明确了角色 定义以及开发者与网页设计者的分工。把应用逻辑、处理过程和显示逻辑分成不 同的组件实现,弥补了m o d e l l 的不足。 2 3s t r u t s 框架理论 2 3 1s t r u t s 框架概述 图2 - 3m v c m o d a l 2 s t r u t s 是a p a c h e 基金会j a k a r t a 项目组的一个o p e ns o u r c e 项目,它采用m v c 模式,能够很好地帮助j a v a 开发者开发w e b 应用程序,和其他的j a v a 架构一样, s t r u t s 也符合面向对象设计思想,将m v c 设计模式“分离显示逻辑和业务逻辑 的能力发挥得淋漓尽致。s t r u t s 框架的核心是一个弹性的控制层,基于如j a v a s e r v l e t s ,j a v a b e a n s ,r e s o u r c eb u n d l e s 与x m l 等标准技术,以及j a k a r t ac o m m o n s 的一些类库。s t r u t s 有一组相互协作的类( 组件) 、s e r v l e t 以及j s pt a g l i b 组成。基 于s t r u t s 构架的w e b 应用程序基本上符合m o d e l 2 的设计标准,可以说是一个传统 m v c 设计模式的一种变化类型【1 2 】。 s t r u t s 使用s t r u t s 框架可以减少使用m v c 架构模式来开发w e b 应用的时间。 s t r u t s 其开源性,使开发者能更深入的了解其内部实现机制。 除此之外,s t r u t s 的优点主要集中体现在两个方面:t a 酉i b 和页面导航。t a g l i b 是s t r u t s 的标记库,应用灵活,能大大提高开发效率。另外,就目前国内的j s p 开 发者而言,除了使用j s p 自带的常用标记外,很少开发自己的标记,或许s t r u t s 是一个很好的起点。 关于页面导航,将是今后的一个发展方向,事实上,这样做使系统的脉络更 加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期 的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现 得更加明显。 2 3 2s t r u t s 关键类及其调用关系 s t r u t s 框架中几个相互协作的类,主要包括a e t i o n s c 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 ,各主要类的作用如下【1 3 】: ( 1 ) a c t i o n s c r v l e t 类: 它是s t r u t s 的命令部分,是框架的核心。a c t i o n s c r v l c 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 。s t r u t s 的控制器通过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 ,将事件映射到某类的一个s c r v l e t 。在创建w e b 项目时,程序员将 扩展a c t i o n 和a c t i o n f o r m 来解决特定的问题。配置文件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 如何使用这些扩展的类。 ( 2 ) a c t i o n f o r m 类: 它维护w e b 应用程序的会话状态。a c t i o n f o r m 是一个抽象类,必须为每个表 单输入模型创建该类的子类。输入表单中的数据能够直接从请求流中提取出来, 并封装到a c t i o n f o r m 类中,这样就省去了很多繁杂重复的r e q u e s t g e t p a r a m e t e r o 方法的调用,直接应用a c t i o n f o r m 对象进行调用。 ( 3 )a c t i o n 类: 它是业务逻辑的一个包装。但是a c t i o n 要求控制应用程序的流程,而不应该 控制应用程序的逻辑。尽量将业务逻辑放在单独的包中或放在b e a n 中,这样可以 提供更大的灵活性和可复用性。 ( 4 ) a c t i o n m a p p i n g 类: 它包含有关特定事件如何被映射到特定a c t i o n 类的信息。输入事件通常在 h t t p 请求表单中发生,s e r v l e t 容器将h t t 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 确定控制器调 用哪个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 s e r v l e t 通过e x e c u t e ( ) 方法将a c t i o n m a p p i n g 1 2 传递给a c t i o n 类。这样就使a c t i o n 可访问用于控制流程的信息。 以上是对s t r u t s 框架中的几个关键类的功能作用分析,他们之间的相互调用关 系如图2 4 所示。 图2 _ 4s t r u t s 中主要类的调用关系 2 3 3s t r u t s 体系结构 s t r u t s 是m v c 的一种实现,它将s e r v l e t 和j s p 标记( 属于j 2 e e 规范) 用 作实现的一部分。s t r u t s 继承了m v c 的各项特性,并根据j 2 e e 的特点,做了相 应的变化与扩展。s t r u t s 的体系结构与工作原理如下图2 5 所示【15 1 。 图2 - 5s u - u t s 体系结构 从图3 1 中我们可以知道,s t r u t s 的体系结构包括模型( m o d e l ) ,视图( v i e w ) 和控制器( c o n t r o l l e r ) 三部分,符合m v c 设计模式。 下面让我们从m v c 的模型、视图、控制器角度来看看s t r u t s 的体系结构与工 1 3 作原理: ( 1 ) 从模型( m o d e l ) 角度 在s t r u t s 的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态 的操作( 事务逻辑) 。内部状态通常由一组a c t i o n f o r mb e a n 表示。根据设计或应 用程序复杂度的不同,这些b e a n 可以是自包含的并具有持续的状态,或只在需要 时才获得数据( 从某个数据库
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 济南市2024-2025学年七年级下学期语文期中模拟试卷
- 济南市2025-2026学年八年级下学期语文期末测试试卷
- 电路实训安全知识培训课件
- 高速公路收费员安全课件
- 电芯安全知识培训总结
- 电脑详细知识培训课件
- 2025年通信安全员ABC证考试题库
- 电脑知识培训教程中级题库课件
- 高考文言文特殊句式
- 电脑厂上班基本知识培训课件
- GB/T 2820.5-2025往复式内燃机驱动的交流发电机组第5部分:发电机组
- 呼吸机管路设计与应用
- 2025-2030年中国黑胶唱片行业市场现状供需分析及投资评估规划分析研究报告
- 马工程《教育学原理》核心框架解析
- 采石场人员管理制度
- 2025年湖北省高考物理试卷真题(含答案解析)
- 小学生无故旷课问题
- 2024年秋季云南高中学业水平合格考历史试卷真题(含答案详解)
- 中国抗癌协会神经内分泌肿瘤诊治指南(2025年版)解读
- T/CSMT-YB 006-2023精密数字温度计性能测试与评价方法
- DB31/ 653-2012通信基站空调能效限定值
评论
0/150
提交评论