(计算机应用技术专业论文)基于struts架构的数字迎新系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于struts架构的数字迎新系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于struts架构的数字迎新系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于struts架构的数字迎新系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于struts架构的数字迎新系统的设计与实现.pdf_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

内蒙古大学工程硕士学位论文 基于s t r u t s 架构的数字迎新系统的设计与实现 摘要 随着各高校信息化管理工作的推进,学校的管理者通过各种信息化的手段来改变传统的 工作方式,引进或开发符合本校学生管理的信息化产品,这些信息化产品的引入,为高校的 管理工作带来了很大的便捷,大大提高了各部门的工作效率,也为数据的标准化规范提供了 良好的条件,利于数据的查找,统计,保存等。分析高校历年进行的新生报到过程,由于涉 及的部门较多,加之新生对陌生环境的不适应,新生报到工作让老师繁忙,新生茫然,这种 传统模式反映出来的效率偏低,数据滞后的问题急需改进。 基于这种现状,根据新生报到的流程开发了数字迎新系统,是基于s t r u t s 架构的b s 模 式,涉及新生入学管理各环节、面向学校各院系、各管理部门和全体新生的多模块综合管理 信息系统。每个部门一个管理接口,基于同一源数据( 招生录取数据) 分别进行报到管理, 新生根据迎新流程图及数字校园地图进行报到注册,并可利用查询模块随时查询自己的报到 情况。通过数字迎新系统,横向使得参与迎新的学校各管理部门间的数据实现了共享和同步, 明确了各部门在迎新过程中的所负的职责和业务管理范围。纵向实现了新生入学数据与新生 在校学籍数据的无缝连接,同时也实现了各专业新生报到数据的实时统计,为招生部门制定 补录计划提供了快速准确的数据依据。 关键词:数字化,s t r u t s ,管理,迎新系统 基于s t r u t s 架构的数字迎新系统的设计与实现 t h ed e s i g na n di m p l e m e n t i o no ft h ed i g i t i z e d g r e e t i n gt h ef r e s h m a ns y s t e m b a s e do ns t r u t ss t r u c t u r e a b s t r a c t w i t ht h ea d v a n c eo fi n f o r m a t i o n - b a s e dm a n a g e m e n to fe a c hh i g hs c h o o l ,t h eh i g hs c h o o l g o v e r n o r sa p p l yv a r i o u si n f o r m a t i o n - b a s e dm e a s u r e st oc h a n g i n g t r a d i t i o n a lw o r k i n gm e t h o d s , i n t r o d u c eo rd e v e l o p i n gt h ei n f o r m a t i o n b a s e dp r o d u c t st h a ta c c o r dw i t hs c h o o l sm a n a g e m e n t t h e i n f o r m a t i o n - b a s e dp r o d u c t s ,b r i n gv e r yg r e a tc o n v e n i e n c e sf o rt h em a n a g e m e n tw o r ko fh i g hs c h o o l , a n dr a i s ec o n s u m e d l yw o r ke f f i c i e n c yf o re a c hb r a n c ho fs c h o o l ,a n dp r o v i d eag o o dc o n d i t i o nf o r s t a n d a r d i z e do ft h ed a t a , b r i n gt h eb e n e f i tt os e e k i n g ,s t a t i s t i c s ,s a v i n go ft h ed a t a , e t c a n a l y z et h e p r o c e s so fa n n u a lr e p o r t , i n v o l v i n gm o r ed e p a r t m e n t s ,p l u st h ef r e s h m e na r en o ts u i t e dt ot h e u n f a m i l i a re n v i r o n m e n t ,s ot h a tt h ea n n u a lr e p o r tm a k et e a c h e r sb u s y , a n dm a k ef r e s h m a na tal o s s , w h i c hr e f l e c t e dt h et r a d i t i o n a lm o d e ll o we f f i c i e n c y , d a t al a g sb e h i n dt h eu r g e n tn e e dt oi m p r o v e t h ep r o b l e m b e c a u s eo ft h ep r e s e n tc o n d i t i o n ,w ed e v e l o p e dt h ed i g i t i z e dg r e e t i n gf r e s h m a ns y s t e mi n a c c o r d i n gt ot h ef r e s h m a n sr e g i s t e rp r o c e s s i ti sam a n a g e m e n ts y s t e mt h a tu s e sb sm o d eb a s e d o ns t r u t ss t r u c t u r e ,a c h i e v e se n t i r em a n a g e m e n ti n v o l v i n gf r e s h m a ne n t e r i n gs c h 0 0 1 i tf a c e st oe a c h d e p a r t m e n to fs c h o o l ,e a c hm a n a g e m e n tb r a n c ha n da l lo ff r e s h m e n e a c hb r a n c hc a r d e do nr e g i s t e r o ff r e s h m a na c c o r d i n gt os a m es o u r c ed a t a t h ef r e s h m a ng e th i sr e g i s t e rc i r c u m s t a n c eb yu s i n g s e a r c hm o l da ta n yt i m e a n dc a r d e do nr e g i s t r a t i o n sa c c o r d i n gt or e g i s t e rf l o wc h a r ta n dn u m e r i c a l c a m p u sm a p u s i n gt h es y s t e mm a k e st h ed a t at ob es h a r e di ne a c hr e l a t e dm a n a g e m e n tb r a n c ha t h o r i z o n t a l ,m a k e se a c hs e c t i o nk n o wt h e i rr e s p o n s i b i l i t i e s t h ed i g i t i z e dg r e e t i n gf r e s h m a ns y s t e m p r o v i d e sq u i c k l ya c c u r a t et i m e l ys t a t i s t i c a ld a t af o rr e c r u i ts e c t i o n k e yw o r d s :d i g i t i z e d ,s t r u t s ,m a n a g e ,t h eg r e e t i n gf r e s h m a ns y s t e m i i 内蒙古大学工程硕士学位论文 图表目录 图3 1 从j s p 文件到s e r v l e t 的流程。6 图3 2j s p 应用程序的业务控制6 图3 3m v c 的处理机制图7 图3 4s t r u t s 架构图8 图3 5o r g a p a c h e s t r u t s a c t i o n 包的u m l 图9 图4 1 数字迎新系统各专业报到率图1 6 图5 1 数据导出页面2 4 图5 2 导出数据表2 5 图6 1 迎新系统流程功能图2 6 图6 2 部分系统类图2 7 图6 3 新生查询页面3 4 图6 4 公共查询页面3 5 图6 5 迎新管理页面3 5 图6 6 电子注册系统注册模块3 7 图6 7 学生数据流转图3 7 表3 1 属性1 l 表3 2 属性1 1 表3 3 属性1 2 表3 4 属性1 2 表3 5 属性1 3 表6 1 招生录取数据表y x _ r e c m i t i n f o 2 8 表6 2 宿舍楼基本数据表y x _ d o r m i t o r y 2 8 表6 3 宿舍分配数据表y x _ d o r m 2 9 表6 4 床位分配表y x _ b e d a s s i g n 2 9 表6 5 学生缴费情况表y x _ f e e 3 0 表6 6 缴费情况类别表y x _ f e e t y p e 3 0 , v 基于s t r u t s 架构的数字迎新系统的设计与实现 表6 7 学生报到表y x _ r e g 3 0 表6 8 新生学费标准表y x _ n e w f e e 31 表6 9 院系表y xd e p a r t 3 1 表6 1 0 专业分类表y x _ s u b j e c t 3 1 v i 原创性声明 本人声明:所呈交的学位论文是本人在导师的指导下进行的研究工作及取得的研究成 果。除本文已经注明引用的内容外,论文中不包含其他人已经发表或撰写过的研究成果,也 不包含为获得凼蓥直塞堂及其他教育机构的学位或证书而使用过的材料。与我一同工作的同 志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:3 2 垄蕴: e l 期:o 孕。上s 窆 指导教师签名:惑垂。兰 e l期:喳! 堕i 芝旦 在学期间研究成果使用承诺书 本学位论文作者完全了解学校有关保留、使用学位论文的规定。即:内蒙古大学有权将 学位论文的全部内容或部分保留并向国家有关机构、部门送交学位论文的复印件和磁盘,允 许编入有关数据库进行检索,也可以采用影印、缩印或其他复制手段保存、汇编学位论文。 为保护学院和导师的知识产权,作者在学期间取得的研究成果属于内蒙古大学。作者今后 使用涉及在学期间主要研究内容或研究成果,须征得内蒙古大学就读期间导师的同意;若用 于发表论文,版权单位必须署名为内蒙古大学方可投稿或公开发表。 学位论文作者签名: 去磊、 日期:皇211 二! 兰 指导教师签名:整垂羔 e l 期:壁匹z5 1 内蒙古大学工程硕士学位论文 第一章引言 1 1 选题的背景 高校每年的迎新工作是紧张而繁忙的,新生报到时要涉及很多部门,以往的迎新工作大 都是人工登记、统计,新生报到的程序也有很多,如交费、报到、分配宿舍等等。由于涉及 的部门多,学校管理部门不容易及时地了解新生的报到情况,导致某些专业的补录不能及时 地进行;新生报到的流程繁多,学生很容易出现手续漏办、错办的情况;迎新工作的资料大 部门是由各部门手工完成的纸质资料,不便于数据合成、保存和统计,也不利于下一步学生 数据的处理,如教务系统的数据移植等。 基于上述种种迎新问题,结合学校的管理模式,综合的分析传统迎新的工作流程,开发 数字迎新系统。数字迎新系统涉及新生报到的各个管理环节,是多应用系统整合充分进行数 据共享的典型应用。数字迎新系统既提高了学校的管理水平和管理效率,也为学生带来了方 便。 1 2 选题的意义 数字迎新系统为职能部门和各院系提供了新生信息管理与服务,将整个新生报到的过程 纳入数字迎新系统,使得新生报到过程变得整齐有序、简捷高效;数字迎新系统给新生和家 长提供了高效、便捷、一站式的入学报到环境和服务,新生办完全部手续只需半小时左右, 对于初进大学校园的新生,迎新现场有线网与无限局域网结合的校园网络环境、方便快捷的 数字迎新系统使他们在潜移默化中接受科技创新与服务社会的教育。数字迎新系统不仅使新 生和家长们感受到了极大的便利,也让参与服务的工作部门体验了管理信息化带来的高效快 捷,对于推动整个学校的信息化工作起到了积极的示范作用。 1 3 国内在该方向的研究使用现状 目前,国内部分一流高校实现了数字迎新,大部分是集成到“校园一卡通 业务罩的。 反馈的结果来看,数字迎新系统提高了学校的管理水平和管理效率,为新生的报到带来了方 便;使得迎新的工作流程更为有序;各部门的数据达到了同步,减少了部门协调的难度;为 学校的相关部门提供及时准确的报到数据;快速的统计出各专业的报到率,为下一年的招生 基于s t r u t s 架构的数字迎新系统的设计与实现 计划的制定提供必要的数据依据;为下一步的数据业务的处理和数据的快速移植提供了条件。 分析了内蒙古财经学院现有状况,发现市场上现有的数字迎新系统,在功能设计上不能 完全符合学院的需求,在学院尚未实现校园“一卡通”的情况下,结合学校自身数据的特点 和其他已有系统的整合需求上,自行设计开发一套符合本校需求的数字迎新系统。 1 4 课题研究的内容 本课题的主要核心研究内容之一是进行项目的需求分析,首先比较系统的分析了传统迎 新模式和迎新流程,结合迎新工作人员对每年迎新过程中碰到的问题进行了集中分析,总结 传统迎新存在的主要弊端。总结如下: l 、各迎新单位获得的录取学生的数据是已录取考生的纸质报考表,导致每个新生报到时 查询核实比较费时。如果是报到高峰期,会出现排长队的现象。 2 、多个迎新工作人员的协同工作容易冲突。例如,给新生分配宿舍,由于基于手工分配, 会导致一个床铺分给两人的情况。 3 、各部门迎新的协调工作难。例如,按报到流程,先缴费再注册,如果新生没有带缴费 收据来进行注册,这时候注册部门就不能得知该生是否缴费,打电话查询或让新生取来收据, 都会影响到报到的速度。 4 、报到数据的统计不及时。手工统计的速度和精度都不能做到实时性。 5 、新生报到前后对自己的报到情况不能实时了解。新生初来乍到,对于该报到的流程容 易漏掉。 6 、新生的最后数据的处理工作量大。需要把所有未报到的学生查找出来,再进行处理, 人工操作的工作量很大。 基于以上的分析,根据信息化产品开发的标准,结合目前已有应用系统的数据共享标准 化的需求,以及迎新工作人员所能接受的操作模式来综合分析,设计数字化迎新系统的功能 模块。 核心研究内容之二就是系统功能模块的设计。考虑到现场迎新的环境以及迎新管理人员 的操作方式,系统采用b r o w s e s e r v e r 的模式,只要网络畅通的环境下通过访问数字化迎新系 统就可进行管理和查询操作,不需要安装任何客户端或插件。根据需求分析,为该系统设计 了如下的功能模块: 1 新生查询模块:此模块的功能是通过查询,来确认该新生的合法身份和获得该新生的 2 内蒙古大学工程硕士学位论文 相关信息,以及报到后新生可以进行核实。同时为管理人员提供该学生的完整详细的 招生信息和入学信息。 2 公共查询:能够快速便捷查询各系、各专业的学生的报到信息、缴费信息和宿舍分配 信息。该模块可以以各种检索条件来进行查询。 3 迎新管理:在现场迎新的各教学部门的管理人员通过该模块,为新生进行报到注册、 缴费登记、宿舍床位分配等操作。该模块以院系管理员的权限进行管理,且各院系管 理员只能管理录取到本院系的学生。 4 公寓管理:由公寓管理部门提供宿舍资源,管理并分配各院系宿舍。该模块由公寓管 理员的权限进行管理,在新生报到之前对各院系的宿舍进行分配。 5 迎新统计:实时统计迎新数据,可以按照院系、专业来统计新生缴费情况、报到情况、 宿舍分配情况,并可以以比例图的形式直观的显示数据。该模块有相关的学校领导和 相关的职能部门的特殊权限的用户可以访问。 6 数据导入与导出模块:可以准确无误的导入招生录取数据作为新生的基础库,迎新结 束后,按需求可以导出各种格式的数据。 由于迎新流程涉及到的部门很多,各部门需要的数据不同,对数据的处理过程不同,所 有新生信息又都是全校学生教务信息的一个重要部分,因此,只有保证各部门协调高效的工 作,才能保证数据的及时性、准确性。 3 基于s t r u t s 架构的数字迎新系统的设计与实现 2 1j 2 e e 体系简介 第二章j 2 e e 应用综述 j 2 e e 平台规范是一个由s u n 公司定义的用于简化分布式企业级应用开发与部署的基于 组件的模式。它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式 应用模型是根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在 分布式服务器的组件容器中运行( 如s e r v l e t 组件在s e r v l e t 容器上运行,e j b 组件在e j b 容器 上运行) ,容器间通过相关的协议进行通讯,实现组件间的相互调用。 j 2 e e 是一种利用j a v a 2 平台来简化系统开发方案的开发、部署和管理相关的复杂问题 的体系结构。j 2 e e 技术的基础就是核心j a v a 平台或j a v a 2 平台的标准版,j 2 e e 不仅巩固 了标准版中的许多优点,例如“编写一次、随处运行 的特性、方便存取数据库的j d b c a p i , c o r b a 技术以及能够在i n t e m e t 应用中保护数据的安全模式等等,同时还提供了对 e j b ( e n t e r p r i s ej a v ab e a n s ) ,j a v as e r v l e ta p i ,j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支 持。j 2 e e 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性 以及可扩展性的应用的需求。通过提供统一的开发平台,j 2 e e 降低了开发多层应用的费用和 复杂性,同时提供对现有应用程序集成的强有力支持,完全支持e n t e r p r i s ej a v ab e a n s ,有良 好的向导支持和应用部署功能,添加了目录支持,增强了安全机制,提高了性能。j 2 e e 为搭 建具有可伸缩性、灵活性、易维护性的应用系统提供了良好的机制。 2 2j 2 e e 体系的技术优势 1 保留现存的i t 资产 由于系统必须适应新的业务需求,利用已有的信息系统方面的投资,而不是重新制定全 盘方案就变得很重要。这样,一个以渐进的方式建立在已有系统之上的服务器端平台机制是 用户所需求的,j 2 e e 架构可以充分利用用户原有的资源,是因为j 2 e e 拥有广泛的业界支持 和一些重要的企业计算领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已 有投资,进入可移植的j 2 e e 领域的升级途径。由于基于j 2 e e 平台的产品几乎能够在任何操 作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。 2 高效的开发一 j 2 e e 允许把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员 4 内蒙古大学工程硕士学位论文 可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下 这些复杂的中间件服务: 1 ) 状态管理服务:让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完 成程序开发。 2 ) 持续性服务:让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻 巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。 3 ) 分布式共享数据对象c a c h e 服务:让开发人员编制高性能的系统,极大提高整体部署的 伸缩性。 3 支持异构环境j 2 e e 能够开发部署在异构环境中的可移植程序。 基于j 2 e e 的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于 j 2 e e 的程序只需开发一次就可部署到各种平台。这在典型的异构计算环境中是十分关键的。 j 2 e e 标准也允许客户订购或开发与j 2 e e 兼容的第三方的现成的组件,把他们部署到异构环 境中,节省了制订整个方案所需的费用。 4 可伸缩性 应用系统必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些 在他们系统上进行商业运作的大批新客户。基于j 2 e e 平台的应用程序可被部署到各种操作系 统上。例如可被部署到高端u n i x 与大型机系统,这种系统单机可支持6 4 至2 5 6 个处理器。 j 2 e e 领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器 集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来应用的需要。 5 稳定的可用性 一个服务器端平台必须能全天候运转以满足用户的需要。因为i n t e r n e t 是全球化的、 无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后 果。j 2 e e 部署到可靠的操作环境中,他们支持长期的可用性。一些j 2 e e 部署在w i n d o w s 环境中,客户也可选择健壮性能更好的操作系统如s u ns o l a f i s ,最健壮的操作系统可达到 9 9 9 9 9 的可用性或每年只需5 分钟停机时间。这是实时性很强应用系统理想的选择。 基于层次化组件模式的j 2 e e 平台把业务逻辑和底层网络技术分离开来,具有可伸缩性、 扩展性、易开发性和易维护性,己经成为企业级分布式网络计算的事实标准。j 2 e e 是大量业 内技术专家、教育专家集体智慧和经验设计出来的一套先进、完美、实用的规范,遵从这个 规范的开发者将得到行业的广泛支持,使企业级应用的开发变得简单、快速,j 2 e e 系统平台 的思想是通过一个基于组件的应用程序模式为分布式应用程序提供一个统一的标准。 5 基于s t r u t s 架构的数字迎新系统的设计与实现 3 1 传q u s p 处理机制的弊端 第三章s t r u t s 架构 j a v as e r v e rp a g e ( j s p ) 文件是s e r v l e t 的另一种方式。j s p 文件的概念使我们能够将j a v a 一+ ? s e r v l e t 看作一个h t m l 网页。j s p 消除了j a v a 代码中经常出现的p r i n t 0 语句。j s p 文件首先 被预处理为j a v a 文件,然后再编译为c l a s s 文件。如果使用的是t o m c a t 的服务器,在w o r k 目录下可以查看预处理后的j a v a 文件。不同的容器将j a v a 和c l a s s 文件存储在相应的目录下, 这个目录与容器有关。图3 1 说明了从j s p 文件到s e r v l e t 的流程。 图3 1 从j s p 文件到s e r v l e t 的流程 f i g u r e3 1t h ef l o wf r o mj s pt os e r v l e t 在传统的j s p 应用程序中,经常会看到数据、业务逻辑和用户界面被组合在一个代码模 块中,即j s p 页面中。此外,应用程序还可能包含用来控制应用程序流程的逻辑。图3 2 说 明在简单的请求和响应中,j s p 文件设置数据、控制到下一个网页的流程并创建h t m l 。 图3 2j s p 应用程序的业务控制 f i g u r e3 2t h eo p e r a t i o nc o n t r o lo fj s pa p p h c a t i o n 这样把所有处理业务的代码都放到j s p 页面中,给设计者和使用者带来很多不方便,也 是系统的控制和安全不容易保障。其弊端总结如下: 1 h t m l 和j a v a 强耦合在一起:j s p 文件的编写者必须既是网页设计者,又是j a v a 开 发者。 2 j a v a 和j a v a s c d p 容易混淆:当网页中出现j a v a s c r i p t 时,这种脚本就可能与j a v a 代码 产生混淆。例如使用客户端的j a v a s c f i p t 来验证e m a i l 域。 3 内嵌的流程逻辑复杂:要理解应用程序的整个流程,就必须浏览所有网页。 4 调试困难:h t m l 标记、j a v a 代码和j a v a s c d p t 代码都集中在一个网页中使调试变得 相当困难。 6 内蒙古大学工程硕士学位论文 5 强耦合导致修改困难:更改业务逻辑或数据可能牵涉相关的每个网页。 6 美学和安全性差:在很多的网页中,这样编码样式看起来杂乱无章。即使有彩色语法 显示,阅读和理解这些代码仍然比较困难。 3 2m v c 设计模式简述 基于j s p 处理机制的种种弊端,在j s p1 1 中,人们开始使用一种称为“标记 的j s p 新 特性,j s p 标记是将代码从j s p 文件中抽取出来的一种方式,标记允许j a v a 程序员将j a v a 代码伪装成h t m l 来扩展j s p 文件。j s p 标记只解决了部分问题。在开发应用系统中我们还 得处理验证、流程控制和更新应用程序的状态等问题。于是就出现了m v c ( m o d l e v i e w - c o n t r o l l e r , 模型视图控制器) 设计模式,图3 3 是m v c 的处理机制图。m v c 通过将问题分为三个类别来帮助解决单一模块方法所遇到的某些问题: m o d e l ( 模型) :模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它 包含的唯一功能就是状态。它对视图或控制器一无所知。 v i e w ( 视图) :视图提供模型的表示。它是应用程序的外观。视图可以访问模型的读 方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到 通知。 c o n t r o l l e r ( 控制器) :控制器对用户的输入作出反应,创建并设置模型。 a l e n t b r o w s e r h t t p r e q u e s t c o n t r o l l e r s e p t e t 制1 鲨 _ h t 了pi j 5 p r e s p o n s e 。 3 3s t r u t s 架构及核心类介绍 s 俄 i q s 绝n l i 融e 酝o d e l b e a n ) p r o v i d e db ya b a o k e n 穗s e r 诵c e s u c ha s e l bs e t v e t 图3 3m v c 的处理机制图 f i g u r e3 3t h ef l o wf i g u r eo fm v c s t r u t s 是使用s e r v l e t 和j a v as e r v e rp a g e s 技术的一种m v c 设计模式的实现,通过把 s e r v l e t 、j s p 、j a v a b e a n 、自定义标签和信息资源整合到一个统一的框架中,为w e b 开发提供 7 基于s t r u t s 架构的数字迎新系统的设计与实现 了具有高可配置性的m v c 开发模式。这个定义表示s t r u t s 是一个框架,而不是一个库,但 s t r u t s 也包含了丰富的标记库和独立于该框架工作的实用程序类。图3 4 显示了s t r u t s 的概 览。 趸e v e :n 量t r j 拿c o n t 箭r o l l e r t t p r is 鬯r 叫尊t r e q l l e s l l _ r - - - _ r d i s p a t c h f o r w a r di s v u t s * c o n f l gx m l 制i ! ;j 篁s p 一 h 了t p r e s p o n s e 。 g e 藿 b u s i n e s sl o g i c a c t i o n m o d e i a p p l i c a o ns t a t e 图3 4s t r u t s 架构图 f i g u r e3 4t h ec o m p e n d i u mo fs t r u t s c l i e n tb r o w s e r ( 客户浏览器) :来自客户浏览器的每个h n p 请求创建一个事件。 w e b 容器将用一个h t t p 响应作出响应。 c o n t r o l l e r ( 控制器) :控制器接收来自浏览器的请求,并决定将这个请求发往何处。 就s t r u t s 而言,控制器是以s e r v l e t 实现的一个命令设计模式,即s t r u t s c o r t f i g x m l 文 件配置控制器。 业务逻辑:业务逻辑更新模型的状态,并帮助控制应用程序的流程。就s t r u t s 而言, 这是通过作为实际业务逻辑包装的a c t i o n 类完成的。 m o d e l ( 模型) 的状态:模型表示应用程序的状态。业务对象更新应用程序的状态。 a c t i o n f o r mb e a n 在会话级或请求级表示模型的状态,而不是在持久级。j s p 文件使用 j s p 标记读取来自a c t i o n f o r mb e a n 的信息。 v i e w ( 视图) :视图就是一个j s p 文件。其中没有流程逻辑,没有业务逻辑,也没有 模型信息,只有标记。标记是使s t r u t s 有别于其他框架( 如v e l o c i t y ) 的因素之一。 理解了s t r u t s 架构模型后,详细分析一下s t r u t s 包,看是通过哪些类来实现m v c 模式。 图3 5 是o r g a p a c h e s t r u t s a c t i o n 包的u m l 图,该图显示了a c t i o n s e r v l e t ( c o n t r o l l e r ) 、 a c t i o n f o r m ( f o r ms t a t e ) 和a c t i o n ( m o d e lw r a p p e r ) 之间的最简单关系。 8 腮丁 内蒙古大学工程硕士学位论文 辩u 暑e 5 。c m a t e s 0 1i 降毵e r v l e t “ 一l 图3 5o r g a p a c h e s t r u t s a c t i o n 包的u m l 图 f i g u r e3 5t h eu m lo fo r g a p a c h e s t r u t s a c t i o np a c k a g e 下面简单的说明一下a c t i o n 包中核心的几个类: 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 是该m v c 实现的c o m m a n d 部分,它是这一框架的核心。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 。如前所述,s t r u t s c o n f i g x m l 文件配置该 c o m m a n d 。在创建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 如何使用这些扩展的类。这种方法有几个优点:应用程 序的整个逻辑流程都存储在一个分层的文本文件中。这使得人们更容易查看和理解它,尤其 是对于大型应用程序而言;网页设计人员不必费力地阅读j a v a 代码来理解应用程序的流程; j a v a 开发人员也不必在更改流程以后重新编译代码。此外,还可以通过扩展a c t i o n s e r v l e t 来添加c o m m a n d 功能。 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 ,需要创建它的子类并重写p r o c e s s ( ) 方法。a c t i o n s e r v l e t 利用p e r f o r m o 方法将参数化的类传递给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 0 的调用。当 表单提交时,输入表单数据( 或h t m l 表单数据) 已被从请求流中提取出来并转移到 a c t i o n f o r m 类中。 考虑a c t i o n 类的另一种方式是a d a p t e r 设计模式。a c t i o n 的用途是“将类的接口转换 为客户机所需的另一个接口。a d a p t e r 使类能够协同工作,如果没有a d a p t e r ,则这些类会因 为不兼容的接口而无法协同工作”。系统中的客户机是a c t i o n s e r v l e t ,它对我们的具体业务 9 基于s t r u t s 架构的数字迎新系统的设计与实现 类接口一无所知。因此,s t r u t s 提供了它能够理解的一个业务接口,即a c t i o n 。通过扩展a c t i o n , 使得我们的业务接口与s t r u t s 业务接口保持兼容。 a c t i o n m a p p i n g 类 输入事件通常是在h t l m 提交表单中发生的,s c r v l c t 容器将h t t p 请求转换为 h t t p s c r v l c t r c q u c 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 类。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 t 通过p e r f o r m o 方法将a e 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 f o r m 类 a c t i o n f o r m 维护w e b 应用程序的会话状态。a c t i o n f o r m 是一个抽象类,必须为每个输 入表单模型创建该类的子类。例如,有一个由h t m l 表单设置的u s e r a c t i o n f o r m 。s t r u t s 框架将执行以下操作: 1 ) 检查u s e r a e t i o n f o r m 是否存在;如果不存在,它将创建该类的一个实例。 2 ) s t r u t s 将使用h t t p s e r v l e t r e q u e s t 中相应的域设置u s e r a c t i o n f o r m 的状态。例如,s t r u t s 框架将从请求流中提取f n a m e ,并调用u s e r a c t i o n f o r m s e t f n a m e ( ) 。 3 ) s t r u t s 框架在将u s e r a c t i o n f o r m 传递给业务包装u s e r a c t i o n 之前将更新它的状态。 4 ) 在将它传递给a c t i o n 类之前,s t r u t s 还会对u s e r a c t i o n f o r m 调用v a l i d a t i o n ( ) 方法进 行表单状态验证。注:这并不总是最佳方案。别的网页或业务可能使用 u s e r a e t i o n f o r m ,在这些地方,验证可能有所不同。在u s e r a c t i o n 类中进行状态验 证可能更好。 5 ) 可在会话级维护u s e r a c t i o n f o r m 。 3 4s t r u t s 配置文件s t r u t s c o n f i g x m l s t r u t s 配置文件s t r u t s c o n f i g x m l ,默认可以在目录w e b i n f 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 f o r mb e a n 和j d b c 数据源四个部 分。 1 ) 配置全局转发 全局转发用来在j s p 页之间创建逻辑名称映射。转发都可以通过对调用操作映射的实例 来获得,例如:a c t i o n m a p p i n g l n s t a c e f m d f o r w a r d ( ”l o g i c a l n a m e ”) ,全局转发的例子: 1 0 内蒙古大学工程硕士学位论文 表3 1 属性 t a b l e3 1 a t t r i b u t e 属性描述 n a m e 全局转发的名字 p a t h与目标u r l 的相对路径 2 ) 配置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 对象帮助进行框架内部的流程控制,它们可将请求u r i 映射到a c t i o n 类, 并且将a c t i o n 类与a c t i o n f o r mb e a n 相关联。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 类使用p e r f o r m ( ) 方法实现特定应用程序代码,返回一 个a c t i o n f o r w a r d 对象,其中包括响应转发的目标资源名称。例如: 表3 2 属性 t a b l e3 2 a t t r i b u t e 属性描述 p a t h a c t i o n 类的相对路径 n a m e 与本操作关联的a c t i o nb e a n 的名称 t y p e 连接到本映射的a c t i o n 类的全称( 可有包名) s c o p e a c t i o n f o r mb e a n 的作用域( 请求或会话) p r e f i x用来匹配请求参数与b e a n 属性的前缀 s u f f i x 、7 用来匹配请求参数与b e a n 属性的后缀 a t t r i b u t e 作用域名称。 c l a s s n a m e a c t i o n m a p p i n g 对象的类的完全限定名默认的类是 基于s t r

温馨提示

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

评论

0/150

提交评论