(计算机应用技术专业论文)基于mvc的教务管理系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于mvc的教务管理系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于mvc的教务管理系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于mvc的教务管理系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于mvc的教务管理系统的研究与实现.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

太原理工大学硕士研究生论文 基于m v o 的教务管理系统的研究与实现 摘要 随着高校招生规模的不断扩大,高校教务管理工作就越来越成为高校 日常管理工作的重要组成部分,教务管理的信息化,也随着计算机技术的发 展,在不断地完善提高。教务管理信息的多样化和数据资源的复杂性,都 对教务管理软件的实现模式提出了很高的要求,而基于w e b 的传统的软件 架构已经不能满足软件设计的要求,很多新兴技术的发展和应用正在不断 地改善传统的开发设计架构。本文结合教务管理的需要和当前比较先进的 设计思想,利用m v c 设计模式进行设计,并对该设计模式进行了改进,加 入了数据持久层的实现。 传统的教务管理软件多采用a s p 、j s p 等服务器脚本语言来进行开发, 这种开发模式最大的优点就是实现比较简单,但同时它将系统的业务逻辑 层与表示层混合在一起,系统的重用性、可移植性较差,进一步维护的工 作量会很大,不适宜较大规模系统的软件开发。本文则采用当今很流行的 m v c 设计模式,并利用成熟的开源框架s t r u t s 来实现这一设计思想,这样 将整个w e b 应用建立在一个成熟的应用框架上,会给系统的一些基本功能 框架的实现带来方便,同时将系统的业务逻辑层的实现和表示层分开。另 外在传统的m v c 模型基础上引入数据持久化技术,利用当前很强大的 h i b e r n a t e 持久化框架来实现m v c 中的m o d e l 模块,也就是在业务层和数 据库之间加入了一个数据持久层来进一步减少系统各个模块之间的耦合。 太原理工大学硕士研究生论文 从以上可以看出,这些设计思想都将克服传统设计的缺点,更加符合教务 软件开发的要求。本文对教务系统的各个功能子模块进行了需求分析,主 要实现了教务管理中学生选课子系统,其中充分体现了该文的设计思想和 方法。 另外,教务管理数据库中长期积累了大量的历史数据,本文还探讨了 利用数据挖掘技术对这些数据进行去噪、整理,进而提取其中隐藏的有用 信息,来支持和指导以后的相关决策。我们利用教务的学生成绩数据库, 采用数据挖掘算法中常用的决策树技术来得出课程之间的相关性信息,来 更加合理地指导学生的选课和教务中的课程安排工作。 关键词:i i i v c ,数据持久化,s t r u t s ,o r m ,决策树 太原理i :大学硕士研究生论文 r e s e 脚r c ha n di m p l e m 匝n 丑盯i o no ft e a c h i n g m a n a ( 珥m 匝n ts y s t e mb a s e do nl v l v c a b s t r a c t w i t ht h en u m b e ro fs t u d e n t s i n c r e a s i n g a n dt h ec o m p u t e rt e c h n o l o g y d e v e l o p p i n gf a s t ,c o l l e g et e a c h i n gm a n a g e m e n ti sb e c o m i n gm o r ea n dm o r e i m p o r t a n t ,a n d t h ei n f o r m a t i z a t i o no f c o l l e g et e a c h i n gm a n a g e m e n t i s d e v e l o p p i n gw e l l s n i c et h ei n f o r m a t i o nr e l a t e dt oc o l l e g et e a c h i n gm a n a g e m e n t i sv e r ym u l t i p l ea n dt h ed a t ai sv e r yc o m p l e x , t h er e q u i r e m e n tt ot h ed e s i g n m o d eo fc o l l e g et e a c h i n gm a n a g e m e n ts o 氐v a r ei sh i g h , w h a t sm o r e ,t h e t r a d i t i o n a lw e bd e s i g nm o d ec a nn e v e rm e e tt h er e q u i r e m e n t c o m b i n e dw i t h t h es i t u a t i o no fc o l l e g et e a c h i n gm a n a g e m e n ta n dt h ep r e s e n ta d v a n c e dd e s i g n m e t h o d t h et h e s i sd e v e l o p st h es o r w a r eb a s e do nm v cm o d e l 埘t l la d d i n ga d a t ap e r s i s t e n c em a n a n g e rl a y e r , a n da l s oa p p l i e st h ed a t am i n i n gt e c h i q u e si n t o t h es o f e t w a r e t h et r a d i t i o n a lc o l l e g et e a c h i n gm a n a g e m e n ts y s t e mw a sa l w a y sd e v e l o p e d b yu s i n ga s p 、j s po ro t h e rs e r v e rs c r i p t s ,s i m p l ep r o g r a m m i n gp r o c e s si s i t s b i g g e s ta d v a n t a n g e ,b u ti t sb u s i n e s sl o g i c a ll a y e ra n dp r e s e n t a t i o nl a y e r a r e m i x e dt o g e t h e r , w h i c hm a k e st h er e u s eo rt r a n s p o r to ft h es o f t w a r ed i f f i c u l t t o o v e r c o m ea b o v ed i s a d v a n t a g e s ,w eh e r ed e s i g n sa n dd e v e l o p st h ec o l l e g e i i i 太原理_ 丁大学硕士研究生论文 t e a c h i n gm a n a g e m e n ts y s t e mb ya d o p t i n gm v cm o d e l a n ds t r u t sw e b f r a m e w o l - k ,w h i c h n o t o n l y m a k e st h eb u s i n e s sl o g i c a ll a y e ra n dt h e p r e s e n t e n t a t i o nl a y e rs e p a r a t e dc l e a l y , b u ta l s os i m p l i z e st h ep r o g r a m m i n g p r o c e s ss n i c ei tb a s e so ns t r u t sam a t u r ew e bf r a m e w o r k t om a k et h el a y e r s t r u c t u r eo ft h es o f t w a r em o r ec l e a r l y , w ei n t r o d u c e san e wd a t ap e r s i s t e n c e m a n a g e rl a y e rb a s e do nh i b e r n a t ef r a m e w o r ki n t ot h es y s t e mb e t w e e nt h e b u s i n e s sl o g i c a ll a y e ra n dt h ed a t a b a s e a l lo ft h e s em a k et h en e wd e s i g nm o d e l w ed i s c u s s e da b o v em o r es u i t a b l et ot h ec o l l e g et e a c h i n gm a n a g e m e n ts y s t e m i nt h i st h e s i s ,w ei n t r o d u c es e v e r a lm a i ns u b s y s t e m sg e n e m l l y ,a n dm a i n l y d e s i g na n dc f l l t yo u t t h es e l e c t i n gc o u r s es u b s y s t e mt op r e s e n t st h em a i nd e s i g n m e t h o d i na d d i t i o n , t h e r ea r eh u g eh i s t o r i c a ld a t ai nc o l l e g et e a c h i n gd a t a b a s e ,i n o r d e rt of i n do u ts o m eu s e f u li n f o r m a t i o nh i d d e ni nt h ed a t a b a s et h r o u g h r e m o v i n gn o s i ea n dc l e a n i n gu p ;t h et h e s i st r i e st oi n t r o d u c ed a t am i n i n g t e c h n i q u e st ot h es y s t e m t h et h e s i su s e sm i c r o s o f td e c i s i o nt r e ea l g o r i t h mt o g e ts o m ei n f o r m a t i o no f t h er e l a t i o n s h i pa m o n gt h ec o u r s e sb a s e do nt h es t u d e n t s c o r ed a t a b a s e ,w h i c hw i l lb eag o o dr e f e r e n c ef o rl a t e rr e l a t e dc o l l e g et e a c h i n g d e c i s i o n k e yw o r d s :m v c ,d a t ap e r s i s t e n c e ,s t r u t s ,o r m ,d e c i s i o nt r e e i v 声明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导下。 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论文 不包含其他个人或集体已经发表或撰写过的科研成果。对本文的研究 做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的 法律责任由本人承担。 论文作者签名:麴玉玉e t 期:趔:量:驾 关于学位论文使用权的说明 本人完全了解太原理工大学有关保管、使用学位论文的规定,其 中包括:学校有权保管、并向有关部门送交学位论文的原件与复印 件;学校可以采用影印、缩印或其它复制手段复制并保存学位论文: 学校可允许学位论文被查阅或借阅;学校可以学术交流为目的。 复制赠送和交换学位论文;学校可以公布学位论文的全部或部分内 容( 保密学位论文在解密后遵守此规定) o 签名:煎量玉 e t 其i t : 丝盟:墨塑 导师签名:亟丝玺日期:z 望! 竺! 兰z 太原理工大学硕十研究生论文 第一章绪论 1 1 教务管理软件的发展现状 近年来,随着网络技术和教务事业的不断发展,各高校都开始组建自己的校园网, 而且对高校教务管理提出了更高的要求。改变原有的管理模式,运用先进的手段进行管 理,已经成为现在教务管理的必然选择。这样各种针对高校教务管理的应用软件不断 涌现,并且经历了从单机版到网络版的转化。网络教务管理软件的发展更加有力地提高 了教务管理水平,借助校园网网络环境构建敦务管理信息系统,可以合理地利用i n t e m e t 的网络资源和w e b 跨平台数据访问能力,通过网络来进行各种教务、教学信息的交流 和共享,广大师生可以通过浏览器来直接参与教务日常管理。同时,教务管理人员可以 很方便地获取及时、准确、全面的数据和相关信息,将教务工作人员从繁琐的手工劳动 中解放出来,提高工作效率,进而从整体上提高了教务管理水平。然而教务管理信息系 统的设计并不能一劳永逸,由于各高等院校办学层次的不同、类型的不同及各学校的特 点不同,而各不相同,没有统一的标准,也很难建立一个统一的标准,系统的适用性、 通用性很难实现。所以,现在的教务软件的开发设计在向各种流行的设计模式靠拢提高 系统的可移植性和可扩展性的同时,还要考虑到自身教务管理的特点,以便更好地满足 教务管理的需求。 1 2 问题的提出 随着i n t e r a c t 和i n t r a n e t 的快速增长,教务管理的信息化也越来越受关注,高校教务 管理软件的开发也逐渐升温。教务管理工作的复杂性和多元化不仅对软件的开发和设计 提出了很高的要求,而且对软件的维护也提出了很高的要求,这就需要一个很好的w e b 应用系统。 目前,面向w e b 的应用系统的开发技术发展迅速,新技术不断涌现,而教务管理信 息系统的发展与计算机技术的发展密切相关,伴随着计算机技术和w e b 技术的不断发 展,教务管理信息系统经历了单机时代,局域网( 客户机,服务器) 时代和当前的校园网 ( 浏览器服务器) 时代。教务管理系统的业务实现也随着当前招生规模以及教育多样化 1 太原理工大学硕士研究生论文 的发展越来越复杂化,而一个大的w e b 应用系统软件的开发往往是在很多人员根据各自 的任务设计要求采用不同的技术完成的。这样在w e b 开发过程中引入一个完整、规范、 合理的开发模式将会有利于开发人员遵循一个共同的规范来开发设计,有利于人员之间 技术的交流,还会有利于软件的开发、集成和维护。对于高校教务管理软件来说,有具 有自身的特殊特点,由于教学教务管理模式的千差万别,在软件市场上很难找到一款符 合所有管理模式的教学软件,而且高校教务信息的变化比较频繁,后期的维护工作也异 常困难,所以这里将采用时下比较流行的b s 开发模式,这样在客户端只需要一个浏览 器就可以完成教学管理操作,而且采用基于m v c ( v i o d e l v i e w c o n t r o l l e r ) 的s t n a s 框架来 进行软件的开发,能够很好地实现模型与表示层的分离,由控制器来进行流程控制,符 合w e b 应用系统开发的基本要求,也更有利于软件后期的升级和维护。 1 3 论文研究内容 当前计算机技术越来越趋于成熟,各种设计思想不断涌现,m v c 成为适用于各种大 型w e b 应用的架构技术。它的目的就是最大限度地降低系统各部分之间的耦合性,提高 系统的可扩展性,提高代码的重用纠。基于m v c 的j 2 e e 技术的应用更是广泛,本文这 里也将采用s t r u t s 框架来实现上述技术,并以此作为网络教务管理系统的技术解决方案。 本文的主要工作如下: ( 1 ) 详细介绍了m v c 开发模式的设计思想,分析了两种常见的j s p m o d e l 的优缺点, 并介绍了实现m v c 设计思想的s t r u t s 框架,并分析- j s t r u t s 的工作流程,以及数据挖掘技 术的基础知识。 ( 2 ) 以m v c 模型为设计思想,运用s t r u t s 框架来实现网络教务管理系统的开发设计。 本文采用当前比较流行和便捷的b s 模式开发模式采用s t r u t s 框架来实现系统表示层与 业务层的分离,更加利于系统的开发与维护。进一步在系统的业务实现层和数据库之间 加入了数据持久层,使得系统对数据库的访问实现面向对象的设计。简单介绍了数据持 久化技术以及本文实现数据持久层的工具h i b c m a t e 持久化框架。 ( 3 ) 对教务系统进行总体的分析,对教务管理中主要业务进行了分析,并进一步确 定了系统的技术架构。以选课模块的实现为例,说明系统开发设计的流程和具体的业务 实现,介绍了数据库连接和数据持久化的实现,并对h i b e r n a t e 访问数据库部分进行了改 进,将s q l 语句访问和h q l 语句访问结合起来,更加有效的实现数据库访问操作,提高 2 太原理工大学硕士研究生论文 系统的运行效率。 ( 4 ) 在教务管理系统中引入数据挖掘技术,介绍了数据挖掘中应用比较广泛的决策 树算法以,利用学生成绩数据库为基础,利用决策树得出课程之间的关系,来指导学生 在选课过程中更加科学合理地决策。 1 4 本文结构 本文主要研究在j 2 e e 平台下基于m v c 设计模式开发网络教务管理软件w e b 应用程 序的相关技术,在传统的w e b 应用程序开发的基础上,对基本的设计模式进行了改进, 采用五层开发模式来降低系统各个模块之间的耦合性,并通过一个具体模块的实现来说 明各个层次的设计和实现,还提出了数据持久层的实现与技术改进,进一步提高了系统 的运行效率。全文共分为五章:第一章,引言。介绍了课题中提及的教务管理软件的发 展现状,并进一步分析了该类软件开发过程中存在的问题;第二章,系统研发技术。阐 述了m v c 设计模式以及常见的j s p 设计模式,并简单介绍t s t r u t s 这个用来实现m v c 设 计思想的开源项目,另外还对引入的数据持久技术和本文实现这种技术的h i b e r n a t e 持久 框架做了简单的介绍:第三章,教务系统总体设计分析概括分析说明了网络教务管理 的主要业务;第四章,选课模块的实现。通过该模块的实现,来体现整个设计思想。第 五章,决策树技术的应用。介绍了决策树算法,将决策树技术应用到选课中。第六章, 总结语。总结整个设计,并说明不足及进一步改善的方向。 3 太原理工大学硕士研究生论文 第二章系统开发平台和技术 现在的w e b 开发也随着面向对象技术的发展,不仅引进了面向对象的构件,而且这 些构件的设计方法在经过不断地改进和发展后逐渐成型,成为面向对象系统的设计模 式。设计模式关注的是特定设计问题及其解决方案,使用设计模式在系统构件的层次上 实现了重用性,更加优化了w 曲系统的开发设计和维护。本章将介绍m v c 这种目前广泛 应用的设计模式,并介绍了系统开发设计所用到的技术。 2 1i l c 设计模式 2 1 1w c 概念 m v c 是2 0 世纪8 0 年代x e r o xp a r c 为编程语言s m a l l t a l k - 8 0 发明的一种软件设计模 式,迄今已经成为一种成熟的优秀的设计模式。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 c 三个部件中,模型处理的任务最多,被模型返回的数据是中立的, 就是说模型与数据格式无关,这样一个模型能为多个视图提供数据【2 】。因为应用于模型的 绝大多数代码都可以一次编写就可以被多个视图重用,所以减少了相关代码的重复性,提 高了系统开发的效率,也更加便于系统的维护和升级。m v c 通常用于分布式应用系统的 设计和分析,如:大型商业网站、企业信息系统、管理信息系统、决策支持系统等,但 它本身并不局限于某一个特定的领域。m v c 设计模式,晟近几年被推荐为s u n 公司j 2 e e 平台的设计模式。它强制性地把应用程序的输入、处理和输出分开【引。它的三个核心部 件分别是模型、视图和控制器,它们各自处理各自的任务: ( 1 ) 模型封装了应用问题的核心数据、逻辑关系和业务规则,提供了完成问题处理 的操作过程。一方面,模型被控制器所调用;另一方面,模型还为视图获取显示数据提 4 太原理工大学硕士研究生论文 供了相应的访闯其数据的操作。模型是与数据格式无关的,所以一个模型可以为一个或 多个视图提供数据。这样模型一次编写就可为多个视图重用,从而就可以减少代码的重 复性。 ( 2 ) 视图是应用程序的用户界面,实现模块的外观,它是应用程序的外观表现。它 可以访问模型( m o d e l ) 的数据,却不必了解模型的具体情况,同时它也不需要去了解控 制器的具体情况,它只是作为用户输入数据并进行操作的方式和界面。 ( 3 ) 控制器根据用户的输入调用相应的模型和视图去完成用户的需求和相关的操 作。具体地来说:控制器本身不输出任何东西和做出任何处理。它只是接收客户的请求 并进一步决定调用哪个模型构件去处理该请求,并根据处理结果来确定用哪个视图来显 示模型处理之后返回的数据。它们三者之间的关系如图2 1 所示。 2 1 2j s p m o d e l l + 事件 图2 1t p ,c 组件类型的关系乖功能 f i g u r e2 1r e l a t i o n s h i pa n df u n c t i o n so f m v cp a r t s 在使用j a v a 技术建立w e b 应用的实例中,由于j s p 技术的发展,很快这种便于掌握和可 实现快速开发的技术就成y o j 建w e b 应用的主要技术。j s p 页面中可以非常容易地结合 业务逻辑( j s p :u s e b e a n ) 、服务端的处理过程( j s p :s c r i p l e t ) 和h t m l ( ) ,:庄j s p 页面中可 以同时实现客户端显示、业务逻辑和流程控制。从而可以快速地完成应用开发,现在很多 的w e b 应用就是由一组j s p 页面构成的。这种w e b 应用开发系统具有它自身的特点,它的 5 太原理工大学硕士研究生论文 客户机与服务器之间是基于h t t p 协议底层t c p h p 协议的无状态连接,这种连接状态使得 模型很难将改变通知视图;另外它是一种传统的页面到页面的设计方式。这种以j s p 为 中心的开发模型可以称之为m o d e l l ,如图2 2 所示。 这种开发模式在进行快速和小规模的应用开发时有很大的优势,但是从工程化的角 度考虑,它也有一些不足之处: ( 1 ) 应用的实现一般是基于过程的,一组j s p 页面实现一个业务流程,如果要进行改动, 必须在多个地方进行修改,这样非常不利于应用扩展和更新。 ( 2 ) 应用不是建立在模块上的,业务逻辑和表示逻辑混合在j s p 页面中没有进行抽象 和分离,所以非常不利于应用系统业务的重用和改动。 ( 3 ) 随着应用程序功能的不断扩大会加剧系统开发和维护的复杂性,而j s p m o d e l l 的开发模式不利于进行分角色的软件开发,就更加加剧了问题的严重性。 ( 4 ) 调试困难,在调试的过程中必须兼顾j s p 页面,业务逻辑和整体流程。 浏a p p s e i l y f r 览 引罩、v a , b 、1 、- 、, 墨 w e b 服务器应用服务罂和数据库 图2 2j s p 模型1 f i g u r e2 2j s pm o d e l i m o d e l 2 表示的是基于m v c 模式的框架。“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 是提供 应用的处理过程控制( 一般是一个s e r v l e t ) ,通过这种设计模型把应用逻辑、处理过程和显 示逻辑通过不同的组件实现这些组件可以进行相互的交互和重用从而解决了m o d e l l 6 太原理工大学硕十研究生论文 结构中存在的问题。它不仅实现了系统功能模块、显示模块和数据层的分离,而且还提 高了w e b 应用系统的可维护性、可扩展性、可移植性和组件的可复用性,j s pm o d e l 2 的 开发模型如图2 3 所示。 请求( 控制器) s e r v l e t 蒯 览 i实例化 器 一灭 响应 浇j s p 勘h ) i 蟑鬯j 一蟹些! 柚一 w e b 服务器 l : 应用服务器和数据库 斟2 3j s p 模型2 f i g u r e2 3j s pm o d e l m o d e l 2 具备了组件化的优点,从而更易于实现对大规模系统的开发和管理,但是开发 m v c 系统比简单的j s p 开发要复杂许多,同时新东西的引入会带来新的问题: ( 1 ) 基于m v c 组件的方式重新思考和设计了应用结构,原来通过建立一个简单的j s p 页面就能实现的业务,现在变成了多个步骤的设计和实现过程,应用的实现更加复杂了。 ( 2 ) w e b 应用的页面和组件必须在m v c 框架中实现,所以必须进行附加开发工作。 2 1 4w c 开发的优势 经过以上对m v c 开发模式的介绍,以及两种j s p 开发模式的比较,我们对m v c 开发 模式有了一定的认识,这里将进一步介绍说明利用m v c 模式开发的优势,具体表现在以 下几个方面: ( 1 ) m v c 模式很好地解决了软件工程中如何使软件系统各模块之间最大限度地降低 其复杂的耦合关系,以及系统显示逻辑和业务逻辑之间的矛盾( 即用户界面的多变性和 业务逻辑的相对不变性) ,可以尽可能地提高系统的可维护性和可扩展性。 ( 2 ) 模型、视图、控制器三者的相互独立,当我们改变其中一部分时,其他两部分 不会受到影响,进而构造出良好的松耦合构件。 7 习鬲一 曰囝 太原理工大学硕士研究生论文 ( 3 ) 所有的模型和视图都是由控制器连接和调用的,控制器控制功能使得它可以根 据用户不同阶段的不同需求选择不同的模型进行处理,并选择不同的视图将处理结果显 示给用户,很好地提高了系统的灵活性。 ( 4 ) 一个模型可以拥有多个视图或者说多个视图可以共享一个模型。多个视图能够 提供多种数据显示方式,以满足不同用户的需求。变化传播机制可以确保所有相关的视 图和其模型达到同步,这一切都可以通过控制器的协调来实现。 ( 5 ) 模型的可移植性和伸缩性。模型的相对独立性使得它很容易被移植到新的平台 工作,很容易被改变业务规则而不影响视图和控制器。 然而,由于m v c 是个非常复杂的系统,所以采用m v c 实现w e b 应用时,最好选一个 现有的m v c 框架,在此之下进行开发。由于s t r u t s 具有完整的文档并且相对来讲比较简单, 所以一般采用它来开发m v c 系统,实际上,s t r u t s 就是在j s pm o d e l 2 的基础上实现的一个 m v c 框架。 2 2 s t r u t s 项目概述 s t r u t s 是a p a c h e 组织的一个项目,像其他的a p a c h e 组织的项目一样,它也是一个开 源项目。s t r u t s 作为一个设想是c r a i grm c c l a n a h a n 于2 0 0 0 年提出的,该设计的目标是为 利用j a v a 技术开发基于m v c 模式的w e b 应用提供一个标准模式。基于s t r u t s 架构的w e b 应用程序基本上符合j s pm o d e l 2 的设计标准,是m v c 设计模式的一种变形,提供了对开 发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 【4 】。s t r u t s 框架是一种基于j a v a 的技术,w e b 应用程序开发人员通过s t r u t s 框架即可充分利用面向对 象设计,代码重用及“编写一次,到处运行”的优点。另外,s t r u t s 不仅是拥有自己的 控制器,同时整合了其他的一些技术来实现模型层和视图层,例如:在模型层,它可以 很容易与的与数据库的访问技术相组合,包括j d b c 技术和e j b 技术:在视图层,它能够 与j s p 、x s l 等组件相结合四。所以从一定的意义上讲,采用s t r u t s 来实现基于m v c 的w e b 应用的开发,可以根据具体的需求来选择设计的复杂程度,具有很好的扩展性s t r u t s 的主要优势功能如下: ( 1 ) s t r u t s 中包含一个控制器s e r v l e t ,用来控制用户的请求发送到相应的a c t i o n 贾c 寸象: ( 2 ) 在j s p 页面中可以选用自定义标签库,并且在控制器s e r v l e t 中提供关联支持, 这样可以蒂助开发人员方便快捷地创建交互式表单应用; 8 太原理工大学硕士研究生论文 ( 3 ) s t r u t s 还提供了一系列实用对象:x m l 文件处理、通过h v a r e f l e c t i o n a p i 自动处 理j a v a b c a n s 属性、国际化的提示和消息。 2 2 is t r u t s 核心组件 s u m t s 是一组相互协作的类、s e r v l n 和j s p 标记,它们组成了一个可重用的m v c 设计 模式。这个定义表示s 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 f o r w a r d 、a c t i o n m a p p i n g 。 1 a c f i o n s e r v l e t a c ti o ns e r v l e t l 挂承f l j a v a x s e r v l c t h t t p h t t p s e r v l e t 类。它在s t r u t s 中扮演的角色是中心 控制器。它提供了一个中心位置来主要负责将h 却客户请求组装后,根据配置文件的指 定的描述,转发到适当的处理器。另外,除了作为应用程序的前端控制器外,a c t i o n s e r v l a 实例还负责初始化和清除应用程序的资源。 2 a c t i o n 一个a c t i o n 类的角色,就像是客户请求动作和业务逻辑处理之间的适配器,它作为 应用程序响应用户请求的动作,将请求与业务逻辑分开。这样用户的请求和a c t i o n 类之 间可以有多个点对点的映射。a c f i o n 最为常用的方法是e x e c u t e ( ) ,典型的a c t i o n 类一般要 在e x e c u t e ( ) 方法中实现下列逻辑: ( 1 ) 检查用户s e s s i o n 的当前状态。如果s e s s i o n 过期或者用户没有登录,要将表示层 的页面跳转到用户登录页面; ( 2 ) 检查用户输入的合法性。调用f o r mb e a n 实例的v a l i d a t e ( ) 方法检查一些字段 的输入值是否恰当或合法: ( 3 ) 执行业务操作。调用业务逻辑b e a n 的相应方法执行用户的业务请求; ( 4 ) 更新服务器端的对象。将m o d e l 的状态改变通知给v i e w ,并返回请求页面。 3 a c f i o n f o r m 一个应用系统的消息转移( 或者说状态转移) 的非持久性数据的存储,通常由 a c t i o n f o r mb e a n 来负责,它的主要功能是为a c t i o n 的操作提供与客户表单相映射的数 据。对于每一个客户的请求一般要经历如下几个步骤: ( 1 ) 检查a c t i o n 的映射,确定配置文件中已经配置了对a c t i o n f o r m 的映射; 9 太原理工大学硕士研究生论文 ( 2 ) 根据n a m e 属性查找a c f i o n f o r m 的信息; ( 3 ) 查找a c t i o n f o r m 的使用范围,确定在此范围下是否存在对应的f o r m8 c a n 的实 例: ( 4 ) 假如在当前范围内,相应的f o r m b e a n 的实例己经存在,而且对当前的请求来 说是同一类型的话,就可以重用,否则,就要重新构建一个f o r mb e a n 的实例; ( 5 ) 调用f o r mb e a n 的r e s e t , o 方法; ( 6 ) 调用对应的s e t0 方法,对状态属性赋值; ( 7 ) 如果v a l i d a t e d 属性值被设置为t r u e ,则调用f o r mb e a n 的v a l i d a t e ( ) 方法: ( 8 ) 果:v a l i d a t e ( ) 方法没有返回错误,控制器将a c t i o l l f o 咖作为参数,f 专给a c t i o n 实例的e x e c u t e ( ) 方法执行。 4 a c t i o n f o r w a r d 当a c t i o n 实例的e x e c c e ( ) 方法运行完毕后,控制器根据m a p p i n g 可以将响应信息转 到适当的地方,a c f i o n f o r w a r d 的主要功能就是对将要转向的视图的地址的一个封装。转 向的各种属性也可以在配置文件中设置性,这样就大大提高了软件的复用性和可维护 性。 5 ,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 以j 绷类的形式封装了怎样将一个请求u l u 映射到与其对应的a c t i 的些信息。a c t i m a p p i n g 对象帮助进行框架内部的流程控制,它们可以将请求u l u 映射至i j a c t i o n 类,并且将a c t i o n 类与a c t i o r f o r mb e a n 相关联。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 类的实例。 2 2 2s t r u t s 几个高级特性 利用s n u b 进行开发,应该对它的高级特性做个彻底的了解,以便使自己的设计更加 丰富和灵活,这里只对几个常用的高级特性做个介绍。 1 消息标记和国际化 s 仃l l 乜框架支持国际化和本地化。用户在他们的计算机中定义自己所在的区域,当 w e b 应用程序需要输出一条消息时,它通过引用一个相关的资源文件,在这个文件中所 有的消息都会使用适当的语言。在一个应用程序中可以根据设计需要提供多个资源文 件,而且每个文件可以是用不同的语言编写的消息,如果不对资源文件的编写语言进行 1 0 太原理工大学硕十研究生论文 设定选择,将使用默认的资源文件。s t r u t s 框架中引入两个组件来实现国际化,一个组 件是用来实现对r e s o u r c e b u n d l e 的引用的消息类,另一个是j s p 自建标签 b e a n :m e s s a g e 序,用来在页面中显示l t c o n t r o l l e r 返回的字符串【6 】。具体来说,用s t r u t s 实现国际化和本 地化,一般有以下几个步骤:首先,定义资源文件的名称,在这个文件中会包含用选定 语言编写的程序中含有的所有消息,并以“关键字值”的形式存储这些消息。其次, 将该资源文件存放在类的路径下,并将该路径值( 路径的格式要符合完整j a v a 类的标准 命名规范) 作为初始化参数传递给a c t i o n s e r v l e t 。这样,就可以在程序运行过程中,根 据自己的需要选择适当的语言来将运行结果返回给用户,而且这样比较容易实现应用中 的代码和显示消息的分离,也就是说可以在不用重新编译应用程序的前提下修改页面上 显示的消息。 2 数据校验框架 数据框架v a l i d a t o r 是j a k a r t a j 匣用包的一个部分,是基于s t r u t s 技术、通过配置外部 x m l 文件以引用校验规则和匹配正则表达式为基础的一种校验机制,可以使用相同的校 验规则同时实现服务器端和客户端的数据校验 7 1 。s t r u t s 可以在a c t i o n f o r m 的v a l i d a t o r ( ) 方法中添加校验代码,对用户输入的信息进行合法性校验,这样虽然能够顺利地完成一 些校验工作,但是相对来说它的校验规则比较简单。一般要充分体现该框架的校验功能, 需要对校验规则进行扩展,由用户来定义自己需要的自定义校验规则。现在将简单介绍 v a l i d a t o r 应用框架的应用和实现,并进一步说明自定义规则的扩展应用方法。校验框架 能够顺利运行除了被校验表单的定义,还依赖于三个主要组成部分:通用包文件 c o m m o n s - v a l i d a t o r j a r 和j a k a r t a - o r g j a r ,该文件分别包含了校验的方法( 例如是否含空格、 是否身份证号等) 和实现校验所需的正则表达式、置换规则、文本划分等方法;相关配 置文件v a l i d a t i o n - r u l e s x m l 和v a l i d a t i o n x m l ,这两个文件是校验功能实现的关键,它们把校 验规则和相关数据联系起来,通过v a l i d a t o r - r u l e s x m l 来描述校验规则,v a l i d a t o r 贝o 用来配 置被校验的数据;资源绑定文件这里指的是上文提到的资源绑定文件,默认的文件名为 a p p l i e a t i o n r e s o u r e e s p r o p e r t i e s ,它主要用于报告错误信息当我们使用该功能时,首先通 过p l u g i n ( 插件) 机制将v a l i d a t o r 框架配置到应用中,并在s t r u t s 应用配置文件 s t r u t s - - e o n f i g x m l 中进行相应的配置。然后在你的w e b 应用目录下编写相应的上面提到的 两个x m l 文件,并根据自己的需要来定义校验规则。最后,编写对应的j s p h l m l 文件以 上简单介绍了使用v a l i d a t o r 框架固有校验规则实现信息校验的大致过程,如果需要定义 太原理【大学硕士研究生论文 自已的校验规则,并同样通过以上提到的x m l 来实现校验的话,可以通过以下几个步骤 实现:根据统一格式定义方法名和相关参数:根据b e a n 和数据项得到被校验的数据值: 在取出相应的值后,进行真正的校验,校验不合格就报告错误。其中,自己的校验方法 定义后,要在v a l i d a t i o n r u l e s x m l 中对应一个该校验方法的一个校验元素,这样就完成 了校验规则的扩展。 3 异常错误处理 通过配置的方法来实现应用程序的逻辑流程的定义,是每种成熟技术的共同选择。 例如,在j 2 e e 中,从实现e j b 的安全性和事物性行为到描述j m s 消息和目的地之自j 的关 系,很多运行时的处理流程都是可以在程序之外定义的,这些都给程序开发应用带来很 大的便利。s t r u t s 就是和用这种思想来开发设计的,它通过配置文件来订制系统运行时 的各个方面,这在s t r u t s i 1 上得到延续,其中新的异常处理功能也不例外。s t r u t s 框架 提供了一个内置的称为e x c e p t i o n h a n l d e r 的类,用于系统缺省处理a c t i o 楼运彳于中产生的 错误该类会生成一个a c t i o n e r r o r 对象并保存在适当的范围对象中,进而就可以在j s p 页面中使用这些对象来提醒用户相应的错误信息。如果这些不能满足异常错误处理,我 们还可以通过继承e x c e p t i o n h a n d l e r 类来定义自己的异常处理类。 2 2 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

温馨提示

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

评论

0/150

提交评论