(计算机应用技术专业论文)作业和考试系统中模式与新技术的分析与应用.pdf_第1页
(计算机应用技术专业论文)作业和考试系统中模式与新技术的分析与应用.pdf_第2页
(计算机应用技术专业论文)作业和考试系统中模式与新技术的分析与应用.pdf_第3页
(计算机应用技术专业论文)作业和考试系统中模式与新技术的分析与应用.pdf_第4页
(计算机应用技术专业论文)作业和考试系统中模式与新技术的分析与应用.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)作业和考试系统中模式与新技术的分析与应用.pdf.pdf 免费下载

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

文档简介

北京邮电大学硕士研究生论文作业和考试系统中模式和新技术的分析与应用 作业和考试系统中 模式和新技术的分析与应用 摘要 信息社会的高度发展要求教育必须改革以满足培养面向信息化社会创新人 才的要求。同时,信息社会的发展也为这种改革提供了环境和条件。信息技术在 教育中的广泛应用必将有效地促使教育现代化。教育信息化是教育面向信息社会 的要求和必然结果。 北京邮电大学网络教育学院依循教育信息化的要求,设计开发了一套集学科 管理、题库管理、考试管理、作业管理以及分析评价于一身的“作业与考试管理 系统 。这套功能完善的系统可以帮助应用这套系统的教育机构实现教育现代化, 从而完善教育进程,促进教学资源的共享。 本文前五章围绕作业与考试系统的具体实现,按照j 2 e e 体系结构的划分进 行分析。从横向看,主要包括设计模式的分析,系统现状的分析和新技术的发展 分析。从纵向看,分别按照表示层,业务层和持久层对系统进行分析。在分析系 统实现的时候,本文对系统的优点与缺点进行了详细地分析,并结合模式给出具 体的解决方案。 本文的第六章则详尽介绍了系统开发中的一个创新点,即h t m l 格式试卷 转存为w o r d 格式的试卷,并介绍了开发系统的具体实践。 通过本文中所提到的实践,作业与考试系统初步完成了v 1 版的开发,完善 了各项功能,并提高了系统性能。而且对于系统优劣的分析以及给出的改进建议 会对今后的开发有很好的指导意义。 关键字:作业与考试管理系统,j 2 e e ,j 2 e e 设计模式,j s f ,e j b 3 0 i i i t h ea d v a n c e dd e v e l o p m e n to fi n f o r m a t i o ns o c i e t yr e q u i r e se d u c a t i o nr e f o r mt o f i ut h en e e do fe d u c a t i n gi n n o v a t i n gt a l e n tc o n f r o n t i n gt h ef u t u r e i nt h em e a n t i m e , t h ed e v e l o p m e n to fi n f o r m a t i o ns o c i e t ya l s op r o v i d e st h ee n v i r o n m e n ta n dc o n d i t i o n s t ot h i sr e f o r m t h ew i d e l yu s eo fi n f o r m a t i o nt e c h n o l o g i e si ne d u c a t i o nw i l lb es u r et o m a k ee d u c a t i o nm o d e r n i z e d e d u c a t i o nu s i n gi n f o r m a t i o nm e t h o d si st h er e q u i r e m e n t a n do u t c o m eo ft h ee d u c a t i o nf a c i n gi n f o r m a t i o ns o c i e t y t h en e t w o r ke d u c a t i o n c o l l e g e o f b e i j i n gu n i v e r s i t y o fp o s t sa n d c o m m u n i c a t i o n sf o l l o w i n gt h er e q u i r e m e n to fe d u c a t i o nu s i n gi n f o r m a t i o nm e t h o d s , d e s i g n e da n dd e v e l o p e das e to f “h o m e w o r k a n de x a mm a n a g e m e n ts y s t e m ” i n c l u d i n gc o u r s em a n a g e m e n t ,p r a x i sm a n a g e m e n t ,e x a mm a n a g e m e n ta n d h o m e w o r k m a n a g e m e n t t h i ss e to fs y s t e mw i t hp e r f e c tf u n c t i o n si sa b l et oh e l pt h eo r g a n i z a t i o n r e a l i z et h ee d u c a t i o nm o d e r n i z e d ,s ot h a tm a k et h ee d u c a t i o np r o c e d u r eb e t t e ra n d h e l ps h a r et h ee d u c a t i o n r e s o u r c e s t h ef i r s t5c h a p t e r so ft h i s a r t i c l ea n a l y s et h es y s t e ms u r r o u n d i n gt h ed e t a i l e d r e a l i z a t i o na c c o r d i n gt ot h ej 2 e es t r u c t u r e f r o ml a n d s c a p eo r i e n t a t i o n ,t h i sa r t i c l e m a i n l yi n c l u d e st h ea n a l y s i so fd e s i g np a t t e r n ,s y s t e ma c t u a l i t ya n dd e v e l o p m e n to f n e wt e c h n o l o g i e s f r o ml e n g t h w a y so r i e n t a t i o n ,t h i sa r t i c l ei n c l u d e st h ea n a l y s i so f s y s t e mp r e s e n t a t i o nl a y e r o p e r a t i o nl a y e ra n dp e r s i s t e n c yl a y e ga sa n a l y z i n gt h e s y s t e mi m p l e m e n t a t i o n ,t h i s a r t i c l ea l s oi n c l u d e sd e t a i l e da n a l y s i so fb o t ht h e a d v a n t a g e sa n dd i s a d v a n t a g e so ft h es y s t e ma n dp r o v i d e ss o l u t i o n sa c c o r d i n gt o c e r t a i nj 2 e ed e s i g np a t t e r n s t h es i x t hc h a p t e ri n t r o d u c e st h ei n n o v a t i v ec o n t e n to ft h es y s t e m ,w h i c hi st o c r e a t ed o cf i l e sf r o mh t m lf o r m a t t e df i l e s t h i sc h a p t e ra l s oi n t r o d u c e s o t h e r p r a c t i c e sd u r i n gd e v e l o p m e n tp e r i o d w i t ha l lt h ee f f o r t sm e n t i o n e da b o v e ,t h ev 1v e r s i o no fh o m e w o r ka n de x a m m a n a g e m e n ts y s t e mh a sb e e nd e v e l o p e d ,f u n c t i o n sh a v eb e e nm a d eb e t t e ra n dt h e p e r f o r m a n c eo ft h es y s t e m h a sb e e ni m p r o v e d t h ea n a l y s i sa n di m p r o v e m e n t s u g g e s t i o n st ot h es y s t e mw i l lb eag o o dg u i d e t ot h ed e v e l o p m e n ti nt h ef u t u r e k e yw o r d s :h o m e w o r k a n de x a ms y s t e m ,j 2 e ed e s i g np a t t e r n ,j s f , e j b 3 0 北京邮电大学硕士研究生论文作业和考试系统中模式和新技术的分析与心用 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论 本人签名: 处,本人承担一切相关责任。 日期: 皿舀。;里 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅:学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名: 赵鲤日期:渔幺。宝:i 全 导师签名: 脚经; 日期:z 型6 :2 。至翌 i i 北京邮电大学硕士研究生论文作业和考试系统中模式和新技术的分析与应用 1 1 论文背景 1 1 1 教育信息化的发展 第一章绪论 信息社会的高度发展要求教育必须改革以满足培养面向信息化社会创新人 才的要求,同时,信息社会的发展也为这种改革提供了环境和条件。信息技术在 教育中的广泛应用必将有效地促使教育现代化。教育信息化是教育面向信息社会 的要求和必然结果。 北京邮电大学网络教育学院依循教育信息化的要求,设计开发了一套集学科 管理、题库管理、考试管理、作业管理以及分析评价于一身的“作业与考试管理 系统 。这套系统完善的功能可以帮助应用这套系统的教育机构实现教育现代化, 从而完善教育进程,促进教学资源的共享。 1 1 2 实践项目介绍 “作业与考试系统”是国家8 6 3 项目“基于i n t e m e t 的教育示范工程”的子 项目之一,它始于2 0 0 3 年,到现在已经历时2 年半了。除去验收以前的开发外, 作业与考试系统还经历了产品化v 1 版的开发以及与教学教务系统的集成。正是 由于后面这些经历,使得很多原先的设计缺陷被暴露出来。 一方面,需求的变更导致业务流程的更改,而业务流程的更改导致了代码的 重构,另一方面,由于系统的设计问题导致系统的集成只能以一种粗糙的,死板 的方式进行。无论是哪个方面都导致了大量低效的重复劳动,不仅降低了工作效 率,也增加了系统的复杂度,使系统不易维护。而j 2 e e 规范倡导的系统互操作 性等很多优势并没有展现出来。 与此同时,在最近这段时期里,j s f 、日b 3 0 等先进的技术进一步成熟,j 2 e e 核心模式进一步被总结出来,这都有助于基于j 2 e e 规范的应用可以更加高效的 被建立。 本文将结合j 2 e e 核心模式和最新的技术对现有系统在设计和实现的层面进 行分析,。文章将按照系统的不同层面进行分析,具体分为表示层,业务层,和 持久层。 北京邮电大学硕十研究生论文 作业和考试系统中模式和新技术的分析与应用 1 2 课题问题分析 从目前的开发与集成的情况来分析,系统大体上存在以下几点问题: 1 h t m l 标记和j a v a 代码混杂在一起,再加上s c r i p t 脚本语言和c s s 样式 语言,使得页面的开发过于复杂并且难以复用。 2 系统层次划分过多,调用步骤过于频繁。 3 表示层与业务层的耦合过于紧密,没有使用控制分发机制。 4 功能模块化分不十分合理,有时导致模块之间过多的相互调用以及d a o 层的过度使用。 5 无法灵活改动业务流程。 6 数据库表设计存在缺陷,导致功能实现的方式受到限制。 7 其他由于技术原因导致的开发效率问题。 1 3j 2 e e 核心模式 所谓模式是指人们面对大量同种问题时所探索出来的通用解决方案。j 2 e e 核心模式是s u n 的工程师在解决客户实际问题的过程中总结出来的针对各种问 题所总结出的对应解决方案,他们将这些方案按照不同的层次进行了分类和总 结,形成了一套完整的模式集合。 按照层次来划分,模式的分类如下: 表现层:拦截控制器、前端控制器c o n t e x t 对象、应用控制器、视图助手、 复合视图、服务到工作者以及分配器视图。 业务层:业务代表、服务定位器、会话门面、应用服务、业务对象、复合实 体、传输对象、传输对象组装器、值列表处理器。 集成层:数据访问对象、服务激活器、业务领域存储以及w e bs e r v i c e 中转。 作业与考试项目的设计方案中包含了一些符合j 2 e e 模式的优良设计,但同 时由于设计者的经验有限,也包含了一些背离或部分符合j 2 e e 标准的设计,后 者是需要进一步改进的地方。 在本文中,我不会描述每个模式而是根据需要挑选合适的模式,另外我将把 适用于持久层的模式从j 2 e e 核心模式中分离出来进行描述。 北京邮电大学硕士研究生论文作业和考试系统中模式和新技术的分析与应用 1 4 新技术发展方向和现状 从技术的整体发展方向来看,不管是哪个层次上的应用都是朝着可重用性, 灵活性以及易于开发的方向发展的。j s f 和e j b 3 0 两项技术是近期受关注较多 的j 2 e e 相关技术,分别解决了页面层和业务层现存的很多问题并提高了开发效 率。简单说明如下: j a v a s e r v e rf a c e so s f ) 是一种用于构建w e b 应用程序的新标准j a v a 框 架。它提供了一种以组件为中心来开发j a v aw e b 用户界面的方法,从而简化了 开发。j s f 的主要优势之一就是它既是j a v aw e b 用户界面标准又是严格遵循模 型视图一控制器( m v c ) 设计模式的框架。用户界面代码( 视图) 与应用程序 数据和逻辑( 模型) 的清晰分离使j s f 应用程序更易于管理。为了准备提供页 面对应用程序数据访问的j s f 上下文和防止对页面未授权或不正确的访问,所 有与应用程序的用户交互均由一个前端“f a c e s ”s e r v l e t ( 控制器) 来处理。具体处 理过程如下图所示: c o n t r o l l e rv i e wm o d e i l _ 一 , 誊_ 名 一。 c l i e n t sj 2 e ec o n t a i n e r 固 一 ,v , a p p l i c a t i o nd a t a f j b 大概是j 2 e e 架构中唯一没有兑现其能够简单开发并提高生产力的 组件。e j b 3 0 规范正尝试在这方面做出努力以减轻其开发的复杂性。e j b 3 0 减 轻了开发人员进行底层开发的工作量,它取消或简化了很多回调方法的实现,并 且降低了实体b e a n 及o 瓜映射模型的复杂性。 e j b 3 0 中两个重要的变更分别是:使用了j a v a 5 中的程序注释工具和基于 h i b e r n a t e 的o 瓜映射模型。 e j b 注释 在e j b 3 0 里,任何类型的企业级b e a n 只是一个加了适当注释的简单j a v a 对象( p o j o ) 。注释可以用于定义b e a n 的业务接口、o r 映射信息、资源引用信 3 、, 、li;锵 北京邮电大学硕士研究生论文作业和考试系统中模式和新技术的分析与应用 息,效果与在e j b 2 1 中定义部署描述符和接口是一样的。在e j b 3 0 中部署描述 符不再是必须的了;h o m e 接口也没有了,你也不必实现业务接口( 容器可以为你完 成这些事情) 。 新的持久化模型 新的实体b e a n 也是一个加了注释的简单j a v a 对象( p o j o ) 。一旦被 e n t i t y m a n a g e r 访问,它就成为了一个持久化对象,并且成为了持久化上下文 ( c o n t e x t ) 的一部分。一个持久化上下文与一个事务上下文是松耦合的,严格的讲, 它隐含的与一个事务会话共存。 实体关系也是通过注释来定义的,o 瓜映射也是,并提供几种不同的数据库 规范操作,在e j b 2 1 中这些要通过开发人员自己的设计模式或者其它技术来完 成的。 有关这两种技术的应用细节,将在后面的分析中详细介绍。 4 北京邮电大学硕士研究生论文 作业和考试系统巾模式和新技术的分析与应用 第二章表示层分析 2 1 表示层的应用分析 在表示层,设计者通常将面对这样几个问题:会话的管理、客户端访问的控 制、验证以及助手类的使用问题。 2 1 1 会话管理 “用户会话”这个概念,描述的是在客户端和服务器之间的多次请求构成的 一种“对话”。保存会话的状态对于用户的应用而言至关重要,目前常见的保 存用户会话状态的方式有两种:在客户端保存会话状态和在表现层保存会话状 态。其中,将会话状态保存在客户端虽然相对来说容易实现但是问题很多。首先 表现在对网络的带宽需求上,如果保存的数据量较少,那么效果和性能还比较好, 可是一旦需要保存大量的数据,将对网络产生巨大的压力,并严重影响系统性能。 其次,安全问题也不容忽视,在把会话状态保存在客户端的同时还不能将数据暴 露给客户端,这需要一定的加密处理。与之相反,将会话状态保存在表示层能很 好地解决( 或根本就没有) 上述问题,因为在服务器上保存数据不必过多地考虑 数据量的问题,更加不必通过网络传输。所以选择将会话状态保存在表示层可以 获得巨大的灵活性,并且能同时兼顾可扩展性和性能。 2 1 2 客户端访问控制 出于很多原因,我们需要控制客户端对特定资源的访问。限制或控制客户端 访问的原因之一,是要保护视图( 用户界面) 或视图的一部分,不让其被客户端 直接访问到。比如,当只有注册或登陆后的用户才能访问某个特定的视图时,或 者视图的某个特定部分只能被某种角色的用户访问时等等。 为了限制某些用户访问特定的资源通常有以下两种途径。第一,使用某些应 用逻辑,当用户请求访问视图时,这些逻辑被用来判断用户是否有察看试图的权 限。第二,可以配置运行时系统,在某些资源被访问之前,必须要通过另一种资 源的内部调用才能完成。 处理这种问题的常见方法( 对应上面所说的第二种途径) 就是采用一个控制 器,作为这种访问控制的一个委派点。另一个常见的变种,是在视图中直接加入 保护,以便预先执行某些保护逻辑。 5 北京邮电大学硕士研究生论文作业和考试系统中模式和新技术的分析与j 遁用 2 1 3 验证 验证是指对用户输入表单的检验,经常需要在客户端和服务器端都进行验 证。在客户端验证通常比在服务器端验证要简单,但它提供的往往是层次较高的 检查,比如一个表单字段是否为空等等。在客户端进行验证通常需要在客户端视 图中加入脚本代码,蚴l j j a v a s c f i p t 。但是由于客户端运行的脚本语言是可以在 浏览器中进行配置的,用户可以在任何时候禁用脚本语言,因此仅仅在客户端进 行验证是远远不够的,更为重要的是在服务器端的验证。 在服务器端的验证主要包括基于表单的验证和基于抽象类型的验证。其中基 于表单的验证需要在服务器端提供大量的方法,分别验证不同的表单。这种方法 易于实现并且也比较高效,但是它会造成大量冗余,使系统过于庞大。而基于抽 象类型的验证方法则专注于构造一种可以通用的验证模块以达到易于管理并降 低验证同业务逻辑相耦合的目的,但这种方法有可能会带来性能的降低( 这通常 由读取x m l 文件造成) 。 助手类通常用于存放由客户端请求传来的中间状态,由于本系统中并未使用 助手类( 其实应该好好考虑使用助手类的问题) ,在本文中暂不涉及。 2 2 系统表示层的现状 作业与考试系统的表示层是基于j s p 和s e l e t 并辅以c s s ,j a v a s c r i p t 等技术 来实现的。其中的某些功能完成得比较好,而另一些功能则需要进行改进,同时 还有一些特色功能值得讨论。 这一小节将对照上一小节的几点应用并结合作业与考试系统的实际来进行 一些分析。 2 2 1 会话管理 在作业与考试管理系统里,会话管理所采用的方式是j 2 e e 标准中所提倡的 将会话状态保存在服务器的方式。( 在后期与教学教务的集成方案中由于系统间 的独立性,没有沿用这一方式,但并没有带来明显的不利影响。) 具体来说,当一个用户登录上系统之后,系统回到后台数据库中获取与该用 户有关的数据并将这些数据存储到该用户会话的s e s s i o n 对象中,对于在系统中的 操作过程所产生的中间状态,s e s s i o n 对象也会加以保存。正如上一小节所提到的, 只要注意不让s e s s i o n 对象存储过量的数据就可以在不损失性能的前提下提高灵 活性和扩展性。目前,系统在会话管理方面还是比较令人满意的。 北京邮电大学硕十研究生论文作业和考试系统中模式和新技术的分析与应用 系统中的实现代码如下: h t t p s e s s i o ns e s s i o n = r e q u e s t g e t s e s s i o n 0 ;获取s e s s i o n c o n = g e t d a t a s o u r c e 0 g e t c o n n e c t i o n 0 ; s t r i n gs t r l o g i n s q l = g e t u s e r _ s q l + ”a n du s u s p a s s w o r d = ? ”; p s = c o n p r e p a r e s t a t e m e n t ( s t r l o g i n s q l , r e s u l t s e t t y p e _ s c r o l l _ i n s e n s i t i v e , r e s u l t s e t c o n c u r _ r e a d _ o n l y ) ; p s s e t s t r i n g ( 1 ,s t r u s e r a c c o u n t ) ; p s s e t s t r i n g ( 2 ,s t r u s e r p a s s w o r d ) ; r e s u l t = p s e x e c u t e q u e r y 0 ; p s c l e a r p a r a m e t e r s 0 ; w h i l e ( r e s u i t n e x t 0 ) n u s e r l d = r e s u l t g e t i n t ( ”u su s _ i d ”) ; s t r u s e r n a m e = r e s u l t g e t s t r i n g ( ”u s - u s _ n a m e ”) ; n u s e r t y p e = r e s u l t g e t i n t ( ”u s u s 删e ”) ; r e s u l t r e c o r d c o u n t + + ; i f ( r e s u l t r e c o r d c o u n t = = 1 ) s w i t c h ( n u s e r t y p e ) c a s e0 : i s s u p e r a d m i n = t r u e ; b r e a k ; c a s e1 : i s c o m m o n a d m i n = t r u e ; b r e a k ; c a s e2 : i s t e a c h e r = t r u e ; b r e a k ; c a s e3 : i s s t u d e n t = t r u e ; b r e a k ; 7 北京邮电大学硕士研究生论文 作业和考试系统中模式和新技术的分析与应用 c a s e4 : i s v i s i t o r = t r u e ; b r e a k ; ) 从数据库获取信息 g l o b a l s e s s i o ng l o b a l s e s s i o n = n e wg l o b a l s e s s i o n o ; g l o b a l s e s s i o n s e t u s e r i d ( n u s e f i d ) ; g l o b a l s e s s i o n s e t u s e r n a m e ( s t r u s e r n a m e ) ; g l o b a l s e s s i o n s e t u s e r a c c o u n t ( s t r u s e r a c c o u n t ) ; g l o b a l s e s s i o n s e t s u p e r a d m i n ( i s s u p e r a d m i n ) ; g l o b a l s e s s i o n s e t c o m m o n a d m i n ( i s c o m m o n a d m i n ) ; g l o b a l s e s s i o n s e t t e a c h e r ( i s t e a c h e r ) ; g l o b a l s e s s i o n s e t s t u d e n t ( i s s t u d e n t ) ; g l o b a l s e s s i o n s e t v i s i t o r ( i s v i s i t o r ) ; 脏自定义的类中填充用户信息,这样更容易处理 s e s s i o n s e t a t t r i b u t e ( ”o n l i n e a c c o u n t s , s t r u s e r a c c o u n t ) ; s e s s i o n s e t a t t r i b u t e ( ”g l o b a l s e s s i o n , g l o b a l s e s s i o n ) ; 将用户信息加入至u s e s s i o n 中 2 2 2 客户端访问控制 作业与考试系统在客户访问控制方面的实现方案可以说是比较有特色的,值 得进行一下详细地探讨。 所谓访问控制其实就是指用户权限的问题,而这个系统的访问权限控制非常 细腻。比如,系统中不同身份的用户可以访问的功能视图是不同的,而相同身份 的用户所能访问的内容也是严格限制的,更加重要的是,系统提供了在客户端灵 活配置权限的能力。 在实现方面,为了满足如此细粒度和灵活的权限划分,系统将权限的设定结 果保存在后台数据库中。在用户登陆后,特有的权限查询模块将在数据库中查找 符合该用户的权限。在客户端是通过界面表示控制的方式来表示这些权限的,具 体来说,整个系统可以被划分为用户管理、题库管理、课程管理、考试管理、作 业管理和评价分析等几个部分,各个部分分别对应一个菜单,通过菜单来对相应 的功能进行操作。而系统对权限的控制正是通过对这些菜单显示与否进行控制来 实现的( 在一个功能模块的内部,子功能的控制以同样的方式由导航树的形式实 现) 。通过这种方式进行控制的一个直接的好处就是提供给用户的界面得到了最 大程度的简化,用户只会看到与他相关的功能而且永远也不会看到“您不具备相 北京邮电大学硕士研究生论文作业和考试系统中模式和新技术的分析与应用 应的操作权限”这样的提示信息。 如果和上一小节中的相应部分进行对比就会发现,这种实现方式应用了特有 的权限控制逻辑,又在具体应用系统之前调用了其他的资源( 权限数据库) ,确 保了权限的统一管理,可以说是一种很优秀的设计。 但是这种设计也带来了一些不利的地方,首先就是由于将权限控制的代码与 客户端显示逻辑相结合而增加了代码的复杂度,使得代码难以维护,可读性低。 另外,如果权限设计得过于复杂,将导致性能的下降。 系统中的实现代码如下: s t r i n gm e n u l i s t = ; s i g n o n h e l p e rs i g n o n h e l p e r = n e ws i g n o n h e l p e r 0 ; l i s tc m e n u l i s t = s i g n o n h e l p e r g e t m e n u ( g l o b a l s e s s i o n g e t u s e r l d 0 ) ; i n tn c h i l d n u m = o ; f o r ( i n ti = 0 ;i c m e n u l i s t s i z e 0 ;i + + ) i f ( ( ( m e n u t o ) c m e n u l i s t g e t ( i ) ) n r o o t m e n u l d ! = 0 ) n c h i l d n u m + + ; ) f o r ( i n ti = 0 ;i n c h i l d n u m ;i + + ) m e n u l i s t + = i + , ; ) 获取该用户能够操作的菜单 m e n u h e l p e rm e n u = n e wm e n u h e l p e r ( g 【o b a l s e s s i o n g e t u s e r l d 0 ) ; o u t p r i n t l n ( m e n u g e t m e n u c o d e f r o m ( m e n u l i s t ,”,”) ) ; 显示菜单 2 2 3 验证 在验证方面,作业与考试系统同时采用了客户端验证和表示层验证两种方 式。 客户端的验证采用j a v a s c r i p t 脚本程序来检查表单的输入,并提示用户必要 的输入格式,尽量确保用户在客户端输入的正确。以下是系统在客户端的验证代 码示例: f u n c t i o nc h e c k l o g i n0 一检验登陆表单的输入项 i f ( d o c u m e n t 1 0 9 i n f o r m u s e r a c c o u n t v a l u e = = ) 北京邮电大学硕士研究生论文作业和考试系统巾模式和新技术的分析与j 虹用 a l e r t ( ”请输入帐号i ”) : d o c u m e n t 1 0 9 i n f o r m u s e r a c c o u n t f o c u s0 : r e t u r nf a l s e : ) i f ( d o c u m e n t 1 0 9 i n f o r m u s e r p a s s w o r d v a l u e = = ) a l e r t ( ”请输入登陆密码! ”) : d o c u m e n t 1 0 9 i n f o r m u s e r p a s s w o r d f o c u s0 : r e t u r nf a l s e : ) d o c u m e n t 1 0 9 i n f o r m s u b m i t0 : ) 表示层的验证采用了松散的基于表单的验证方式,系统在针对不同表单进行 处理的s e r v l e t 中对表单的每一项提交内容进行了内容和格式的验证。代码示例 如下: s t r i n gs t r u s e r a c c o u n t = r e q u e s t g e t p a r a m e t e r ( u s e r a c c o u n t ”) = = n u l l ? 一:r e q u e s t g e t p a r a m e t e r ( u s e r a c c o u n t ”) : s t r i n gs t r i j s e r p a s s w o r d - - r e q u e s t g e t p a r a m e t e r ( u s e r p a s s w o r d ”) w n u l l ? :r e q u e s t g e t p a r a m e t e r ( u s e r p a s s w o r d ”) : i f ( h t t p s e s s i o n i n s p e c t o r g e t a c t i v e u s e r 0 c o n t a i n s ( s t r u s e r a c c o u n t ) ) s e s s i o n i n v a li d a t e0 : r e s p o n s e s e n d r e d i r e c t ( l o g i n j s p ? s t a t e s t r = 3 ) : r e t u r n : 判断输入表单内容,并进一步验证 这种验证方式在添加新的验证时比较灵活,从效果来说,系统所采用的验证 方式基本满足了对用户输入的验证需要,可以基本保证输入的合法性。然而这种 方式也存在一定的问题,主要体现在代码数量非常大并存在大量冗余,另外这种 方式导致验证与业务流程的耦合度下降,不利于代码的维护。 2 2 4 视图控制 试图控制主要是指当用户的请求到达之后,系统将如何处理用户请求,如何 确定系统的显示视图流程的问题。 在作业与考试系统中,对于视图的显示与转移采取了一种放任的念度,没有 提供任何一种有效的控制手段来管理视图,应该说是比较遗憾的。具体而言,主 1 0 北京邮电大学硕士研究生论文作业和考试系统中模式和新技术的分析与应用 要采用了两种手段来控制视图,其一是直接用页面上的视图转移语句来跳转视 图,其二是利用s e r v l e t 在处理表单过后来转移视图,其中后一种方式还经常包 括预先的逻辑判断,根据判断结果来转向下一个视图。用这种方式尽管可以达到 目的,但是代码混乱,不易维护。另外由于没有采用统一转发控制的方式来控制 页面流程,也导致了业务流程混乱不清,以及大量s e r v l e t 的存在,造成了严重 的冗余。 系统中用于视图转移的代码大都如下: r e s p o n s e s e n d r e d i r e c t ( ”l o g i n j s p ? s t a t e s t r = 2 ”) : 并在调用的时候加上判断语句。 2 2 5 重复表单提交 由于环境的局限,基于浏览器的客户端环境缺乏控制用户导航的能力。比如, 用户可能提交一份作业的作答结果,这就产生了一个事物的提交操作,启动提交 流程,但是在收到确认信息之后( 或在等待提交的过程中) ,如果用户点击了“后 退 按钮( 或再次进行提交) ,同一份表单还会被提交一次。 目前系统对于这类问题并没有一个成熟的解决方案,所采用的预防方法仅限 于j a v a s c r i p t 脚本的提交控制,以及对底层数据库的写入控制。但是,前一种方 法及其容易出错,无法回到正常状态,而后一种方法则极大的影响性能,尤其在 大批量同时操作时,负面作用更为明显。 系统中的代码实现如下: f u n c t i o nr e l e a s e e c ( r e l e a s e i d ) i f ( c h e c k s u b m i t f l g = = t r u e ) a l e r t ( 操作正在进行,请耐心等待) : r e t u r n : ) t o p m a i n f r a m e i n f o f r a m e 1 0 c a t i o n = ”s e r v l e t s e t e x s t a t e ? i n f o i d = ”+ r e l e a s e i d : c h e c k s u b m i t f l g = t r u e : ) f u n c ti o nc h e c k o b j e c t ( r e l e a s e i d ) if ( c h e c k s u b m it f lg = = t r u e ) a l e r t ( 操作正在进行,请耐心等待) : 北京邮电大学硕十研究生论文 作业和考试系统巾模式和新技术的分析与应用 r e t u r n : ) t o p m a i n f r a m e i n f o f r a m e 1 0 c a t i o n = ,s e r v l e t s e t e x s t a t e ? i n f o i d = ”+ r e l e a s e i d : c h e c k s u b m i t f l g = t r u e : ) d o c u m e n t o n d b l c l i c k = f u n c t i o nd o c o n d b l c li c k0 w i n d o w e v e n t r e t u r n v a l u e = f a l s e : ) d o c u m e n t o n c l i c k = f u n c t i o nd o c o n c l i c k0 if( c h e c k s u b m it f l g ) w i n d o w e v e n t r e t u r n v a l u e = f a ls e : ) 从代码中可以看到,为了控制提交的状态,特意添加了f l a g 来表示是否进行 了提交操作。当操作尚未完成时进行二次提交时,系统会提示警告信息。 但是这不能处理用户点击“返回”时的情形,而且当第一次提交失败时也没 能提供合理的处理方式。 2 3j 2 e e 核心模式对系统表示层的优化 依据表示层的功能需求和特点,j 2 e e 核心模式在表示层总结出了拦截控制 器、前端控制器c o n t e x t 对象、应用控制器、视图助手、复合视图、服务到工作 者以及分配器视图等模式和模式组合。这里面的每一个模式都着重解决了表示层 的某一特定问题,各个模式之间还存在着相互依存和合作的关系。 如果把j 2 e e 模式看作设计标准的话,作业与考试管理系统的表示层设计在 不同的方面处于不同的层次上。比如,在c o n t e x t 对象的应用上,对业务层隐藏表 现细节上以及隔离不同的逻辑等方面都是做得不错的。然而,在前段控制器,控 制重复提交等方面上又做的不是很尽如人意。 下面要提到的j 2 e e 模式将把重点放在优化现有设计的模式上,详细探讨一 下设计系统时被忽略的问题。 2 3 1 前端控制器 问题: 1 2 北京邮电大学硕士研究生论文作业和考试系统巾模式和新技术的分析与应用 系统需要一个集中的访问点来处理请求。如果没有集中访问点,那么多个请 求之间共用控制代码就会在许多文件( 比如视图文件) 中重复出现。如果控制代 码和视图创建代码混在一起,整个应用系统的模块化程度和内聚性都要下降。另 外,如果控制代码在多处散放,只要代码一有改动,就要改动多个文件。 约束: 1 避免重复控制逻辑 2 多个请求采取共通的处理逻辑 3 把处理代码和视图割开 4 把系统访问点集中在一处 解决方案: 使用一个前端控制器,作为最初的接触点,用来处理所有相关请求。前端控 制器集中了控制逻辑,避免了逻辑的重复,完成了主要的请求处理操作。 使用前端控制器比在多个视图放入代码要好,因为后者会导致一种复制一粘 贴的重用,而且也容易产生错误。另外如果在多个视图中放入代码,还会使团队 中的开发者无法作出明确的分工。 虽然最常见的用法是由一个前端控制器处理所有的请求,但是应用系统也可 以设置多个控制器来避免“胖控制器 的现象出现。 用控制器来处理请求需要两种操作:请求处理和视图处理。在请求处理的过 程中,表现层中又必须进行几种操作: 协议路由和上下文转换 导航和路由 核心处理 分派 协议处理是指处

温馨提示

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

评论

0/150

提交评论