




已阅读5页,还剩50页未读, 继续免费阅读
硕士学位论文-Struts框架在社保系统支付子系统中的应用和实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连理工大学硕士学位论文Struts框架在社保系统支付子系统中的应用和实现姓名:王健申请学位级别:硕士专业:软件工程指导教师:蒋光远20050514大连理工大学硕士学位论文摘要随着我国经济体制改革的深入,建立健全完善的社会保障体系已经成为当务之急。社会保障管理信息系统作为社会保障体系的技术支撑体系,是一切业务工作的基础条件,只有建立起安全高效的信息系统,才能完成社会保险的各项业务工作。旧的社会保障信息管理系统在实现方式上大多采用主从方式,也就是ClientServer结构。采用这种结构的业务系统虽然在开发的初期能够很快建立起应用,但随着业务系统越来越复杂,这种结构的缺点就变得非常明显。首先,程序变得很难维护:其次,单一主机在系统稳定性方面存在巨大隐患,一旦主机出现故障,将会导致整个系统的瘫痪,造成巨大的损失。可是J2EE平台下MVC设计模式的Stoats框架就很好的解决了这一问题。Struts框架具有可扩展性,面向电子商务的企业级应用系统,它提供了基于组件的。以服务器为中心的多层应用体系结构。这种多层结构的设计极大地简化了开发、配置和维护企业应用的过程。本论文的研究目的在于利用Struts框架及相关技术创建BrowerServer结构的社会保障信息管理系统,为广大退休职工,社会保障中心工作人员提供最大的便利。本论文首先论述了Struts框架的研究现状、技术背景、特点及应用范围,为实际应用系统的开发和实现提供了技术基础;然后结合实际项目“大连社会保障信息管理系统”,做出了该系统支付模块的需求分析,详细设计和具体实现。本论文主要研究了Struts框架的流程,结构,文件配置以及其核心标签库。深入研究了S廿uts框架在开发大型Web应用系统中与其他Web应用框架比较所具有的强大优势。目前,该系统已经通过试运行,处于正式运行阶段;该系统建立的便利条件得到了所有使用人员的认可。本论文的研究内容对于政府、企事业单位创建相关的大型信息管理系统具有广泛的研究意义和应用价值。关键词:web;瓶vc;Struts框架;多层应用体系结构;支付Struts框架在社保系统支付子系统中的应用和实现TheImplementandApplicationofPaymentModuleofSocialSecuritySystemBasedonStrutsFrameAbstractWiththedeepeningoftheeconomicsystemreofourcountry,settingupandam#lyingtheperfectsocialsecuritysystemhasalreadybecomeataskoftoppfiodtyThemanagememinationsystemofthesocialsecurityisregardedasthetechnicalsupportsystemofmesocialsecuritysystem;itisthebasicconditionofvocationalworkonlybysettingupsafeandVa曲-e蚯cientinationsystemcouldanyvocationalworkofsocialinsurancebecompletedTheoldsocialsecurityinationmanagememsystemmostlyadoptstheprincipalandsubordinatewayinrealizingtheways,ClientServerstructurethatistosayThisstructurecansetupapplicationqmcklyintheinitialstageofdevelopingbutwiththebusinesssystembecomingmoreandmorecomplicated,theshortcomingofthiskindofstructurebecomesveryo晰ollsFirstofall,theprocedurebecomesverydifficulttomaintain;Secondlyenormousdangerexistsinthestabilityofthe曲唧ehostcomputersystem,andthebreakdownofthehostcomputerwillcausetheparalysisofthewholesystemandcnonTlouslossesMVCStoatsframeofdesigningthemodewellsolvesthisproblemunderJ2EEplatStrutsflamehasexpansibilityFacingtheenterpriselayerapplicationsystemofe-commerce,itoffersmulti-layerapplicationsystemstructurebasedonpackageandcenlreonserverThedesignofsuchmultilayersRRetulehassimplifiedtheprocessofdeveloping,disposingandsafeguardingtheenterprisesuseTheresearchpurposeofthisthesisisutilizingStrutsframeandrelevanttechnologytoestablishthesocialsecurityinationmanagementsystemofBrowerServerstructure;itoffersthebiggestfacilitytothemassesofretiredemployeeandsocialsecuritycentrestaffmemberThisthesishasdescribedthecurrentsituationtechnologicalbackground,thecharacteristicsandrangeofapplicationofStrutsfrRtlleItoffersthetechnologicalfoundationthedevelopmentandrealizingofapplicationsystemThencombining”SocialSecurityInationManagementSystemofDalian”makesthedemandanalysis,detaileddesignandrealization大连理工大学硕士学位论文ThethesishasmainlyresearchedinthepmeedllreandstructureofStrutsflamethefiledisposesanditskeylabelstorehouseItfumlerinvestigatesStrutsiameindevelopinglargescaleWebusefrdrleandthestrongadvantagescomparedwithotherWebappficationsystemsAtpresem,thesystemalreadythroughthetestrun,ataloperationstage;thefacilityofthissystemhasbeenapprovalbyalltheusingpersonnelThemse暂chofthetheNscontentsestabfishtogovernment,enterprisesandinstitutionsofrelevantlarge-scaleinationmanagementsystemhaveextensiveresearchmeaningandusingvalueKeyWords:Web;MVC;Strutsframework;Structureofmulti-layerapplicationPaymentm大连理工大学硕士学位论文插图或附表清单图11J2EE平台组织形式P6图12J2EE核心技术及其应用位置图21MVC设计模式P9图22模型1P11图23模型2P11图31Struts框架P13图32Servlel与Mode关系UML图图33Struts工作流程图P16图4,1社保系统总体结构图P21图51支付模块结构图P27图52支付模块流程图P28图5t3支付模块软件体系结构图P32图61支付模块页面示例P46图62支付模块页面示例P46表51支付模块功能列表P26表52待遇核准表P29表53支付帐目和报盘表P30表54撤保和个人账户表P30表55报盘记录表ICH2P31表56权限表P36表61软件配置表P40P15$廿uts框架在社保系统支付子系统中的应用和实现引言O1课题来源及选题意义随着我国经济体制改革的深入,建立健全完善的社会保障体系已经成为当务之急。社会保障管理信息系统作为社会保障体系的技术支撑体系,是一切业务工作的基础条件,只有建立起安全高效的信息系统,才能完成社会保险的各项业务工作。对于规范社会保险业务、提高工作效率、保障基金安全、增强决策的科学性意义都非常重大。旧的社会保障信息管理系统在实现方式上大多采用主从方式,即一台主机外挂多台终端,终端直接运行主机上的业务逻辑,并将数据保存到主机上:或者是前台采用其他工具来编写业务逻辑,进行数据库的IO操作,并去访问后台的数据库,最终将数据保存到主机上,也就是ClientServer结构。采用上述这两种结构的业务系统虽然在开发的初期能够很快建立起应用,但随着业务系统越来越复杂,这种结构的缺点就变得非常明显。首先,程序变得很难维护;而且,极容易由于某台机器被漏掉升级而导致旧的程序对整个数据库数据的完整性造成破坏。另外,单一主机一方面在系统稳定性方面存在巨大隐患,一旦主机出现故障,将会导致整个系统的瘫痪,造成巨大的损失,有时甚至登录不上主机。可是J2EE平台下MVC设计模式的s咖ts框架就很好的解决了这一问题。Struts框架具有可扩展性,面向电子商务的企业级应用系统,它提供了基于组件的,以服务器为中心的多层应用体系结构。这种多层结构的设计极大地简化了开发、配置和维护企业应用的过程,由于采用多层结构,系统中同时会有多台服务器在工作,这样不仅能提高系统的整体运行效率,而且一旦某一台服务器出现故障,应用程序会自动转移至另一台服务器上接着运行,这就有效地保障了系统整体运行的可靠性。在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。o-2国内夕阿究状况及发展趋势Struts最早于2000年5月作为Jakarta项目的组成部分问世,Jakarta项目由Apache基金组织运作。项目的创立者希望改进和提高JavaServerPages,Servlet,标签库以及面向对象的技术水平。Jakarta项目有很多成功的部分,例如大名鼎鼎的Tomcat,以及Cactus,L094J等一些激动人心的产品。而且Struts是开放源代码的项目,它的前景是不可限量的。2大连理工大学硕士学位论文最近,主流的企业级Java开发工具都推出了对Struts的支持,BORALAND最新推出的JBUIDERX也支持Struts的最新版本,IBM的WEBSPHERESTUDIOV5系列同样也支持Struts,专擅开发Java企业级开发工具的EXADEL公司发布了用于可视化构造基于Struts框架的Web应用程序的工具EXADELStrutsStudio。此外,作为开放源代码的项目,Struts也得到了一大批开源人士的支持,也有一大批成功的产品,例如EasyStruts,StrutsConsole等。从这些就可以看出业界对Struts的重视程度和对它的期望了。在国外已经大量地应用了Struts框架。国内对Struts的应用和研究正处于起始阶段,有不少人在研究它,也有很多人在使用它。当前国内对Struts的研究主要集中在一些以Java,Web,开源技术以及其他相关内容的问题上,去年CJEA(中国Java工程师协会)在北京召开了Struts技术交流研讨会。在产业方面,有不少软件公司已经在JBUIDER,WSAD等开发工具上使用Struts框架了。03本文工作及其进展效果本文的工作主要侧重予如下几点:(1)结合具体项目,对Struts框架进行系统研究。包括Struts框架的流程,文件配置以及其核心标签库。(2)深入研究在社保系统支付模块中,Struts框架与其他web应用框架比较所具有的强大优势。(3)社保系统支付模块功能的具体实现。社保系统支付模块现在正处初期运行阶段,希望能为广大退休人员提供更大的方便,更完善的服务。04论文整体结构全文共分六部分。第一部分是J2EE平台概述,主要介绍一下J2EE设计目标和核心技术。第二部分是MVC模式简介,主要介绍IvlVC模式特点及其在Web系统中的应用。第三部分是SWum框架的描述,主要介绍SWum的工作流程,组件及标记库。第四部分主要介绍基于Sm】【乜框架的社会保障系统的需求分析。第五部分主要介绍社会保障系统支付模块的详细设计,包括数据库设计,软件体系结构设计,权限设计和命名规范设计。第六部分主要介绍社会保障系统支付模块的具体实现。3SWum框架在社保系统支付子系统中的应用和实现1J2EE平台概述在不断发展的网络环境中,无论是硬件平台还是软件平台,都不可能统一。大型应用软件通常要求在软硬件各不相同的分布式网络环境中运行。为了更好地开发和应用能够在异构平台上运行的应用软件,迫切需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境,即开放式平台技术。它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、服务共享的目的。这种开放式平台的中间件系统屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。随着Internet的迅速发展,网络异构问题(不同硬件平台、不同的操作系统、不同数据库系统)日益突出。为了解决这一问题,SUN公司的JZEE(Java2EnterpriseEdition)平台应运而生。J2EE平台提供了一个多层结构的分布式应用程序模型,该模型具有重用组件的能力、基于扩展标记语言(x札)的数据交换、统一的安全模式和灵活的事务控制;使开发者不仅可以比以前更快地发布面对市场要求的新的解决方案,而且其独立于平台、基于组件的J2EE解决方案不再受任何提供商的产品和应用程序编程接口的限制。提供商和用户都可以选择最合适于其业务应用和所需技术的产品和组件。J2EE平台组织形式如图I1所示。11J2EE的设计目标J2EE是一个企业级应用系统开发平台和中间件体系结构,它通过提供一组应用组件和运行时环境来构造可伸缩的企业应用。典型地,J2EE属于分布式应用环境,一个企业应用系统可以作为一套分布式组件部署在多台服务器上。其最终目的就是成为一个能够使企业开发者快速搭建分布式应用程序的应用平台。J2EE平台为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的支持:J2EE是利用Java2平台来简化企业解决方案的开发、部署和管理相关复杂问题的体系结构。J2EE技术的基础是核心Java平台或Java2平台标准版,J2EE不仅巩固了标准版中的许多优点,例如”编写一次、随处运行”的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletAPI、JSp(JavaServerPages)jMs以及XML技术的全面支持。J2EE平台,由多层应用体系结构组成。其中每一层都有各自适用的应用组件模型,在此基础上一4大连理工大学硕士学位论文可以构建各种企业应用。J2EE还为应用组件提供一整套企业服务,如数据库访问、电子邮件、认证和分布式目录访问等,通过自动化的方式完成应用程序开发中的许多耗时且费力的工作,方便系统整合,具体体现在如下几点:(1)多层体系结构优点是灵活,适合企业应用特点,维护方便,扩展性强等等。缺点是开发困难。随着Internet的飞速发展,使业务应用模型逐渐转移到Internet上J2EE全面支持InternetIntranet环境下的企业应用。提供可扩展的,模块化的组件开发模式及组件装配技术。支持将J2髓企业应用部署到任意J2髓平台产品的便捷方式。企业应用越来越复杂化,企业应用的组成也越来越庞大,迫切需要组件技术,来支持应用的高可靠性,快速开发,快速部署_T2EE完全采用了组件概念。企业应用的安全性_丁2EE提供了非常有效的,灵活的安全模型。可扩展性和可集成化Connector技术最大限度地支持企业的原有系统,组件技术则使得企业应用的扩展非常灵活。(2)多层结构的划分方式:用户界面层,例如浏览器,桌面应用,无线设备。表示逻辑层,给出用户界面的定义及如何处理用户请求。业务逻辑层,通过与应用数据打交道,对应用的业务规则实施建模。基础框架服务层,提供应用系统所需要的底层功能,例如消息传输,事务支持,安全支持等等。数据层,存放企业的应用数据。(3)基于多层体系结构开发模式表示层:使用Hr地,也,JSP,Servlet进行客户端GUI开发。逻辑层:由Taglib,Servlet,RMI,CORBA,会话Bean组成,这一层可以再细化分为多层。数据层:由实体Bean和数据库组成。图I1为J2EE平台组织形式:一5一SUuts框架在杜保系统支付子系统中的应用和实现图11J2EE平台组织形式Fig11J2EEplatl。2J2髓的核心技术J2EE是一个有机的整体,最常用的J2EE技术是:JDBC、JNDI、EJB、JSP$11Servlet。图12描述了在一个分布式应用中,每项J2EE技术通常应用的位置。本文主要介绍一下在大连社会保障系统中用到的相关技:术:Servlet,jsP和EJB。图12J2髓核心技术及其应用位置Fig12ThecoretechnologiesofJ2EEandtheirAppliedlocation6大连理工大学硕士学位论文121JavaServletServlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGIPerl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数TEL代码中嵌入少量的JaV8代码,而Servlet全部由Java写成并且生成HTML并返回到客户端。avaServlet技术允许用户定义一个特定的HTTP的Servlet类。一个Servlet类为服务器扩展了这样一个性能:可以通过请求一响应这样的程序模式访问主机应用程序。尽管Servlet可以响应任何形式的请求,但是它们通常用于Web服务器上的应用程序。JavaServlet实质上是一种小型的、与平台无关的Java类,它由容器管理并被编译成平台无关的字节代码,这些代码可以动态地加载到一个web服务器上,并由该web服务器运行。Servlet通过一种由Servlet容器实现的“请求一响应”模型与Web客户机进行交互。这种“请求一响应”模型建立在超文本传输协议(HTTP)行为的基础之上。JavaServletAPI提供了一种通用机制,对于任何使用了基于“请求一响应”协议的服务器提供了编程接口。这种机制可以扩展其功能。JavaServletAPI接口定义在javaservlet和javaxservlethttp包中。JavaServletAPI与其他JavaEnterpriseAPI不同之处在于它不是一个在现存的网络服务和协议之上的Java层;相反,类似于CGI应用程序,它本身往往不是完整的应用程序。在处理接收自Web浏览器上用户的信息请求时,CGl只是整个处理过程中的一个中间步骤。例如,CGI应用程序的一种常见用途是访问数据库;将它用于这种任务时,CGI程序提供一种方法,将用户的数据请求连接到能满足这种请求的企业数据库,并向用户发回请求结果作为响应。随着越来越多的Web服务器的支持,Servlet逐渐取代了CGI脚本语言。与CGI脚本语言相比,Servlet在可伸缩性上提供了很好的改进:每一个CGI在开始的时候都要求开始一个新的进程,而ServleZ在Servlet引擎中是以分离的线程来运行的。此外相比于现在的竞争者ASPASPNET,Servlet的主要优点在于其平台无关性。JavaServlet与CGI程序相似,适合于充当连接前端Web请求与后端数据资源处理的连接器,而且由于其基于“请求一响应”的运作机制,Servlet也很适合作为“请求一响应”模型的控制器。122JavaServerPagesJavaServerPages(JSP)技术使得程序员可以将Servlet代码嵌入到基于文本的文档中。一个JSP页面就是一个基于文本的文档,它包含两个类型的文本:静态模板的数据,它可以表示为任何基于文本的格式,例如HTYL、眦和掰L:jsp单-元,它决定页7一Struts框架在社保系统支付子系统中的应用和实现面如何建立动态的内容。JsP页面由HTAfIL代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理并编译成Servlet,然后将此Servlet生成的HTML页面返回给客户端的浏览器。JSP是对Servlet的一种扩展,它可以通过一些特殊的标签向静态HTML页面中插入动态的信息。如可以利用标签添加Java代码段,用将表达式的值写入页面,用标签在某一范围内(page、request、session、context等)引用JavaBean组件。除此之外,JSP的标准标签扩展机制还允许开发人员编写自己的标签和相应的实现方法。这样就可以将某些业务逻辑封装成JSP的标签,使JSP文件更加简单、易于实现。当一个浏览器向服务器请求一个JSp文件时,i新-JSP文件首先被Web应用服务器编译成Servlet并执行,然后将所产生的结果作为个HT儿文件传给浏览器。只要在JSP文件中加入一些控制,便可轻易的实现对数据的动态显示。以后,如果再有对这个JSP文件的请求,且该文件没有作任何修改,它将不会再被编译,而是直接执行已编译好的Servlet从而提高了响应速度。123EnterpriseJavaBeansJ2EE投术之所以赢得Java开发团体的广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式的商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。一个EnterpriseJavaBean是一个用来执行业务逻辑的模块的具有字段和方法的代码实体。一个EnterpriseJavaBean可以被看作一块积木,它可以在J2EE服务器上单独使用也可以与其它EnterpriseJavaBean协同工作搭建成一个完整的业务逻辑。有三种类型的EnterpriseJavaBean:sessionbean、entitybean和messagedrivenbean。EnterpriseJavaBean经常与数据库有一个交互的关系。使用entitybean的个好处是不需要编写任何SQL代码或使用JDBCAPI就可以直接执行数据库访问操作;EJB容器会处理这些事。然而,如果因为某种原因,程序员重载了默认的容器管理持续化,则必须使用JDBCAPI。同样的,如果选择一个sessionbean来访i日数据库,也必须使用JDBcAPI。EB规范定义了ES组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJl3平行的方式来达到同样的目的。-8大连理工大学硕士学位论文2Myc模式及其在Web系统中的应用21MVC模式概述MVC是ModelView-Controller的简称,即模型视图控制器。MVC是一个提出问题及其解决方案的设计模式,它强制性的将应用程序的输入,处理和输出分开。MVC将应用程序分成3个核心模块:模型,视图和控制器,它们分担不同的角色。图21显示了这三个模块的各自的功能和相互关系。图21MVC设计模式Fig21themodelofMVC(1)模型:模型表示应用的数据及操作这些数据的逻辑方法。任何和整个应用有关的持久性数据都应该放在模型中。对于模型,它提供的API不能只针对某一个专门的视图或控制器,应该更般化以适应不同的客户的需求。(2)视图:视图将模型的当前状态展示给用户,具体的显示方法由视图负责,因此一个模型可以适应多个不同的视图。在模型状态改变后,通过模型和视图之间的协议,试图得知这种改变并修改自己的显示。对于用户的输入,视图将它们交给控制器处理。(3)控制器:控制器负责交互并将应用转向其他视图。一些非持久地临时数据也应该在视图中存取。2。2MVC模式特点经验丰富的开发者会将数据从表示层分离出来,但这通常不是很容易做到的。它需要精心的设计和不断的尝试。MVC从根本上强制性的将它们分开。9Struts框架在社保系统支付子系统中的应用和实现首先,多个视图能够共享一个模型。如今,同一个Web应用程序会提供多种用户界面。在MVC设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并将它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重用性。其次,模型是自包含的,与控制器和视图保持将对独立,所以可以方便的改变应用程序的数据层和业务规则。如果移植数据库或者改变数据源,只需要改变模型即可。一旦正确的实现了模型,不管数据来自数据库还是LDAP服务器,视图都会正确的显示它们,由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松耦合的构件。最后,控制器提高了应用程序的灵活性和可配制性。控制器可以用来连接不同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图将处理结果显示给用户。23MVC模式在web系统中的应用尽管MVC设计模式很早就出现了,但在Web应用开发中引入MVC却很困难。主要原因是在早期的Web应用开发中,程序语言和HTML的分离一直难以实现。例如在JSP网页中执行业务逻辑的程序代码和HTML表示层数据混杂在一起,因此很难分离出单独的业务模型。这使得维护JSP网页非常困难,很难满足用户的变化性需求。为了解决以上问题,sun公司提出了两种模型用于JSP的Web开发,称为模型l和模型2。模型l:模型1的基础是JSP页面,它从HTrP请求中提取请求参数,处理HTIP会话,生产HTIP页面返回客户端。模型1其实不是稳定的框架,甚至谈不上形成了框架,它是一系列JSP页面的组合和家户形成了完整的Web应用,这和早期的ASP和PHP技术相似。图22是模型l的示意图。模型2:模型2是基于MVC模式的框架,它是一种联合使用JSP与Servlet来提供动态内容服务的方法。它吸取了jsP和Servlet两种技术各自的突出优点,用JSP生成表示层的内容,让Servlet完成深层次的处理任务。在这里,Servlet充当控制器的角色,负责处理用户请求创建JsP页面需要使用的JavaBean对象,根据用户请求选择合适的JSP也返回给用户。在JSP页内没有处理逻辑,它仅负责检索原先由Servlet创建的JavaBean对象,从Servlet中提取动态内容插入到静态模版。这是一种有突破性的软件设计方法,它清晰度的分离了表达和内容,明确了角色定义以及开发者与网页设计10大连理工大学硕士学位论文者的分工。事实上,项目越复杂,使用模型2的好处就越大。图23是模型2的示意图。App娃c雠蚴se钉融絮;美嘉鼠耄:嚣始7图22模型1Fig22ModellAppncation8删释吲铡鐾篆窑图23模型2rig23Model2Struts框架在社保系统支付子系统中的应用和实现3MVC模式的Struts框架实现31Web框架概述框架伴随着软件开发的发展,在多层的软件开发项目中,可重用,易扩展,而且是经过良好测试的软件组件,越来越多为人们所接受。这意味着人们可以将充裕的时间用来分析,构建业务逻辑的应用上,而不是繁琐的编码工作。于是人们将掘同类型问题的解决途径进行抽象,定义成了一个应用框架。这就是我们所说的Framework。常见的WebFramework有很多,下面列举了一些常用的优秀框架:(1)Barracuda:它是一种模型2体系结构,但是它进一步提供了模型的事件通知机制。此框架利用创建用户界面的XvlLC方法所提纲的代码内容分离原则。使用这一框架的缺点是,开发人员的学习难度加大了。XMLC的用法以及Java类从HTML或XML文件中创建都容易使初级开发人员混淆。(2)CocooD:它的目标是帮助分离格式,逻辑和对基于XML网站的管理功能。它使用XML,XSLT以及SAX技术,创建,部署和维护XML服务器应用程序。(3)Expresso:它是一种应用程序开发框架包,提供了开发数据库驱动的Web应用程序的组件框架。它可以集成到Struts中,并添加安全,对象关系映射,后台工作处理和调度以及其他功能。它更象是S廿uts框架的附属产品。(4)Turbine:它是基于Servl乱的框架。它类似于Struts,但是有一些主要区别。突出的一点是它并没有与JSP耦合。它的特点是它提供了大量可重用的组件。(5)webWork:它是小型Web应用程序框架,使用PullHierarchicalModelViewController(PHUVC,拉层次模型视图控制器)设计。通过标准的MVC设计,对模型做出的修改就可以被推给视图。(6)JavaServerFaces:它定义了体系结构以及一组API,用于创建和维护Java服务器Web应用程序。它可以和多种Framework整合。在众多的WebFramework中,Struts框架的应用范围最广,其原因是因为Struts很好的实现了MVC以及COleJ2EEpaaems的标准。而且,将来的发展趋势,很有可能是JSF+Struls+Spring的开发模式。所以,本项目采用S_lruts框架进行开发和设计。12大连理工大学硕士学位论文32Struts框架简介Struts框架是基于MVC模式的,制作大型Web应用的框架,主要采用Servlet和JSP技术来实现的。Struts把Strvlet,JSP,自定义标签和信息资源整合到一个统一的框架中。实际上,Struts框架实现的是MVC的视图和控制器组件。Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的Web应用程序的开发。Struts的体系结构,如图31所示:Stru谯撅览图3。1Struts框架Fig31StrutsFramework在应用软件的开发中,Struts框架把用户界面和事务逻辑分离后,不仅可使页面设计者和程序开发者很好地协调工作,而且可提高应用软件的灵活性。同时,基于模型的软件框架的研究也日趋活跃。Struts不仅具有开发简单、标记库丰富等优点,而且在Struts中,程序的流程控制不是直接写在源代码中,而是利用沮。配置文件来完成,当程序发生变化时,通过儿修改配置文件可方便地对程序流程进行控制,进一步提高了软件的可扩展性。33Struts实现MVC模式的机制Struts框架是对MVC设计模式的一种实现。MVC设计模式为构建可扩展,可重用的体系结构打下了坚实的基础。MVC设计模式最吸引人的地方在于它迫使用户必须抽象出自己的代码,把项目分解为表示,逻辑和控制三部分,每部分间的关联很小,以MVC设计模式构造软件,可以使得软件结构灵活,重用性好,扩展性佳。-13,Struts框架在社保系统支付子系统中的应用和实现一个好的框架应该提供可以跨越不同类型的应用的一般化方法。类库和框架之间的区分很微妙,也很清晰,对于类库,构建的应用主要是调用类库的方法;而对于框架,恰恰是相反的过程,构建应用时扩展框架中的类或实现借口,而在运行时,由框架调用这些类的方法。框架通常具有以下特性:(1)组成框架的类和组件,一般都提供对一些概念,方法的抽象;(2)框架定义抽象直接的关系和交互,用以解决特定的问题;(3)框架的组件是可重用的。Stmts是一个框架,作为框架,必然具有相当的可靠性和稳定性,也必然是一个灵活的软件架构,能够支持良好的重用和扩展,这正是软件开发所追求的。s缸1Ics框架中包含三个部分:模型,视窗和控制器。331模型在Struts框架中,模型分为两个部分:(1)系统的内部状态内部状态通常由一组ACnRMJAv柚幽-N表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。(2)可以改变状态的操作(事务逻辑)大型应用程序通常在方法内部封装事务逻辑(操作)。这些方法可以被拥有状态信息的bean调用。小型程序中,操作可能会被嵌在Action类中,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很适合。最好将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。332视窗由JSP建立,Struts包含扩展自定义标签库,可以简化创建完全国际化用户界面的过程。333控制器Struts中,基本的控制器组件是ACTIONSERVLET类中的实例SERVLET,实际使用的SERVLET在配置文件中由一组映射(由ACTIONMAPPING类进行描述)进行定义。Struts框架中的组件的UML顺序图如图32所示:14大连理工大学硕士学位论文图32Servlet与Model关系UML图Fig32TheUMLdiagramoftherelationofServletandModel334Struts的配置文件strutsconfigxml一个用户请求是通过ActonServlct来处理和转发的,这就需要一些描述用户请求路径和Action映射关系得配置信息了。在Struts中,这些配置信息都存储在特定的XML文件strutscontigxml中。在该配置文件中,每一个Action的映射信息都通过一个Action元素来配置。这些配置信息在系统启动的时候被读入内存,供Struts在运行期间使用。在内存中,每一个Action元素都对应一个orgapachestrutsactionActionMapping类的实例。34Stmts的工作流程对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化AcfionServlct,ActionServlet从struts-configxml文件中读取配置信息,把它们存放到各种配置对象中。当AcfinServlet接收到一个客户请求时,将执行如下流程。(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。(2)如果Action实例不存在,就创建个ActionFrom对象,把客户提交的表单数据保存到Action对象中。15Struts框架在社保系统支付子系统中的应用和实现(3)根据配置信息决定是否需要表单验证。如果需要验证,就调用Action的validate0方法。(4)如果Action的validate0方法返回Null或返回一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。(5)AcfionServlet根据ActionMapping实例包含的映射信息决定将请求转发个哪个Action。如果相应的Action实例不存在,就先创建这个实例,然后调用Action的cute0方法。(6)Action的cute0方法返回一个ActionForward对象,ActionServlet再把客户请求转发给AcionForward对象指向的JSP组件。(7)AcionForward对象指向的JSP组件生成动态网页,返回给客户。图33显示了Struts响应用户请求的工作流程。图33Struts工作流程图Fig33TheflowofStruts16大连理工大学硕士学位论文35Struts的组件及标记库Struts框架中所使用的主要组件:(1)ActionMapping类框架中的控制器组件是有orgapachestrutsactionActionServlet类实现的,这个类是javaxservlethttpHttpServlet类的扩展。Smutscondoner基本功能是:截获用户的H仕p请求。把这个请求映射到相应的Action类,如果这是此类收到的第一个请求,将初始化实例并缓存。创建或发现一个Actionbean实例(看配置文件是否定义),然后将请求过程移植到bean。调用Action实例的per()方法并将Actiobc趾ActionMapping对象,request私response对象传给它。(2)ActionMapping类将特定请求映射到特定Action的相关信息存储在ActionMapping中,ActionServelt将ActionMapping传送到Action类的per()方法,Action将使用ActionMapping的FindForward()方法,此方法返回一个指定名称的hctionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null。(3)Action类ACTION类真正实现应用程序的事务逻辑,它们负责处理请求。在收到请求后,AcTl0NsERVLET会:为这个请求选择适当的AcrIoN:如果需要,创建ACTION的一个实例;调用ACTION的PER()方法。(4)Acfion类框架假设用户在应用程序中为每个表单创建了一个ACTIONBEAN,对于每个在STRUTS-CONFIGXML文件中定义的BEAN,框架在调用ACTION类的PER0方法之前会进行以下操作:在关联的关键字下,它检查用于适当类的BEAN实例的用户会话,如果在会话中没有可用的BEAN,它就会自动创建一个新的BEAN并添加到用户的会话中。17s仉Its框架在社保系统支付子系统中的应用和实现在每个与BEAN属性名称对应的参数中,ACTION调用相应的设置方法。当ACTIONPER0被调用时,最新的ACTIONBEAN传送给它,参数值就可以立即使用了。(5)ActionForward类目的是控制器将Action类的处理结果转发至目的地。Action类获得ActionForward实例的旬柄,然后可用三种方法返回到ActionServlet,所以我们可以这样使用fmdForward0:AcdonServlet根据名称获取个全局转发。ActionMappin实例被传送到peffonnO方法,并根据名称找到一个本地转发。(6)ActionError类AcfionError类从不独立进行错误处理,它们总是被存储在AcionErrors对象中。ActionErrors对象保存ActionError类的集合以及它们特定的属性值,我们可以使用自己定义的属性值,或是使用ActionErrorsGLOBALER壬R(7)Struts标记库JSp视窗组件所使用的struts标记库由四类标记组成:Bean标记:用来在jsp页中管理bean。这个标记库中包含用于定义新bean、访问bean及其属性的标记。Struts框架提供了多种自定义标记用来在JSp页中处理JavaBean。这些标记被封装在一个普通的标记库中,在文件struts-beantld中定义了它的标记库描述器。Bean标记库将标记定义在四个子类别中:创建和复制bean的标记:脚本变量定义标记;bean翻译标记;消息国际化标记。逻辑标记:用来在JSP页中控帝8流程。逻辑库的标记能够用来处理外观逻辑而不需要使用scriptlet。Struts逻辑标签库包含的标记能够有条件地产生输出文本,在对象集合中循环从而重复地产生输出文本,以及应用程序流程控制。它也提供了一组在JSp页中处理流程控制的标记。这些标记封装在文件名为strutslogictld的标记包中。逻辑标记库定义的标记能够执行下列三个功能:条件逻辑;重复;转发重定向响应。HTML标记:用来生成HTML标记,在表单中显示数据,使用会话ID对uRL进行编程。StrutsHT扎标记可以大致地分为以下几个功能:显示表单元素和输入控件;显示错误信息;显示其他HTML元素。模板标记:使用动态模板构造普通格式的页。动态模板是模块化WEB页布局设计的强大手段。Struts模板标记库定义了自定义标记来实现动态模板。18大连理工大学硕士学位论文4基于Struts框架的大连社会保障系统的需求分析41绪论随着我国经济体制改革的深入,建立健全完善的社会保障体系已经成为当务之急。社会保障管理信息系统作为社会保障体系的技术支撑体系,是一切业务工作的基础条件,只有建立起安全高效的信息系统,才能完成社会保险的各项业务工作。对于规范社会保险业务、提高工作效率、保障基金安全、增强决策的科学性意义都非常重大。旧的社会保障信息管理系统在实现方式上大多采用主从方式,即一台主机外挂多台终端,终端直接运行主机上的业务逻辑,并将数据保存到主机上;或者是前台采用其他工具来编写业务逻辑,进行数据库的yo操作,并去访问后台的数据库,最终将数据保存到主机上,也就是CfientServer结构。采用上述这两种结构的业务系统虽然在开发的初期能够很快建立起应用,但随着业务系统越来越复杂,这种结构的缺点就变得非常明显。首先,程序交得很难维护,由于程序之间的关联性很强,程序中的某一处功能的改动可能会影响到其他功能模块原有的正常运行,对于CfientServer结构来说,要维护数十台甚至上百台Client端的程序,使其被一致更新,其工作量之大,工作效率之低可想而知,而且,极容易由于某台机器被漏掉升级而导致旧的程序对整个数据库数据的完整性造成破坏。另外,单一主机一方面在系统稳定性方面存在巨大隐患,一旦主机出现故障,将会导致整个系统的瘫痪,造成巨大的损失,有时甚至登录不上主机。在这种体系结构下,为了提高系统运行效率,在不断完善自身程序的同时,只能通过提高机器硬件指标,如扩大内存,cPu升级,加大硬盘容量,以及让客户购买更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市政供热老旧管网改造工程节能评估报告
- 煤炭仓储物流项目节能评估报告
- 机械拆除与人工拆除配合方案
- 2025年关于轴承考试试题及答案
- 氢能电源生产线项目技术方案
- 起重设备安装项目成本控制方案
- 足疗理论考试题目及答案
- 住宅小区物业股权转让及业主权益保障协议
- 离婚协议经典样本:婚姻终止财产分配与子女监护协议
- 液化空气储能空分技术经济性分析与评估
- 中医隔物灸试题及答案
- 可信数据空间解决方案星环科技
- 2019抽水蓄能电站工程施工工艺标准手册:土建分册
- 煤矿电工考试题库及答案
- 农村养殖技术培训
- 印刷调研报告
- 精细化工产业创新发展实施方案(2025-2027年)
- 危重患者亚低温治疗
- 面试各种测试题目及答案
- 出版专业中级实务复习笔记
- 工地试验室管理制度
评论
0/150
提交评论