查智基于MVC的客户管理子系统的设计与实现.docx

上传人:李司机 文档编号:6831304 上传时间:2024-03-01 格式:DOCX 页数:55 大小:673.31KB
返回 下载 相关 举报
查智基于MVC的客户管理子系统的设计与实现.docx_第1页
第1页 / 共55页
查智基于MVC的客户管理子系统的设计与实现.docx_第2页
第2页 / 共55页
查智基于MVC的客户管理子系统的设计与实现.docx_第3页
第3页 / 共55页
查智基于MVC的客户管理子系统的设计与实现.docx_第4页
第4页 / 共55页
查智基于MVC的客户管理子系统的设计与实现.docx_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《查智基于MVC的客户管理子系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《查智基于MVC的客户管理子系统的设计与实现.docx(55页珍藏版)》请在三一办公上搜索。

1、查智基于MVC的客户管理子系统的设计与实现密级武汉大学本科毕业论文基于MVC的客户管理子系统的设计与实现院(系)名称:国际软件学院业名称:软件工程生姓名:查智导教师:李晓剑二Oe)九年五月郑重声明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出奉献的其他个人与集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。日期:本人签名:BACHELORSDEGREETHESISOFWUHANUNIVERSITYTheResea

2、rchandImplementationofClientManagementSystemBasedonMVCCollege:Subject:SoftwareEngineeringName:ZhazhiDirectedby:May2009摘要随着金融业的不断进展,各商业银行越来越注重信用卡业务的开拓,信用卡管理的信息化,也随着计算机技术的进展,在不断地完善提高。信用卡管理信息的多样化与数据资源的复杂性,都对信用卡管理软件的实现模式提出了很高的要求,而基于Web的传统的软件构架已经不能满足软件设计的要求,很多新兴技术的进展与应用正在不断地改善传统的开发设计构架。本文结合信用卡管理的需求与当前比较先

3、进的设计思想,利用MVC设计模式进行设计,并对该设计模式进行了改进,加入了数据持久层与业务逻辑层的实现。Struts是基于MVC模式的Web应用开发框架。它有效的分离了表示层与业务逻辑层,但它并没用对复杂的数据持久层提供支持。而Hibemate提供了灵活的数据持久层支持。因此通过将这两个框架整合起来,并结合贯穿整个表现层、业务层、持久层的SPring,能够得到一个开发灵活、低耦合及易扩展的企业应用完整解决方案。UML(UnifiedModelingLanguage)是一种通用的可视化建模语言。由于其定义良好、易于使用、功能强大且普遍适用的特点,同时融合了当前一些面向对象的要紧概念与技术,已经成

4、为软件开发事实上的标准。结合商业银行有关标准,本文设计并实现了一个基于StrutsHibernate与SPring的信用卡管理系统中的客户管理子系统。系统使用UML语言与面向对象的方法进行系统分析与设计,从而降低了开发风险,提高了开发效率。系统基本实现了信用卡客户管理的功能,如账户管理、存取款管理、结算管理、账单管理等。关键词:MVC;Struts;Hibernate;UMLABSTRACTWiththebankingbusinessandthecomputertechnologydevelopingfast,creditcardmanagementisbecomingmoreandmorei

5、mportant,andtheinformatizationofcreditcardmanagementisdevelopingwell.Sincetheinformationrelatedtocreditcardmanagementisverymultipleandthedataisverycomplex,therequirementtothedesignmodeofcreditcardmanagementsoftwareishigh;what,smore,thetraditionalWebdesignmodecannevermeettherequirement.Combinedwithth

6、esituationofcreditcardmanagementandthepresentadvanceddesignmethod,thethesisdevelopsthesoftwarebasedonMVCmodelwithaddingadatapersistencemanagerlayerandabusinesslogiclayer.StrutsisadevelopmentframeworkbasedonMVCpatternforWebapplications.Itprovidesawaytoseparatepresentationlayerandbusinesslogiclayer,bu

7、titdoesnotsupportcomplexdatapersistentlayer.Hibernateisaframeworkforflexibledatapersistentlayer.Thus,bycombiningthetwowiththeSpringwhichthroughoutthepresentationlayer,businesslayer,persistencelayer;Wecanobtainacomprehensivesolutionforenterpriseapplicationintegrationwhichcanachieveflexibledevelopment

8、,loosecouplingandexpansibility.UMLisacommonly-usedvisualmodelinglanguage.Becauseofitsfeaturessuchaswelldefinition,easytouse,powerfulfunctionandpervasiveusage,andintegrationwithobject-orientedconceptsandtechnology,ithasbecomeadefactostandardofsoftwaredevelopment.Combinationofcommercialbank-relatedsta

9、ndards,WedesignandimplementaclientmanagementsystemofcreditcardmanagementsystembasedonStruts,HibernateandSpring.WeapplyUMLmodelinglanguageandobject-orientedmethodtoconductingsystemanalysisanddesign.Bydoingthis,theriskofsoftwaredevelopmentisreducedandtheefficiencyisincreased.Thissystemmeetsthebasicfun

10、ctionalrequirementoftheclientmanagementincludingaccountmanagement,depositmanagement,billingmanagement,billmanagement.KeyWords:clientmanagementsystem,MVC,Struts,Hibernate,Spring,UML第1章引言1.1 选题的目的与意义随着经济全球化的推进与中国金融业改革的不断深化,人们的生活消费方式也有了显著的变化,最明显的就是人们随身携带的不再是大量的现金,而是一张张小而轻巧的信用卡。信用卡(CreditCard)作为非现金交易付款方

11、式,以其便于携带、使用方便、交易安全等优点,在欧美国家得到了普遍地使用。本世纪初,信用卡开始在中国流行,近几年来得到了迅速的进展,据统计,截至2008年6月30日,中国信用卡发行量已猛增到1.22亿张。目前,多数商业银行都推出了信用卡业务,随着发卡量的增加,如何提高信用卡管理与结算效率并将信用卡管理人员从繁杂的手工劳动中解放出来,成为一个迫切需要解决的问题。在这样的背景之下,“软酷网”卓著实验室研发六部通过分析研究,选择了“信用卡管理系统”作为实训项目。该系统使用便于使用与保护的B/S开发模式,这样信用卡管理人员只需要通过浏览器便可在银行内网中进行各项管理操作,同时还使用了基于MVC(Mode

12、l-VieW-COntrOlIer)的Struts+Spring+Hiberate框架进行软件的开发,能够很好的实现模型与表示层的分离,由操纵器来进行业务流程操纵,符合J2EEWeb应用系统开发的基本要求,也有利于软件后期的升级与保护。1.2 信用卡管理系统的进展状况近年来,随着网络技术与金融业的不断进展,各商业银行越来越注重信用卡业务的开拓,因此对信用卡管理提出了更高的要求。改变原有的管理模式,运用先进的手段进行管理,已经成为现在信用卡管理的必定选择。这样,各类针对信用卡管理的应用软件不断涌现,同时经历了从单机版到网络版的转化。网络信用卡管理软件的进展更加有力地提高了信用卡管理水平,借助金融

13、业网络信用体系构建信用卡管理系统,能够合理利用Internet的网络资源与Web跨平台的数据访问能力,通过网络来进行交易记账、结算及存取款,信用卡用户们能够通过浏览器来直接参与信用卡的管理。同时,信用卡系统的管理人员能够很方便地获取及时、准确、全面的数据与有关信息,将银行卡部员工从繁琐的手工劳动中解放出来,提高生产率,继而从整体上提高了信用卡管理的水平。然而信用卡管理系统的设计也不能一劳永逸,由于各商业银行经营理念的不一致、结算体系的不一致及信用评估的不一致,而各不相同,没有统一的标准,也很难建立一个统一的标准,系统的适用性、通用性很难实现。因此,现在信用卡软件的开发设计在向各类流行的设计模式

14、靠拢提高系统的可移植性与可扩展性的同时,还要考虑到自身信用卡管理的特点,以便更好地满足信用卡管理的需求。1.3 论文研究内容当前计算机技术越来越趋于成熟,各类设计思想不断涌现,MVC成为适用于各类大型Web应用的构架技术。它的目的就说最大限度地降低系统各部分之间地耦合度,提高系统的可扩展性,提高代码的重用率。基于MVC的J2EE技术的应用更是广泛,本文这里也要紧使用StrlnS框架来实现上述技术,并以此作为信用卡管理子系统的技术解决方案。本文的要紧工作如下:(1)全面介绍了MVC开发模式的设计思想,分析了两种常见的JSPMOdeI的优缺点,并介绍了实现MVC设计思想的StrUtS框架,并分析了

15、StrUtS的工作流程,与StrUtS开发的优势。(2)以MVC模型为设计思想,运用StrUtS框架来实现信用卡管理系统的开发设计。本文使用当前比较流行与便利的B/S模式开发模式,使用StnItS框架来实现系统表现层与业务层的分离,更加有利于系统的开发与保护。进一步在系统的业务实现层与数据库之间加入了数据持久层,使得系统对数据库的访问实现面向对象的设计。简单介绍了数据持久化技术与本文实现数据库持久层的工具Hibernate持久化框架。(3)对信用卡系统进行总体的分析,对信用卡管理中要紧业务进行了分析,并进一步确定了系统的技术构架。以客户管理子模块为例,说明系统开发设计的流程与具体的业务实现。介

16、绍了贯穿表现层、业务层、持久层的Spring框架,作为一个依靠注入的容器,对StrUtS与Hibemate实施监控的同时,且能够做安全、日志工作。1.4 论文结构本文要紧研究在J2EE平台下基于MVC设计模式开发信用卡管理软件WEB应用程序的有关技术,在传统的WEB应用程序开发的基础上,对基本的设计模式进行了改进,使用三层开发模式来降低系统各个模块之间的耦合性,并通过一个具体模块的实现来说明各个层次的设计与实现。全文共分为五章:第1章,引言。介绍了信用卡管理软件的进展现状,并进一步分析了该类软件开发过程中存在的问题;第2章,信用卡系统总体设计分析。概括分析说明了信用卡管理的要紧业务,在熟悉用户

17、需求的基础上,设计了系统的总体功能模块,使用了UML语言对系统进行建模;第3章,系统研发技术。阐述了MVC设计模式与常见的JSP设计模式,并介绍了StnltS这个用来实现MVC设计思想的开源项目,另外还对引入的数据持久技术与本文实现这种技术的Hibernate持久框架做了介绍,也对整合前两个框架实现依靠注入与切面编程的SPring做了简要介绍;第4章,客户管理子系统的设计与实现。通过对该模块的实现,来表达整个设计思想,并介绍了本文实践项目的一些亮点与独到之处;第5章,系统评价。要紧从系统安全与性能特点两方面来介绍;第6章,总结语。总结整个设计,并说明不足及进一步改善的方向。第2章信用卡管理系统

18、总体分析2.1系统简介信用卡管理系统是集账户管理、信用卡管理、用户信息保护、报表信息管理为一体的业各系统,具有灵活的应用架构、费用结构与产品定义,在系统、机构、产品、客户、账户、交易等各个层面均实现参数化,是一个以客户为中心的多产品、多账户、多卡综合应用系统。2.2信用卡管理系统的总体功能框架信用卡管理系统要紧实现银行信用卡与客户间交易的记账与管理功能。信用卡管理涉及到的内容很多,但从大体上来看,它的要紧业务能够归纳为四个部分:账户管理、信用卡管理、报表管理、系统管理;要紧面对三类用户:银行普通员工、银行部门经理、系统管理员。信用卡管理系统的总体功能框架如图2.1所示。图2.1信用卡管理系统功

19、能结构图2.3系统的开发原则(1)可延展性与包容性系统应具有较好的可延展性与包容性。系统的可延展性应包含能够很好的兼容已有的系统与能够在今后一段时间内实现对系统软硬件扩展,能有效地保护已有的投资,系统易于扩充升级,既要满足当前业务的需求,又能随时进行扩展与保护。(2)系统简洁,易使用、易保护系统的设计符合日常办公运作的需求,功能不仅要有用,还应该简单易学,具有比较友好的用户界面,易于扩充。整个开发设计层次简单明了,便于管理,易于扩充。(3)为员工,经理提供良好的信息服务系统对信用卡信息进行了合理的布局,以便于提供优质、高效的业务管理与事务处理,是系统用户对信用卡账户进行保护,完成信用卡交易记账

20、与管理(4)可靠运行,安全保密在该系统的开发过程中,将通过身份认证,权限检查,来解决信用卡管理系统的安全性、保密性问题,确保系统的有效与安全运行。2.4系统功能概述信用卡管理系统不仅要管理信用卡使用的各个环节:如开卡到记账、存取款的业务活动,还要管理所涉及到的各类对象与资源:如管理员、系统用户、账户、信用卡等;同时信用卡管理系统还要提供相应的算法来结算账单。其中客户管理模块要紧的业务功能实现,将在下列进行有关的介绍。(1)客户开户申请管理子模块客户提交开户申请表,进行合法性验证,交给银行员工审核,假如审核通过,将客户信息填入客户信息表,并为客户开通信用卡服务所需的账号,客户开户管理子模块的业务

21、流程如图2.2所示。图2.2客户开户管理子模块业务流程示意图(2)账户信息保护子模块通过对开户客户的消费、取现、透支等交易记录统计,银行员工修改相应账户的信用额度,同时完成账户的销户工作。该模块的业务流程如图2.3所示。图2.3账户信息保护子模块业务流程示意图(3)取款管理子模块取款管理子模块要紧完成取款申请、取款合法性验证、自动完成取款额与可用额、信用额度的核对等,最大限度的实现取款的自动化。该模块的业务流程如图2.4所示。图2.4取款管理子模块业务流程示意图图2.5账单管理子模块业务流程示意图(4)账单管理子模块账单管理是信用卡管理中很重要的一部分。该模块要紧列出客户交易账单的信息,并对每

22、月账单进行相应的结算,以便客户进行查询与打印。该模块的业务流程如图2.5所示。(5)报表管理子模块报表管理是信用卡管理中只针对银行经理一个模块。通过查看报表,银行经理能够熟悉银行开户、户头信用额、信用卡透支的现状及其进展趋势,清晰的把握信用卡业务的进展脉络,制定出相应的进展策略。该模块的业务流程如图2.6所示。图2.6报表管理子模块业务流程示意图以上描述了客户管理、报表管理的大致功能及其数据流图,而信用卡的管理及系统管理,其业务流程与客户管理开户与信息保护的流程大致相似,因此这里不做过多介绍。2. 5系统技术构架本系统使用了先进的设计理念与一些主流的技术。系统使用基于MVC的J2EE技术与We

23、b技术来实现的。传统的Web技术平台是一个三层结构。如图2.6所示。图2.7WEB三层结构示意图(1)具有良好的交互性:工作内容中有相当大的部分是人机交互,这就要求系统的交互性要强,从而满足需求。(2)具有较好的可扩展性:工作的内容与形式具有多变性,从而要求系统具有良好的可扩展性。(3)良好的可保护性:系统投入使用后,要紧是由管理员承担系统保护的工作,保护人员不定期变动,这就要求系统的可保护性强。(4)较好的跨平台性:用户可能使用各类不一致的操作系统,而且为了习惯今后可能的变化,系统应具有较好的跨平台性。一个典型的J2EE应用能很好地满足以上的性能要求,它至少包含表现层、业务层、数据持久层与数

24、据库服务器四个部分。在开发信用卡管理软件组件模板时,本文使用Struts来实现信用卡系统的表现层,数据持久层选择了ORMappingTools(Hibernate),业务逻辑层则用普通Java对象,把Struts与Hibernate这两种在业内比较推崇的开源技术相结合,并引入SPring依靠注入,使用JaVaBean代替EJB,进一步整合前两个框架,提升了项目开发的效率与易保护性。这样也相应地扩展了传统Web的三层体系结构,本文开发的系统体系架构如图2.8所示。客户层TOmCatl艮务器业务层持久层数据服务层图2.8信用卡管理系统技术结构图这种设计使服务器端与数据服务端能够根据系统的需求进行配

25、置,为系统结构提供极大的灵活性与收缩性。使用该多层结构技术的另一个优势是“瘦”客户端的设计与实现。主程序与要紧的业务功能模块都放在应用服务器上,客户端只需安装浏览器就能够在本地运行。本信用卡系统设计中,客户端为浏览器,中间层以Tomcat作为应用服务器支持业务逻辑的处理,以MySQLServer5.0作为数据库服务平台。第3章系统平台与技术2.1 MVC设计模式2.1.1 MVC模式的介绍随着Web开发的不断进展与需要,MVC模式被推荐并成为SUn公司J2EE平台的设计模式,同时在应用中受到越来越多的开发者的欢迎。MOdel-VieW-COmrOller原先是XeroXPARC在八十年代为编程

26、语SmaHtaIk-80发明的一种应用程序的框架结构,至今已被广泛使用。该框架结构支持三层结构的类:表现应用程序状态层、屏幕表现层与操纵流层,因此这三层被称之模式(MOde1)、视图(View)与操纵器(Controller),MVC是能够满足那些需要为同样的数据提供多个视图的应用程序的开发需要,在开发与用户界面有关,特别是对用户界面要求较复杂的有关的应用程序时,能够很好地以不一致的方式来显示同一数据,也就是在不改变软件功能的前提下,能够实现用户对用户界面的个性化要求,而MVC模式的最大特点就是将业务层与表示层分离,而且提供了很多使显示界面更加个性化的标签库,因此它能更好地实现用户界面的各类个

27、性化需求。MVC通常用于分布式应用系统的设计与分析,如:大型商业网站、企业信息系统、管理信息系统、决策支持系统等,但它本身并不局限于某一个特定的领域。MVC设计模式,最近几年被推荐为SlJN公司JZEE平台的设计模式,它强制性地把应用程序的输入、处理与输出分开。它的三个核心部件分别是模型、视图与操纵器,它们各自处理各自的任务:(1)模型(业务逻辑层):表示企业数据与业务规则,实现具体的业务逻辑、状态管理的功能。在MVC的三个部件中,模型拥有最多的处理任务。比如它可能用像EJB与ColdFUSiOnComPanieS这样的构件对象来处理数据库。被模型返回的数据都是中立的,也就是说模型与数据格式无

28、关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就能够被多个视图重用,因此减少了代码的重复性。(2)视图(表示层):即用户看到并与之交互的界面,是应用程序的外在表现,通常实现数据的输入与输出功能。对老式的Web应用程序来说,视图就是由HTML元素构成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术也层出不穷,它们包含MaCrOmediaFlaSh与像XHTML、XML/XSL.WML等一些标识语言与WebSerVices。因此如何处理应用程序的界面变得越来越有挑战性。MVe一个大的好处是它能为你的应用程序处理很多不一致的视图。在视图中事

29、实上没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并同意用户操纵的方式。(3)操纵器(操纵层):起到操纵整个业务流程的作用,根据用户的输入调用相应的模型与视图去完成用户的需求与有关的操作。具体地来说:操纵器本身不输出任何东西与做出任何处理。它只是同意客户的请求并进一步决定调用哪个模型去处理该请求,并根据处理结果来确定用哪个视图来显示模型处理之后返回的数据。它们三者之间的关系如图3.1所示。方法调用事件图3.1MVC组件类型的关系与功能2.1.2 MVC开发的优势通过以上对MVC开发模式的介绍,与两种JSP开发模式的比较,我们对MVC开发模式有

30、了一定的认识,这里将进一步介绍说明利用MVC模式开发的优势,具体表现在下列几个方面:(I)MVC模式很好地解决了软件工程中如何使软件系统各模块之间最大限度地降低其复杂的耦合关系,与系统显示逻辑与业务逻辑之间的矛盾(即用户界面的多变性与业务逻辑的相对不变性),能够尽可能地提高系统的可保护性与可扩展性。(2)模型、视图、操纵器三者的相互独立,当我们改变其中一部分时,其他两部分不可能受到影响,继而构造出良好的松耦合构件。(3)所有的模型与视图都是由操纵器连接与调用的,操纵器操纵功能使得它能够根据用户不一致阶段的不一致需求选择不一致的模型进行处理,并选择不一致的视图将处理结果显示给用户,很好地提高了系

31、统的灵活性。(4)一个模型能够拥有多个视图或者者说多个视图能够共享一个模型。多个视图能够提供多种数据显示方式,以满足不一致用户的需求。变化传播机制能够确保所有有关的视图与其模型达到同步,这一切都能够通过操纵器的协调来实现。(5)模型的可移植性与伸缩性。模型的相对独立性使得它很容易被移植到新的平台工作,很容易被改变业务规则而不影响视图与操纵器。然而,由于MVC是一个非常复杂的系统,因此使用MVC实现Web应用时,最好选一个现有的MVC框架,在此之下进行开发。由于StrUtS具有完整的文档同时相对来讲比较简单,因此通常使用它来开发MVC系统,实际上,Struts就是在JSPMode12的基础上实现

32、的一个MVC框架。3. 2Struts项目概述Struts是Apache组织的一个项目,像其他的Apache组织的项目一样,它也是一个开源项目。Struts作为一个设想是CraigRMcClanahan于2000年提出的,该设计的目标是为利用Java技术开发基于MVC模式的Web应用提供一个标准模式。基于Struts架构的Web应用程序基本上符合JSPMode12的设计标准,是MVC设计模式的一种变形,提供了对开发MVC系统的底层支持,它使用的要紧技术是ServletsJSP与CustomTagLibraryStruts框架是一种基于Java的技术,Web应用程序开发人员通过StnItS框架即

33、可充分利用面向对象设计,代码重用及“编写一次,到处运行”的优点。另外,StrUtS不仅是拥有自己的操纵器,同时整合了其他的一些技术来实现模型层与视图层,比如:在模型层,它能够很容易与数据库的访问技术相组合,包含JDBC技术与EJB技术;在视图层,它能够与JSP、XSL等组件相结合I因此从一定的意义上讲,使用StrUtS来实现基于MVC的Web应用的开发,能够根据具体的需求来选择设计的复杂程度,具有很好的扩展性。StrUtS的要紧优势功能如下:(I)Struts中包含一个操纵器ServIet,用来操纵用户的请求发送到相应的Action对象;(2)在JSP页面中能够选用自定义标签库,同时在操纵器S

34、ervlet中提供关联支持,这样能够帮助开发人员方便快捷地创建交互式表单应用;(3)Struts还提供了一系列有用对象:XML文件处理、通过JavaReflectionAPI自动处理JavaBean属性、国际化的提示与消息。3. 2.1Struts核心组件StrUtS是一组相互协作的类、SerVIet与JSP标记,它们构成了一个可重用的MVC设计模式。这个定义表示StnHS是一个框架,而不是一个库,但同时StrUtS也包含了丰富的标记库与独立于该框架工作的有用程序类库。Struts通过一些组件类来完成框架的功能,这些组件包含:ACtiOnSerVlet、ActionActionFormActi

35、onForward、ActionMapping。1. ActionServlet2. Action一个Action类的角色,就像是客户请求动作与业务逻辑处理之间的适配器,它作为应用程序响应用户请求的动作,将请求与业务逻辑分开。这样用户的请求与Action类之间能够有多个点对点的映射。Action最为常用的方法是execute(),典型的Action类通常要在execute。方法中实现下列逻辑:检查用户SeSSiOn的当前状态。假如SeSSiOn过期或者者用户没有登录,要将表示层的页面跳转到用户登录页面;(2)检查用户输入的合法性。调用FormBean实例的Validate()方法检查一些字段的

36、输入值是否恰当或者合法;(3)执行业务操作。调用业务逻辑Bean的相应方法执行用户的业务请求;(4)更新服务器端的对象。将MOdel的状态改变通知给View,并返回请求页面。3. ActionForm一个应用系统的消息转移(或者者说状态转移)的非持久性数据的存储,通常由ActionFormBean来负责,它的要紧功能是为Action的操作提供与客户表单相映射的数据。关于每一个客户的请求,通常要经历如下几个步骤:检查Action的映射,确定配置文件中己经配置了对ActionForm的映射;(2)根据Name属性查找ActionForm的信息;(3)查找ACtiOnForm的使用范围,确定在此范围

37、下是否存在对应的FormBean的实例;(4)假如在当前范围内,相应的FormBean的实例己经存在,而且对当前的请求来说是同一类型的话,就能够重用,否则,就要重新构建一个FormBean的实例;(5)调用FormBean的reset。方法;(6)调用对应的set()方法,对状态属性赋值;(7)假如validated属性值被设置为true,则调用FormBean的VaIidate()方法;(8)假如VaIidate()方法没有返回错误,操纵器将ActionForm作为参数,传给Action实例的execute。方法执行。4. ActionForward当Action实例的execute。方法运

38、行完毕后,操纵器根据Mapping能够将响应信息转到适当的地方,ActionForward的要紧功能就是对将要转向的视图的地址的一个封装。转向的各类属性也能够在配置文件中设置性,这样就大大提高了软件的复用性与可保护性。5. ActionMappingActionMapping以Java的形式封装了如何将一个请求URL映射到与其对应的ACtiOn的一些信息。ACtiOnMaPPing对象帮助进行框架内部的流程操纵,它们能够将请求URL映射到Action类,同时将Action类与ActionFormBean有关联。Struts框架的操纵器ActionServIet在内部使用这些映射将操纵转移到特定

39、的Action类的实例。3.2.2StriItS的工作流程使用Struts框架开发Web应用系统时,在Web应用启动时就会自动地加载并初始化ActionServlet,如今ActionServlet将会从Struts-config.xml文件读取配置信息,并把它们存放到各类对应的配置对象中。当AetiOnSerVE同意到一个客户请求时,将执行如下流程:(2)操纵器根据Struts-config.xml的配置信息将请求切换到具体的Action,对应的有关的FormBean的信息也一起发送给Action类的execute。方法。(3) Action的execute。方法返回一个ActionForw

40、ard对象,操纵器ActionServIet再通过该ActionForward对象来进行转发工作。(4) Action根据业务处理的不一致结果返回一个相应的目标响应对象给总操纵器,这个目标响应对象能够对应一个具体的JSP页面或者者是另外一个ACtiOn。3.2.3StnltS框架实现MVC模型StnltS实质上就是JSPMOdeI2的基础上实现的一个MVC模式框架,MVC设计模式为构建可扩展、可重用的体系结构打下了很好的基础,该设计模式需要用户将自己的代码抽象出来,把项目在一定的程度上分解为表示,逻辑与操纵三部分,每部分之间的关系相对较小,以便使得软件结构更加灵活,并具有较好的可重用性与可扩展

41、性。在StnHS框架中,模型通常有实现业务逻辑的JaVaBean或者EJB组件构成,操纵器由ACtionSerVIet与ACtiOn来实现,视图由一组JSP文件构成,Struts实现的MVC框架如图3.4所示。图3.2Struts实现的MVC模型StnltS是APaChe组织的一个项目,提供了一个实现MVC架构的高度自动化的方式,作为一个MVC的框架,StrUtS对Mode1、VieW与COmrOHer都提供了对应的实现组件:ActionServlet包含一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器

42、对象类之间的点到点的映射。ACtiOnMaPPing中有ACtiOn对象的名字与地址的描述,当有请求传入Controller时,它把请求的路径映射到Action的地址,并把请求传给那个Action类。ACtiOnMaPPing类也包含一些程序中可能的唯一的信息,比如本地变量,特定环境数据,或者者URL。91(2)模型(ModeI):表示应用程序的状态与业务逻辑。MVC系统中的MOdeI部分从概念上能够分为两类:系统的内部状态与改变系统状态的动作。StnHS为Model部分提供了ACtiOn与ACtiOnForm对象,所有的ACtion处理器对象都是程序开发者从Struts的Action类派生的

43、子类,并对其中要紧的方法进行覆盖。ACtion处理器对象封装了具体的业务处理逻辑,处理具体的业务逻辑操作,同时把响应提交到合适的VieW组件以产生响应。StrUtS提供的ACtionFo*m组件对象,能够通过定义属性描述客户端表单数据。我们能够从它派生子类的对象,利用它能够实现对客户端的表单数据的良好封装与支持,相应的Action处理器对象能够直接对它的表单数据进行读写,而不再需要与ReqUeSt、ReSPOnSe对象进行数据交互,通过ActionForm组件对象实现了对View与Model之间非持久性数据交互的支持。(3)视图(VieW):视图是用户看到并与之交互的界面。StrUtS应用中的

44、VieW部分是通过JSP技术实现的。StnHS提供了自定义的标签库,通过使用这些标签定义的JSP表单能够与Model部分中的ActionForm的映射,完成对用户数据的有关封装,同时还能够使用这些标签来丰富JSP页面。3. 2.4StrIItS框架开发的优缺点Struts是一个优秀的基于J2EE的MVC应用框架,现在己经越来越广泛的运用于各类企业平台之上。StrUtS在程序开发中有自身的优缺点,具体表现在下列几个方面:具有MVC模型所有的特点与优点,简化了基于MVC模型的应用程序的开发。(2)同意开发人员使用XML文件来配置很多默认的框架。(3)它提供了一个灵活的机制来处理特殊,而且提供了一个

45、方便的方法对应用程序的信息进行国际化。(4)开源项目进展较快,但代码、设计变动较大,利用不当会对系统的保护与升级不利。(5)Struts框架要紧是针对表示层设计的,对后端的逻辑层的支持不强。Web应用系统的开发,很多时候业务逻辑的处理都会是与后端的数据库进行操作,然而StrUtS只为视图、操纵器提供了现成的框架,关于模型提供框架支持e101o假如直接使用该框架进行开发,就需要直接在用户的业务逻辑中嵌入SQL代码,这样能够加快程序开发,但是会造成业务逻辑实现与关系数据库的访问实现的直接耦合,一旦数据库的列或者有关属性发生一些简单的改变,都会导致大量源代码的修改,这个问题能够通过使用EJB或者结合

46、Hibernate等第三方工具来解决。对StrUtS框架进行不一致的扩充,就能够得到符合很多设计要求的框架。3.3数据持久技术与Hibernate在使用了StrUtS技术的框架中,StrUtS简化了Web层的开发,实现了应用程序的显示逻辑与业务逻辑的分离,使应用程序更趋模块化,应用程序更加容易保护。这种应用程序的基本架构是MVC(Struts)+DAO(DataAccessObject)+JDBC+Databases为了进一步地提高代码的可复用性与可保护性,提高开发效率,需要一个更加有效的架构。由于大多数的应用程序都涉及到的数据库操作,通常数据库表会很多而且关系复杂,假如使用DAO+JDBC访

47、问数据库将会使得编程过程复杂化,继而带来的是大量的保护工作,特别是层与层之间的耦合性大,表格属性的变动将极大的影响代码的保护,因此需要有一种方便通用的方案来解决这个问题。这里将使用对象/关系映射(ObjeCt/RelationalMaPPing)的数据持久化技术来简化编程的复杂度,目前实现对象关系映射也已经有一些比较成熟的工具,如Caster,JDOGenie,Hibernate等。本文要紧应用Hibernate:在Struts中,不需要太多的代码,它能够将对象映射到关系数据库中的行,不需要编写复杂的SQL语句,开发架构也就变成Struts+DA0Hibernate+Database,毫无疑问

48、使用Hibemate实现持久层是一种有效的选择,它能够大大减少操作数据库的工作量,同时使得系统更加易于保护。3.3.1数据持久技术简介当前的应用程序中应用的数据要紧有文件、对象数据库、关系型数据库等,其中关系型数据库的应用最为广泛,具有很高的可靠性与可扩展性,支持强大的查询检索功能:面向对象的设计是应用一些同时具有属性与行为的对象来实现的符合人们认识习惯的编程技术。关系数据库与面向对象技术在现今的很多大型应用中都有广泛地应用,将这两者结合起来将会出现更加复杂与高效的软件系统,然而很明显面向对象设计使用的对象范例与关系数据库使用的关系范例之间存在着“阻抗不匹配tlllO对象范例基于软件工程的一些原理耦合、聚合与封装,而关系范例则基于数学原理。两种不一致的理论基础必将导致各自有不一致的侧重点,对象范例侧重于从包含数据与行为的对象中构建应用程序,而关系范例则要紧侧重于对数据的存储。但是,随着面向对象语言的快速进展应用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号