1、 学号_ 密级_武汉大学本科毕业论文基于MVC用户管理子系统设计和实现院(系)名 称:国际软件学院专 业 名 称 :软件工程 郑 重 声 明本人呈交学位论文,是在导师指导下,独立进行研究工作所取得结果,全部数据、图片资料真实可靠。尽我所知,除文中已经注明引用内容外,本学位论文研究结果不包含她人享受著作权内容。对本论文所包含研究工作做出贡献其它个人和集体,均已在文中以明确方法标明。本学位论文知识产权归属于培养单位。本人署名: 日期: sBACHELORS DEGREE THESIS OF WUHAN UNIVERSITY The Research and Implementation of Cl
2、ient Management System Based on MVC 摘 要伴随金融业不停发展,各商业银行越来越重视信用卡业务开拓,信用卡管理信息化,也伴随计算机技术发展,在不停地完善提升。信用卡管理信息多样化和数据资源复杂性,全部对信用卡管理软件实现模式提出了很高要求,而基于Web传统软件构架已经不能满足软件设计要求,很多新兴技术发展和应用正在不停地改善传统开发设计构架。本文结合信用卡管理需求和目前比较优异设计思想,利用MVC设计模式进行设计,并对该设计模式进行了改善,加入了数据持久层和业务逻辑层实现。Struts是基于MVC模式Web应用开发框架。它有效分离了表示层和业务逻辑层,但它并没
3、用对复杂数据持久层提供支持。而Hibernate提供了灵活数据持久层支持。所以经过将这两个框架整合起来,并结合贯穿整个表现层、业务层、持久层Spring,能够得到一个开发灵活、低耦合及易扩展企业应用完整处理方案。UML(Unified Modeling Language) 是一个通用可视化建模语言。因为其定义良好、易于使用、功效强大且普遍适用特点,而且融合了目前部分面向对象关键概念和技术,已经成为软件开发实际上标准。结合商业银行相关标准,本文设计并实现了一个基于Struts、Hibernate和Spring信用卡管理系统中用户管理子系统。系统采取UML语言和面向对象方法进行系统分析和设计,从而
4、降低了开发风险,提升了开发效率。系统基础实现了信用卡用户管理功效,如账户管理、存取款管理、结算管理、账单管理等。关键词: MVC;Struts;Hibernate;UMLABSTRACTWith the banking business and the computer technology developing fast, credit card management is becoming more and more important, and the informatization of credit card management is developing well. Since
5、the information related to credit card management is very multiple and the data is very complex, the requirement to the design mode of credit card management software is high; whats more, the traditional Web design mode can never meet the requirement. Combined with the situation of credit card manag
6、ement and the present advanced design method, the thesis develops the software based on MVC model with adding a data persistence manager layer and a business logic layer.Struts is a development framework based on MVC pattern for Web applications. It provides a way to separate presentation layer and
7、business logic layer, but it does not support complex data persistent layer. Hibernate is a framework for flexible data persistent layer. Thus, by combining the two with the Spring which throughout the presentation layer, business layer, persistence layer; we can obtain a comprehensive solution for
8、enterprise application integration which can achieve flexible development, loose coupling and expansibility. UML is a commonly-used visual modeling language. Because of its features such as well definition, easy to use, powerful function and pervasive usage, and integration with object-oriented conc
9、epts and technology, it has become a de facto standard of software development.Combination of commercial bank-related standards, we design and implement a client management system of credit card management system based on Struts, Hibernate and Spring. We apply UML modeling language and object-orient
10、ed method to conducting system analysis and design. By doing this, the risk of software development is reduced and the efficiency is increased. This system meets the basic functional requirement of the client management including account management, deposit management, billing management, bill manag
11、ement.Key Words: client management system, MVC, Struts, Hibernate, Spring, UML第1章 引言1.1 选题目标和意义伴随经济全球化推进和中国金融业改革不停深化,大家生活消费方法也有了显著改变,最显著就是大家随身携带不再是大量现金,而是一张张小而轻巧信用卡。信用卡(Credit Card)作为非现金交易付款方法,以其便于携带、使用方便、交易安全等优点,在欧美国家得到了普遍地使用。本世纪初,信用卡开始在中国流行,近几年来得到了快速发展,据统计,截至6月30日,中国信用卡发行量已猛增到1.22亿张。现在,多数商业银行全部推出了
12、信用卡业务,伴随发卡量增加,怎样提升信用卡管理和结算效率并将信用卡管理人员从繁杂手工劳动中解放出来,成为一个迫切需要处理问题。在这么背景之下,“软酷网”卓越试验室研发六部经过分析研究,选择了“信用卡管理系统”作为实训项目。该系统采取便于使用和维护B/S开发模式,这么信用卡管理人员只需要经过浏览器便可在银行内网中进行各项管理操作,同时还采取了基于MVC(Model-View-Controller)Struts+Spring+Hiberate框架进行软件开发,能够很好实现模型和表示层分离,由控制器来进行业务步骤控制,符合J2EE Web应用系统开发基础要求,也有利于软件后期升级和维护。1.2 信用
13、卡管理系统发展情况多年来,伴随网络技术和金融业不停发展,各商业银行越来越重视信用卡业务开拓,所以对信用卡管理提出了更高要求。改变原有管理模式,利用优异手段进行管理,已经成为现在信用卡管理肯定选择。这么,多种针对信用卡管理应用软件不停涌现,而且经历了从单机版到网络版转化。网络信用卡管理软件发展愈加有力地提升了信用卡管理水平,借助金融业网络信用体系构建信用卡管理系统,能够合理利用Internet网络资源和Web跨平台数据访问能力,经过网络来进行交易记账、结算及存取款,信用卡用户们能够经过浏览器来直接参与信用卡管理。同时,信用卡系统管理人员能够很方便地获取立即、正确、全方面数据和相关信息,将银行卡部
14、职员从繁琐手工劳动中解放出来,提升生产率,进而从整体上提升了信用卡管理水平。然而信用卡管理系统设计也不能一劳永逸,因为各商业银行经营理念不一样、结算体系不一样及信用评定不一样,而各不相同,没有统一标准,也极难建立一个统一标准,系统适用性、通用性极难实现。所以,现在信用卡软件开发设计在向多种流行设计模式靠拢提升系统可移植性和可扩展性同时,还要考虑到本身信用卡管理特点,方便愈加好地满足信用卡管理需求。1.3 论文研究内容目前计算机技术越来越趋于成熟,多种设计思想不停涌现,MVC成为适适用于多种大型Web应用构架技术。它目标就说最大程度地降低系统各部分之间地耦合度,提升系统可扩展性,提升代码重用率1
15、。基于MVCJ2EE技术应用更是广泛,本文这里也关键采取Struts框架来实现上述技术,并以此作为信用卡管理子系统技术处理方案。本文关键工作以下:(1)具体介绍了MVC开发模式设计思想,分析了两种常见JSP Model优缺点,并介绍了实现MVC设计思想Struts框架,并分析了Struts工作步骤,和Struts开发优势。(2)以MVC模型为设计思想,利用Struts框架来实现信用卡管理系统开发设计。本文采取目前比较流行和便捷B/S模式开发模式,采取Struts框架来实现系统表现层和业务层分离,愈加有利于系统开发和维护。深入在系统业务实现层和数据库之间加入了数据持久层,使得系统对数据库访问实现
16、面向对象设计。简单介绍了数据持久化技术和本文实现数据库持久层工具Hibernate持久化框架。(3)对信用卡系统进行总体分析,对信用卡管理中关键业务进行了分析,并深入确定了系统技术构架。以用户管理子模块为例,说明系统开发设计步骤和具体业务实现。介绍了贯穿表现层、业务层、持久层Spring框架,作为一个依靠注入容器,对Struts和Hibernate实施监控同时,且能够做安全、日志工作。1.4 论文结构本文关键研究在J2EE平台下基于MVC设计模式开发信用卡管理软件WEB应用程序相关技术,在传统WEB应用程序开发基础上,对基础设计模式进行了改善,采取三层开发模式来降低系统各个模块之间耦合性,并经
17、过一个具体模块实现来说明各个层次设计和实现。全文共分为五章:第1章,引言。介绍了信用卡管理软件发展现实状况,并深入分析了该类软件开发过程中存在问题;第2章,信用卡系统总体设计分析。概括分析说明了信用卡管理关键业务,在了解用户需求基础上,设计了系统总体功效模块,采取了UML语言对系统进行建模;第3章,系统研发技术。叙述了MVC设计模式和常见JSP设计模式,并介绍了Struts这个用来实现MVC设计思想开源项目,另外还对引入数据持久技术和本文实现这种技术Hibernate持久框架做了介绍,也对整合前两个框架实现依靠注入和切面编程Spring做了简明介绍;第4章,用户管理子系统设计和实现。经过对该模
18、块实现,来表现整个设计思想,并介绍了本文实践项目标部分亮点和独到之处;第5章,系统评价。关键从系统安全和性能特点两方面来介绍;第6章,总结语。总结整个设计,并说明不足及深入改善方向。第2章 信用卡管理系统总体分析2.1 系统介绍信用卡管理系统是集账户管理、信用卡管理、用户信息维护、报表信息管理为一体业各系统,含有灵活应用架构、费用结构和产品定义,在系统、机构、产品、用户、账户、交易等各个层面均实现参数化,是一个以用户为中心多产品、多账户、多卡综合应用系统。2.2 信用卡管理系统总体功效框架信用卡管理系统关键实现银行信用卡和用户间交易记账和管理功效。信用卡管理包含到内容很多,但从大致上来看,它关
19、键业务能够归纳为四个部分:账户管理、信用卡管理、报表管理、系统管理;关键面对三类用户:银行一般职员、银行部门经理、系统管理员。信用卡管理系统总体功效框架图2.1所表示。图2.1 信用卡管理系统功效结构图2.3 系统开发标准(1) 可延展性和包容性系统应含有很好可延展性和包容性。系统可延展性应包含能够很好兼容已经有系统和能够在以后一段时间内实现对系统软硬件扩展,能有效地保护已经有投资,系统易于扩充升级,既要满足目前业务需求,又能随时进行扩展和维护。(2) 系统简练,易使用、易维护系统设计符合日常办公运作需求,功效不仅要实用,还应该简单易学,含有比较友好用户界面,易于扩充。整个开发设计层次简单明了
20、,便于管理,易于扩充。(3) 为职员,经理提供良好信息服务系统对信用卡信息进行了合理布局,方便于提供优质、高效业务管理和事务处理,是系统用户对信用卡账户进行维护,完成信用卡交易记账和管理(4) 可靠运行,安全保密在该系统开发过程中,将经过身份认证,权限检验,来处理信用卡管理系统安全性、保密性问题,确保系统有效和安全运行。2.4 系统功效概述信用卡管理系统不仅要管理信用卡使用各个步骤:如开卡到记账、存取款业务活动,还要管理所包含到多种对象和资源:如管理员、系统用户、账户、信用卡等;同时信用卡管理系统还要提供对应算法来结算账单。其中用户管理模块关键业务功效实现,将在以下进行相关介绍。(1) 用户开
21、户申请管理子模块用户提交开户申请表,进行正当性验证,交给银行职员审核,假如审核经过,将用户信息填入用户信息表,并为用户开通信用卡服务所需账号,用户开户管理子模块业务步骤图2.2所表示。图2.2 用户开户管理子模块业务步骤示意图(2)账户信息维护子模块经过对开户用户消费、取现、透支等交易统计统计,银行职员修改对应账户信用额度,同时完成账户销户工作。该模块业务步骤图2.3所表示。图2.3 账户信息维护子模块业务步骤示意图(3) 取款管理子模块取款管理子模块关键完成取款申请、取款正当性验证、自动完成取款额和可用额、信用额度查对等,最大程度实现取款自动化。该模块业务步骤图2.4所表示。图2.4 取款管
22、理子模块业务步骤示意图图2.5 账单管理子模块业务步骤示意图(4) 账单管理子模块账单管理是信用卡管理中很关键一部分。该模块关键列出用户交易账单信息,并对每个月账单进行对应结算,方便用户进行查询和打印。该模块业务步骤图2.5所表示。(5) 报表管理子模块报表管理是信用卡管理中只针对银行经理一个模块。经过查看报表,银行经理能够了解银行开户、户头信用额、信用卡透支现实状况及其发展趋势,清楚把握信用卡业务发展脉络,制订出对应发展策略。该模块业务步骤图2.6所表示。图2.6 报表管理子模块业务步骤示意图以上描述了用户管理、报表管理大致功效及其数据流图,而信用卡管理及系统管理,其业务步骤和用户管理开户和
23、信息维护步骤大致相同,所以这里不做过多介绍。2.5 系统技术构架本系统采取了优异设计理念和部分主流技术。系统采取基于MVCJ2EE技术和Web技术来实现。传统Web技术平台是一个三层结构。图2.6所表示。图2.7 WEB三层结构示意图现在,Web技术全部是经过Http来实现用户端和服务器通讯,对于简单HTML静态文原来说,Http是一个很好选择。但Http却不能很好地应用于复杂业务处理,因为当用Http进行通讯时,必需以Web服务器作为中介。然而当同一时刻用户访问量过大时,Web服务器则将成为整个系统瓶颈。而基于MVCJ2EE技术能很好地处理以上问题。依据项目需求分析,确定本系统必需含有性能有
24、:(1)含有良好交互性:工作内容中有相当大部分是人机交互,这就要求系统交互性要强,从而满足需求。(2)含有很好可扩展性:工作内容和形式含有多变性,从而要求系统含有良好可扩展性。(3)良好可维护性:系统投入使用后,关键是由管理员负担系统维护工作,维护人员不定时变动,这就要求系统可维护性强。(4)很好跨平台性:用户可能使用多种不一样操作系统,而且为了适应以后可能改变,系统应含有很好跨平台性。一个经典J2EE应用能很好地满足以上性能要求,它最少包含表现层、业务层、数据持久层和数据库服务器四个部分。在开发信用卡管理软件组件模板时,本文采取Struts来实现信用卡系统表现层,数据持久层选择了OR Map
25、ping Tools(Hibernate),业务逻辑层则用一般Java对象,把Struts和Hibernate这两种在业内比较推崇开源技术相结合2,并引入Spring依靠注入,使用JavaBean替换EJB,深入整合前两个框架,提升了项目开发效率和易维护性。这么也对应地扩展了传统Web三层体系结构,本文开发系统体系架构图2.8所表示。图2.8 信用卡管理系统技术结构图 这种设计使服务器端和数据服务端能够依据系统需求进行配置,为系统结构提供极大灵活性和收缩性。采取该多层结构技术另一个优势是“瘦”用户端设计和实现。主程序和关键业务功效模块全部放在应用服务器上,用户端只需安装浏览器就能够在当地运行。
26、本信用卡系统设计中,用户端为浏览器,中间层以Tomcat作为应用服务器支持业务逻辑处理,以MySQL Server5.0作为数据库服务平台。第3章 系统平台和技术3.1 MVC设计模式3.1.1 MVC模式介绍伴随Web开发不停发展和需要,MVC模式被推荐并成为Sun企业J2EE平台设计模式,而且在应用中受到越来越多开发者欢迎。Model-View-Controller原来是Xerox PARC在八十年代为编程语Smalltalk-80发明一个应用程序框架结构,至今已被广泛使用。该框架结构支持三层结构类:表现应用程序状态层、屏幕表现层和控制流层,所以这三层被称为模式(Model)、视图(Vie
27、w)和控制器(Controller)。MVC是能够满足那些需要为一样数据提供多个视图应用程序开发需要,在开发和用户界面相关,尤其是对用户界面要求较复杂相关应用程序时,能够很好地以不一样方法来显示同一数据,也就是在不改变软件功效前提下,能够实现用户对用户界面个性化要求,而MVC模式最大特点就是将业务层和表示层分离,而且提供了很多使显示界面愈加个性化标签库,所以它能愈加好地实现用户界面多种个性化需求。MVC通常见于分布式应用系统设计和分析,如:大型商业网站、企业信息系统、管理信息系统、决议支持系统等,但它本身并不局限于某一个特定领域。MVC设计模式,最近几年被推荐为SIJN企业JZEE平台设计模式
28、,它强制性地把应用程序输入、处理和输出分开3。它三个关键部件分别是模型、视图和控制器,它们各自处理各自任务:(1)模型(业务逻辑层):表示企业数据和业务规则,实现具体业务逻辑、状态管理功效。在MVC三个部件中,模型拥有最多处理任务。比如它可能用像EJB和ColdFusion Companies这么构件对象来处理数据库。被模型返回数据全部是中立,也就是说模型和数据格式无关,这么一个模型能为多个视图提供数据。因为应用于模型代码只需写一次就能够被多个视图重用,所以降低了代码反复性。(2)视图(表示层):即用户看到并和之交互界面,是应用程序外在表现,通常实现数据输入和输出功效。对传统Web应用程序来说
29、,视图就是由HTML元素组成界面,在新式Web应用程序中,HTML依旧在视图中饰演着关键角色,但部分新技术也层出不穷,它们包含Macromedia Flash和像XHTML、XML/XSL、WML等部分标识语言和Web Services。所以怎样处理应用程序界面变得越来越有挑战性。MVC一个大好处是它能为你应用程序处理很多不一样视图。在视图中其实没有真正处剪发生,不管这些数据是联机存放还是一个雇员列表,作为视图来讲,它只是作为一个输出数据并许可用户操纵方法。(3)控制器(控制层):起到控制整个业务步骤作用,依据用户输入调用对应模型和视图去完成用户需求和相关操作。具体地来说:控制器本身不输出任何
30、东西和做出任何处理。它只是接收用户请求并深入决定调用哪个模型去处理该请求,并依据处理结果来确定用哪个视图来显示模型处理以后返回数据。它们三者之间关系图3.1所表示。 图3.1 MVC组件类型关系和功效3.1.2 MVC开发优势经过以上对MVC开发模式介绍,和两种JSP开发模式比较,我们对MVC开发模式有了一定认识,这里将深入介绍说明利用MVC模式开发优势,具体表现在以下多个方面:(1)MVC模式很好地处理了软件工程中怎样使软件系统各模块之间最大程度地降低其复杂耦合关系,和系统显示逻辑和业务逻辑之间矛盾(即用户界面多变性和业务逻辑相对不变性),能够尽可能地提升系统可维护性和可扩展性。(2)模型、
31、视图、控制器三者相互独立,当我们改变其中一部分时,其它两部分不会受到影响,进而结构出良好松耦合构件。(3)全部模型和视图全部是由控制器连接和调用,控制器控制功效使得它能够依据用户不一样阶段不一样需求选择不一样模型进行处理,并选择不一样视图将处理结果显示给用户,很好地提升了系统灵活性。(4)一个模型能够拥有多个视图或说多个视图能够共享一个模型。多个视图能够提供多个数据显示方法,以满足不一样用户需求。改变传输机制能够确保全部相关视图和其模型达成同时,这一切全部能够经过控制器协调来实现。(5)模型可移植性和伸缩性。模型相对独立性使得它很轻易被移植到新平台工作,很轻易被改变业务规则而不影响视图和控制器
32、4。然而,因为MVC是一个很复杂系统,所以采取MVC实现Web应用时,最好选一个现有MVC框架,在此之下进行开发。因为Struts含有完整文档而且相对来讲比较简单,所以通常采取它来开发MVC系统,实际上,Struts就是在 JSPModel2基础上实现一个MVC框架。3.2 Struts项目概述 Struts是Apache组织一个项目,像其它Apache组织项目一样,它也是一个开源项目。Struts作为一个设想是Craig R McClanahan于提出,该设计目标是为利用Java技术开发基于MVC模式Web应用提供一个标准模式。基于Struts架构Web应用程序基础上符合JSPModel2设
33、计标准,是MVC设计模式一个变形,提供了对开发MVC系统底层支持,它采取关键技术是Servlet、JSP和Custom Tag Library5。Struts框架是一个基于Java技术,Web应用程序开发人员经过Struts框架即可充足利用面向对象设计,代码重用及“编写一次,四处运行”优点。另外,Struts不仅是拥有自己控制器,同时整合了其它部分技术来实现模型层和视图层,比如:在模型层,它能够很轻易和数据库访问技术相组合,包含JDBC技术和EJB技术;在视图层,它能够和JSP、XSL等组件相结合6 。所以从一定意义上讲,采取Struts来实现基于MVCWeb应用开发,能够依据具体需求来选择设
34、计复杂程度,含有很好扩展性。Struts关键优势功效以下:(1)Struts中包含一个控制器Servlet,用来控制用户请求发送到对应Action对象;(2)在JSP页面中能够选择自定义标签库,而且在控制器Servlet中提供关联支持,这么能够帮助开发人员方便快捷地创建交互式表单应用;(3)Struts还提供了一系列实用对象:XML文件处理、经过Java Reflection API自动处理JavaBean属性、国际化提醒和消息。3.2.1 Struts关键组件Struts是一组相互协作类、Servlet和JSP标识,它们组成了一个可重用MVC设计模式。这个定义表示Struts是一个框架,而不
35、是一个库,但同时Struts也包含了丰富标识库和独立于该框架工作实用程序类库。Struts经过部分组件类来完成框架功效,这些组件包含:ActionServlet、Action、ActionForm、ActionForward、ActionMapping。1. ActionServletActionServlet继承自javax.servlet.http.HttpServlet类,它在struts中饰演角色是中心控制器。它提供了一个中心位置来关键负责将Http用户请求组装后,依据配置文件指定描述,转发到合适处理器。另外,除了作为应用程序前端控制器外,ActionServlet实例还负责初始化和清
36、除应用程序资源。2. Action一个Action类角色,就像是用户请求动作和业务逻辑处理之间适配器,它作为应用程序响应用户请求动作,将请求和业务逻辑分开。这么用户请求和Action类之间能够有多个点对点映射。Action最为常见方法是execute(),经典Action类通常要在execute()方法中实现下列逻辑:(l)检验用户session目前状态。假如session过期或用户没有登录,要将表示层页面跳转到用户登录页面;(2)检验用户输入正当性。调用Form Bean实例validate()方法检验部分字段输入值是否合适或正当;(3)实施业务操作。调用业务逻辑Bean对应方法实施用户业务
37、请求;(4)更新服务器端对象。将Model状态改变通知给View,并返回请求页面。3. ActionForm一个应用系统消息转移(或说状态转移)非持久性数据存放,通常由ActionForm Bean来负责,它关键功效是为Action操作提供和用户表单相映射数据。对于每一个用户请求,通常要经历以下多个步骤:(l)检验Action映射,确定配置文件中己经配置了对ActionForm映射;(2)依据Name属性查找ActionForm信息;(3)查找ActionForm使用范围,确定在此范围下是否存在对应 Form Bean实例;(4)假如在目前范围内,对应 Form Bean实例己经存在,而且对目
38、前请求来说是同一类型话,就能够重用,不然,就要重新构建一个 Form Bean实例;(5)调用Form Beanreset()方法;(6)调用对应set()方法,对状态属性赋值;(7)假如validated属性值被设置为true,则调用Form Beanvalidate()方法;(8)假如validate()方法没有返回错误,控制器将ActionForm作为参数,传给Action实例execute()方法实施。 4. ActionForward当Action实例execute()方法运行完成后,控制器依据Mapping能够将响应信息转到合适地方,ActionForward关键功效就是对将要转向
39、视图地址一个封装。转向多种属性也能够在配置文件中设置性,这么就大大提升了软件复用性和可维护性。 5. ActionMappingActionMapping以Java形式封装了怎样将一个请求URL映射到和其对应Action部分信息。ActionMapping对象帮助进行框架内部步骤控制,它们能够将请求URL映射到Action类,而且将Action类和 ActionForm Bean相关联。Struts框架控制器ActionServlet在内部使用这些映射将控制转移到特定Action类实例。3.2.2 Struts工作步骤采取Struts框架开发Web应用系统时,在Web应用开启时就会自动地加载并
40、初始化ActionServlet,此时ActionServlet将会从Struts-config.xml文件读取配置信息,并把它们存放到多种对应配置对象中。当ActionServlet接收到一个用户请求时,将实施以下步骤:(l)检索和用户请求匹配Action实例,假如不存在,控制器直接将请求转发给JSP或静态页面;假如有对应Action,而且这个Action有一个对应Form Bean,ActionForm被实例化并用Http请求数据来填充其属性,然后保留在ServletCotenxt中,以备其它Action对象或JSP调用。(2)控制器依据Struts-config.xml配置信息将请求切换
41、到具体Action,对应相关 Form Bean信息也一起发送给Action类execute()方法。(3) Actionexecute()方法返回一个ActionForward对象,控制器ActionServlet再经过该ActionForward对象来进行转发工作。(4) Action依据业务处理不一样结果返回一个对应目标响应对象给总控制器,这个目标响应对象能够对应一个具体JSP页面或是另外一个Action。(5)总控制器ActionServlet依据业务功效Action返回目标响应对象(多数情况下,该响应目标是一个JSP页面),将Http请求转换到该目标响应对象中,深入将结果页面展现给用
42、户。3.2.3 Struts框架实现MVC模型Struts实质上就是JSP Model2基础上实现一个MVC模式框架,MVC设计模式为构建可扩展、可重用体系结构打下了很好基础,该设计模式需要用户将自己代码抽象出来,把项目在一定程度上分解为表示,逻辑和控制三部分,每部分之间关系相对较小,方便使得软件结构愈加灵活,并含有很好可重用性和可扩展性。在Struts框架中,模型通常有实现业务逻辑JavaBean或EJB组件组成,控制器由ActionServlet和Action来实现,视图由一组JSP文件组成,Struts实现MVC框架图3.4所表示。 图3.2 Struts实现MVC模型Struts是Ap
43、ache组织一个项目,提供了一个实现MVC架构高度自动化方法,作为一个MVC框架,Struts对Model、View和Controller全部提供了对应实现组件:(l)控制器(Controller):控制器作用是从用户端接收请求,而且选择实施对应业务逻辑,然后把响应结果送回到用户端。在Struts中Controller功效由ActionServlet和ActionMapping对象组成。ActionServlet是MVC设计模式决议控制部分,也是Struts框架关键。它依据ActionMapping把Http消息形式用户请求转换成对应应用程序动作。ActionServlet还负责用对应请求参数
44、填充ActionForm(通常称之为FormBean),并将其传给对应动作类(通常称之为ActionBean)。动作类Action来实现关键商业逻辑,它能够访问JavaBean或调用EJB,最终动作类指向对应JSP文件,最终生成相关视图。ActionServlet包含一组基于配置ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体Model部分中Action处理器对象类之间点到点映射。ActionMapping中有Action对象名字和地址描述,当有请求传入Controller时,它把请求路径映射到Action地址,并把请求传给那个Action类。Acti
45、onMapping类也包含部分程序中可能唯一信息,比如当地变量,特定环境数据,或URL。(2)模型(Model):表示应用程序状态和业务逻辑9。MVC系统中Model部分从概念上能够分为两类:系统内部状态和改变系统状态动作。Struts为Model部分提供了Action和ActionForm对象,全部Action处理器对象全部是程序开发者从StrutsAction类派生子类,并对其中关键方法进行覆盖。Action处理器对象封装了具体业务处理逻辑,处理具体业务逻辑操作,而且把响应提交到适宜View组件以产生响应。Struts提供ActionForm组件对象,能够经过定义属性描述用户端表单数据。我
46、们能够从它派生子类对象,利用它能够实现对用户端表单数据良好封装和支持,对应Action处理器对象能够直接对它表单数据进行读写,而不再需要和Request、Response对象进行数据交互,经过ActionForm组件对象实现了对View和Model之间非持久性数据交互支持。(3)视图(View):视图是用户看到并和之交互界面。Struts应用中View部分是经过JSP技术实现。Struts提供了自定义标签库,经过使用这些标签定义JSP表单能够和Model部分中ActionForm映射,完成对用户数据相关封装,同时还能够使用这些标签来丰富JSP页面。3.2.4 Struts框架开发优缺点Stru
47、ts是一个优异基于J2EEMVC应用框架,现在己经越来越广泛利用于多种企业平台之上。Struts在程序开发中有本身优缺点,具体表现在以下多个方面:(l)含有MVC模型全部特点和优点,简化了基于MVC模型应用程序开发。(2)许可开发人员使用XML文件来配置很多默认框架。(3)它提供了一个灵活机制来处理异常,而且提供了一个方便方法对应用程序信息进行国际化。(4)开源项目发展较快,但代码、设计变动较大,利用不妥会对系统维护和升级不利。(5)Struts框架关键是针对表示层设计,对后端逻辑层支持不强。Web应用系统开发,很多时候业务逻辑处理全部会是和后端数据库进行操作,然而Struts只为视图、控制器提供了现成框架,对于模型提供框架支持10。假如直接使用该框架进行开发,就需要直接在用户业务逻辑中嵌入SQL代码,这么能够加紧程序开发,不过会造成业务逻辑实现和关系数据库访问实现直接耦合,一
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100