电子政务系统设计与实现.doc_第1页
电子政务系统设计与实现.doc_第2页
电子政务系统设计与实现.doc_第3页
电子政务系统设计与实现.doc_第4页
电子政务系统设计与实现.doc_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络,如有侵权,请联系网站删除安阳市市政府电子政务系统设计与实现摘要当前电子政务发展迅猛,从上到下,各级政府都在建立自己的电子政务系统,有专业性很强的政务系统,也有作为管理功能使用的政务系统。而一站式电子化的政务服务、政务公开、政务门户、网上办事等信息化手段,既提高了政府效率,又方便了群众。本文介绍了电子政务的产生和国内外的发展状况,研究了面向对象的系统设计和分析,本系统用java语言作为实现语言,数据库系统的实现采用了流行的ms_sql server2000。介绍了MVC设计模式,以及本系统要用到Struts框架的技术原理,通过对需求的分析和电子政务以及J2EE的特点的综合论证,提出了基于JZEE的电子政务的技术框架和业务框架。结合自己的工作实际,用面向对象的系统设计方法,实现了安阳市市政府电子政务系统的开发。其主要关键技术及解决方案有:(1) 采用基于MVC模式的struts框架结构,使得表示层、业务层独立性更好,增加软件系统的可靠性;(2) 网站普通浏览者和系统管理人员、单位领导可实现双向交流;(3)可扩展性好,可随时增、删网站栏目、内容以及电子政务新系统。(4)可为各部门设定不同的操作权限;(5)内容发布简单、方便如编辑WORD文档,功能强大;(6) 系统安全性好,结合了数据库管理安全和各种安全技术;(7) 由于系统的分析设计采用了先进的软件工程思想,保证了本系统的高效可靠与开放性。关键词:电子政务、STRUTS、MVC、数据库、安全精品文档ABSTRACTCurrently, the e-Government becomes more and more widely used. All levels of the government are building their own e-Government systems, some of which are professional systems, others are managing systems. Electronics information service based on one-website such as government affaires services, government affaires publicity, government affaires portal, affaires on website, not only improve the Government efficiency, but also bring convenience to the people. This paper introduces the progress and actuality of national and international e-Government. We have researched the object-oriented system design and analyses. The system used java language as language, database system using popular ms_sql server2000. Introduced the MVC design pattern, as well as the use of the system to the Struts framework of the principles of technology, The demand for analysis and e-government J2EE, as well as the characteristics of a comprehensive argument, based on the JZEE e-government framework of the technical and operational framework. Combined with their practical work, using object-oriented systems design, the city of Anyang city government realized the e-government system.The key technologies and solutions of our system are as following:1. MVC-based model struts framework, making that level, the operational independence of the better layer to increase the reliability of the system software;2. The people browsing the web page, the system manager and the leader of department can communicate each other.3. It has well expansion ability, for example, it can add or delete web navigation bar, web page and new e-Government system conveniently.4. It can set up the different operation authorization for each department.5. The content issuance is very simple and convenient, and has the powerful function similar to editing the document of word.6. Security system, a combination of database security and security management technology;7. As the analysis of the system designed with advanced software engineering, and ensure the reliable and efficient system of openness.Key words: E-government, STRUTS, MVC, Database, safe第一章 绪论1.1系统开发背景和意义加入世贸组织,是中国主动参与经济全球化、融入世界经济主流的重要战略选择,入世后,政府以及各个部门将面临最为严峻的挑战,政府的公共管理的法制化、公开化、科学化、效率化的要求将越来越高。随着信息技术进步的加快,尤其是国际互联网的迅速发展,通过网上办公,可以有效改善政府公共管理的水平和效率。为顺应时代的要求,各级政府加大了建立网上办公的力度,即电子政务建设。在世界各国积极倡导的“信息高速公路”的五个应用领域中,“电子政务”被列为第一位.它是政府部门进入现代化行政管理、提高决策的科学性、客观性,增强民主意识,加大行政管理透明度的重要环节。政府作为国家组成及信息流的“中心节点”,在社会信息化的进程中起着无可替代的作用。电子政务打破了时间、空间和部门分隔的制约,有助于建成一个精简、高效、廉洁、公平、有竞争力的政府运作模式。推进电子政务建设,可以促进政府部门在管理观念和工作模式上的变革;实现由传统政府的管理职能向现代政府的管理和服务职能转变:有利于提高政府工作的透明度、优化机关作业流程、提高办事效率、克服官僚主义、促进勤政、廉政建设;有利于加强政府与民众的信息交流、增强与民众的沟通与互动、拉近与民众的距离。同时实施电子政务,还可以极大地丰富网上信息资源,最大限度地扩展信息资源的共享空间。在国家信息化发展进程中,政府部门起着非常重要的作用。实施电子政务,将会拉动信息技术行业需求并带来巨大的商业机会,进而带动企业上网、家庭上网、电子商务、网上交易、远程教育、远程医疗等网上应用,这对于推进全社会信息化进程具有十分重大而深远的意义。网络的发展拓展了电子政务的作用范围,现代意义上的基于网络的电子政务己不仅仅是提高打字录入、排版编辑这样的个人事务处理效率,甚至也不仅仅是实现公文收发、流转、签发、归档这样的群组工作效率。事实上,网络时代的电子政务是政府机构跨部门运作的基础信息系统,可以联结单位内各部门的各个人员,可以联结单位各类信息系统和信息资源.电子政务系统的运行不仅应当适应单位为提高运作效率而进行的机构调整,而且还可以促进单位资源合理配置的进程。其实,过去已有不少政府机关单位开展电子政务,这些系统大都是采用以关系型数据库为基础的MIS系统。但由于当时网络技术和信息管理软件本身的局限,这些办公软件存在许多缺陷,已不能适应现代工作的要求,如集成化程度低,资源共享不充分,缺乏韧性,对环境适应性差,特别是这些办公软件大多是静态的,仅能提供文档的存储、管理和查询。远远不能适应网络化信息时代的要求,使其应用范围和效果很有限。经济全球化和社会信息化的发展正在引发一场深刻的生产和生活方式的变革,极大地推动着经济和社会的全面进步。加快实施电子政务工程,既是经济和社会发展的迫切需要,也是进一步转变工作方式,革新、完善政府机关的办事手段一项十分紧迫的任务。积极利用网络技术、数字技术,实现政务信息化,能够加快行政管理的信息化、现代化步伐,更好地适应改革开放和现代化建设新形势的需要,提高政府工作的透明度,降低办公费用,提高办事效率。1.2电子政务国内外发展现状发展我国社会主义市场经济离不开国家计划的指导,现阶段的电子政务发展同样需要规划的指导。电子政务建设是“社会工程”、“民生工程”,具有明显的社会性、群众性、整体性。就目前某些地区、部门而言,电子政务建设没有统一规划、综合考虑、总体部署、典型引路,而只是顺其自然、自行其事、孤立实施、各自为战,其结果必然是良莠纷呈、优劣共存、网络不通、信息资源难于共享。我国的电信行业“十一五”规划的编制工作已经启动,电子政务经历了高潮迭起的建设阶段,现在应该冷静下来分析现状,对未来的走向进行理性规划,从宏观上对电子政务的有序发展进行整体把握。在我国,电子政务的概念逐步深入人心。从20世纪80年代就开始的电子政务建设到今天已经取得了初步的成效,许多地方政府部门基本上都建立了相应的配套设施。在有了这些基础之后,我国的电子政务建设开始进入一个非常关键的时期,即从基础建设到全面应用的深刻变革时期。特别是党的十六大将加强电子政务作为一项基本国策写入新的五年规划,电子政务在推进政府管理创新方面将起到革命性的作用。我们应该借鉴电子政务发展作为成功的国家的经验,同时结合本国国情,制定出一套能够满足各级政府机构和社会各界的现实和潜在需求,能够前瞻性地把握电子政务的发展方向和变化趋势的规划体系,从而促进电子政务有序发展,保证电子政务的实际效果。现在的电子政务与90年代初相比,电子政务的概念已经有了很大的发展。当前电子政务在世界范围内的发展有两个主要的特征,一个是以互联网为基础设施,构造和发展电子政务,第二是强调政府服务功能的发挥和完善,这两个主要特征的出现是由于发达国家经过的持续50年信息化的努力,政府内部管理信息系统和各种决策支持系统已经基本完成,已经具备了利用互联网将政府的信息系统在技术上和功能上向政府外部延伸。现在已经呈现了这么两个主要特征的国际电子政务发展趋势,在此就举一个欧盟的例子。欧洲委员会最近对它的成员国提出一个指令,要求欧盟的会员国应该以20个基本公共服务项目作为政府上网服务的优先考虑,在20个项目中其中有12项是面向居民的服务,面向社会公众的服务,有8个是面向企业的服务,而且按照欧洲委员会的要求,希望它的成员国所有的公共服务项目在2002年底以前完成。现在世界上很多国家,尤其是发达国家他们把电子政务的重点基本上是以面向居民的服务、面向企业的服务作为电子政务的出发点。要把公共服务作为电子政务的出发点和归宿,从这些项目的设定就可以看出来现在世界各国,发展电子政务是必不可少的。1.3本论文的研究目标和技术路线本论文的研究目标是对mvc模式进行深入研究,论述mvc模式各个组成部分(模型、视图、控制器)在软件开发中所担当的角色及功能,并对各个组成部分的工作流程及它们之间的相互关系做了深入研究。同时对良好实现了表示层的现成框架struts做了深入分析,对struts框架的相关技术进行了研究,并将其应用于电子政务应用系统的开发中,结合j2EE平台技术,为电子政务应用系统的开发提供标准的mvc框架开发模式。本文中使用的开发实例是安阳市市政府电子政务系统,本论文对该系统的设计,开发背景,网络系统设计,部分模块的实现等做了详细的分析。此系统部分功能模块已经成功部署运行1.4论文的组织结构本文的组织结构如下:第一章 绪论。主要讲述了电子政务系统的开发背景和意义,国内外研究现状及本文主要研究的内容。第二章 MVC设计模式。本章主要介绍了mvc模式,mvc模式中各层的功能用途。第三章 基于MVC的struts框架。本章主要研究了struts框架的系统结构和工作流程及在struts框架中是如何实现mvc模式中各层,同时还研究了struts框架的各组件的功能和工作特点。第四章 安阳市政府电子政务系统设计与实现。本章以安阳市电子政务系统为例,结合MVC设计模式,对安阳市电子政务系统的设计、网络系统设计、部分模块的实现和系统本身的功能结构做了深入分析。第五章 系统安全体系解决方案。本章主要介绍了本系统的技术特点和系统实现的安全方案。第六章 总结与展望。本章总结全文。指出本系统设计的不足及下一步工作的研究重点。第二章MVC设计模式2.1设计模式简介面向对象技术的出现和应用大大提高了软件的重用性和软件的质量。面向对象的编程也比以往的各种编程模式要简单和高效,但是面向对象的设计方法要比以往的设计方法要复杂和有技巧得多,一个良好的设计应该既具有对问题的针对性,也充分考虑到对将来问题和需求有足够的通用性。在过去的十几年中,人们在对面向对象技术的研究探索和实际应用中针对某些问题创造了一些良好的解决方案,即所谓的面向对象的设计模式。面向对象技术的目的之一就是提高软件的重用性,而对设计模式、设计方案的重用则从更深的层次上体现了重用的意义和本质。人们对设计模式有很多定义,其中被引用的最多是ChrisotpherAlxaender的设计模式的定义:每一个设计模式是一个三方的规则,它表达了一个上下文环境(content),一个问题和一个解决方案。设计模式一般有如下几个基本要素:模式名称,问题,目的,解决方案,效果,样例代码和相关设计模式。设计模式的分类有好几种,可以根据其目的分为创建型(create),结构型(Structural)和行为型(Behavioral)三种。创建型模式主要是用来创建对象,结构型模式主要是处理类或对象的组合,行为型模式则主要用来描述对类或对象怎样交互和怎样分配职责。也可以根据范围将设计模式分为类模式和对象模式,类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。对象模式是处理对象间的关系,这些关系在运行时刻变化,更具动态性。模式的特点:是通过经验获取的,以某种结构化的格式书写下来,避免了遇到相同的问题从头设计,存在于不同的抽象层,在不断完善的,是可重用的人工产物,使设计和最好的练习交互,以被组合起来解决更大的问题。2.2 MVC模式介绍MVC最初是在Smalletkl一80中被用来构建用户界面的。M代表模型Model,V代表视图功View,C代表控制器Contorller。MVC的目的是增加代码的重用率,减少数据表达,数据描述和应用操作的祸合度。同时也使得软件可维护性,可修复性,可扩展性,灵活性以及封装性大大提高。单用户的应用通常是以事件驱动的用户界面为组织结构的。开发人员用一个界面工具画了一个用户接口界面,然后编写代码根据用户输入去执行相应的动作,许多交互式的开发环境鼓励这么做,因为它强调先有界面然后再有功能。一些软件设计模式策略是这样的,然后经常将固定后的代码融入最后的系统当中。导致的结果就是,程序组织围绕用户界面元素和用户在那些界面元素上的动作,数据的存储,应用的功能以及用来显示的代码都杂乱无章的缠绕在一起。在单用户的系统里代码结构是可以这样的,因为系统需求不会频繁变化。但是对一个大的系统如大型Web系统,或电子商务系统来说就不太适用了。通过把数据模式从各种可以被存取和控制的数据中分离出来可以改善分布式系统的设计。MVC设计模式由三部分组成。模型是应用对象,没有用户界面。视图表示它在屏幕上的显示,代表流向用户的数据。控制器定义用户界面对用户输入的响应方式,负责把用户的动作转成针对Model的操作。Mode!通过更新切ew的数据来反映数据的变化。三者关系如图所示:现在的一些基于Web的分布式系统如B2B电子商务系统,就适合采用MVC架构。通过分析,从高层次的角度可以将一个应用的对象分为三类。一类就是负责显示的对象,一类对象包含业务规则和数据,还有一类就是接收请求,控制业务对象去完成请求。这些应用的显示是经常需要变换的,如网页的风格,色调,还有需要显示的内容,内容的显示方式等。而业务规则和数据是相对要稳定的。因此,表示显示的对象功ew经常需要变化的,表示业务规则和数据的对象Mode!要相对稳定,而表示控制的Contorller则最稳定。通常当系统发布后,View对象是由美工,HTML/ JSP设计人员或者系统管理员来负责管理的。Contorller对象由应用开发人员开发实施,业务规则对象和业务数据对象则由开发人员,领域专家和数据库管理员共同完成的。显示逻辑在Web层或客户端控制,可以是Serve!et或JSP,动态地生成HTML。一般来说采用JSP要比采用Sevrlet要好。JSp更好地将代码与HTML部分分开,有利于页面设计人员和代码开发人员的分离,提高效率。同时JSP可以完成所有Sevretl完成的功能,实际上JSP最终也转换成一个Servelet。与控制有关的对象存在于系统的每一个层次,协调跨层动作。包含业务规则和数据的对象存在于EJB层(以EJB为中心的模式)或Web层(以Web为中心的模式)。2.2.1View在Web系统中的应用View代表系统的显示,它完全存在于Web层。一般由JSP、JavaBean和CusotmTag组成。JSP可以动态生成网页内容,CusotmTag更方便了使用JavaBean,而且它可以封装显示逻辑,更有利于于模块化和重用。一些设计良好的CustomTag可以在多个JSP甚至可以在不同的系统里重复使用。JavaBean用来控制JSP和Model对象。JSP通过JavaBean来读取MOdel对象中的数据,Model和Contorller对象则负责对JavaBean的数据更新。一般来说,可以先要设计出所有可能出现的屏幕,即用户使用系统时可以看到的所有内容。然后根据这些内容,找出公共部分,静态部分和动态变化部分。可以考虑使用模板方法,把公用的内容单独生成JSP,需要变化的也各自生成HTML或JSP由一个模板JSP把这些不同部分动态地引入(include方法)。还有一个要考虑的问题就是屏幕的选择问题,当处理完用户请求,模板被自动调用来显示,这个显示一定要知道用户关心的屏幕是有哪些部分组成。所以可以考虑把所有屏幕的定义放在一个集中的文件里,如一个iava文件或文本文件。由于考虑到屏幕定义文件将来的变更可能性,最好使用文本文件如一个XML文件,这样将来更改不用重新编译。可以根据用户输入的URL和参数可以映射到某一个结果屏幕,当然有可能还要根据动作的执行结果选择不同的结果屏幕内容。所以需要一个请求与资源的匹配文件(XML),如果一个URL请求有几种不同结果,则要在该文件中指明是否需要流控制(一种contorller对象)以及不同流向的对应屏幕。2.2.2Model在Web系统中的应用Model对象代表了业务规则和业务数据,存在于EJB层和Web层。在J2EE的规范中,系统有些数据需要存储于数据库中,如用户的账号信息(accountmodel),公司的数据(company mdoel)等,也有一些不需要记录在数据库里的,如某用户浏览的当前产品目录(acatolgmodel),他的购物内容(Shopping cartmodel)等。这些mode!数据存在于哪一层要根据它们的生命周期和范围来决定。在Web层有Httpsession和SevrletContent及JavaBean对象来存储数据,在EJB层则有EJB来存储数据和逻辑。Web层的JavaBaen的mdoel对象存储了EJB层mdoel对象的数据的拷贝。因为EJB层有很多不同的model对象,所以Web层可以通过一个Mode!Manager来控制EJB层的各mdoel对象,在ModelManger中可以封装使用后台model对象的方法。在EJB层把所有的数据和规则都模式化为EJB也是不恰当的。如可以把存取数据库的对象模式化为以DAO对象。DAO中可以封装与具体数据库的交互细节,如可以读写不同的表,多个数据库,甚至多种数据库。如定单的mdoel对象可以是一个OdrerDAO,它可能要同时处理Odrer表,Odrerstatus表和order!temLines表。还有可以考虑使用Va!ue对象。一个value对象可以封装远程对象,因为每一个读远程对象的属性都可能是一个远程过程调用,都会耗费网络资源。可以在EJB的远程对象中使用Va!ue对象.在远程对象中一次性得到value对象来得到所有属性的值。2.2.3Controller在Web系统中的应用Contorellr对象协调Model与View,把用户请求翻译成系统识别的事件。在Web层,一般有一个Mainservelet(或Main.jsp),接收所有请求,它可以调用屏幕流管理器(ScerenFlowManger)决定下一个屏幕。一般还有一个请求处理器RequeatPorecssor,包含所有请求都需要做的处理逻辑,如把请求翻译成系统事件(RqeueatToEvent)。请求处理器通常还包含一个代理对象ClientControlWeblpml,它是EJB层的逻辑处理的在Web层的代理。在EJB层,有一个ClientController提供Web层对EJB层的只读访问。还有一个StateMachine用来建立和删除EJB,处理Web层送来的事件。Contorller还有一个重要的功能就是同步View和Model的数据。在ModeIManger中包含一个ModeIUPdaetManger,它把系统事件转换为一个Mdoel的集合,即所有需要同步的Model,然后通知Listeners去做同步操作。第三章 基于MVC的Struts框架3.1什么是系统开发框架框架是整个或部分系统的可重用设计部分,表现为一组抽象构件及构件实例交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的的方面给出的定义。框架规定了应用的体系结构,阐述了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。框架是构件技术、软件体系结构研究和应用软件开发三者反展结合的产物。在很多情况下,框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。框架的关键还在于框架内对象间的交互模式和控制流模式。框架是体现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。使用这种框架的编程人员可以在一个通用功能己经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类(该子类属于框架的默认行为)或组装对象来支持应用专用的行为。应用框架强调的是软件的设计重用性和系统的可扩展性,以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象的重用技术比较,应用框架更注重于面向专业领域的软件重用。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。3.2设计模式与框架设计模式(Desingpattem)和框架(Framewokr)是开发系统时经常使用的设计方式。设计模式是对在某种环境中反复出现的问题以及解决问题的方案的描述,它比框架更抽象;对开发人员的要求比较高;它只是一种基本的设计思想,还需要详细的设计规划。正如MVC设计模式中,模型和视图的严格分离可能使得调试困难一些,但比较容易发现错误。而框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示。框架是针对某一特定应用领域,但同一模式却可适用于各种应用。框架往往是为实现一个或多个设计模式而设计的可重用可扩展的设计,是软件系统开发的半成品。3.3 Struts的体系结构和控制流Struts工程于2000年5月由CargiR.McClnaahan开始动工,来为Java社区实现一个标准的MVC框架。它利用JSP页面、自定义标签库、Javaservlet和Action等类为MVC模式设计提供相应的组件,并根据J2EE的特点,做了相应的变化与扩展。struts的体系结构与工作原理如图3.1所示:3.3.1模型(Model)以下从MVC角度进行分析Struts的体系结构和工作原理:在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(业务逻辑)。内部状态通常由一组ActionForm Bean类表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。改变状态的操作都封装在Action的子类对象中。通常在Action的子类中调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。利用ActionForm以及Struts提供的自定义标记库可以实现对客户端的表单数据的良好封装和支持,Action对象可以直接进行读写,而不需要和request、response对象进行数据交互。通过ActionForm对象实现了view和Model之间数据的交互。3.3.2视图(View)Struts结构中的视图部分主要是通过JSP技术实现的。Struts还提供了自定义的标签库(cuostmTagLibrayr)进行扩展用户界面的创建。通过这些自定义的标签可以非常好地和系统地Model部分交互,通过使用这些自定义标签创建的JSP表单,可以实现和Mdoel部分中的ActionForm映射,完成对用户数据的封装;同时这些自定义标签还提供了像Velocity模板定制等多种显示功能。当然,还可以结合属性资源包提供国际化显示。3.3.3控制器(ControlIer)控制器作为MVC模式中的核心部分,其作用是从客户端接受用户请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在Struts中控制器功能由Actionservlet、Requestprocessor、ActionMapping和ActionForward等对象构成:核心是一个servlet类型的对象Actionservlet,它用来接受客户端的请求。Actionservlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Mdoel部分中Action对象之间的映射。而ActionForward对象用于指明流程转移页面。Struts框架的处理流程清楚的体现了MVC设计模式的特点,将MVC中“分离显示逻辑和业务逻辑”的功能发挥的淋漓尽致,可以很好的帮助java开发者利用J2EE开发Web应用(参见图3.2)。StrutsContorllerActionservlet处理客户请求,利用配置的ActionMapping对象把请求映射到相应的Action对象进行处理。Action处理对象访问ActionForm力中的数据,处理和响应客户请求,它还调用后台的Bean组件,这些组件封装了具体的业务逻辑。Action对象根据处理结果返回ActionForward对象给Controller ,Controller进行下一步的处理。3.3.4Struts的组件功能分析l)ActionservletActionservlet表示框架中的控制器部分,从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端,是由Struts的 org.apache.struts.action.ActionServlet类来实现的,这个类是javax.servlet.http.httpservlet类的扩展,所以Actionservlet被实现为一个专门处理HTTP请求的Servlet.Actionservlet由一组ActionMapping (org.apache.struts.action.ActionMapping)对象来配置组成的,每个ActionMapping对象实现了一个请求到一个具体的Action(org.apache.struts.action.Action)类之间的映射,它主要完成以下功能:(l)接收来自客户端(通常是一个web浏览器)请求(2)根据客户端的URI将请求映射(AetionMappings)到一个相应的Aetion类。(3)如果需要,将从请求中获取数据填充 FormBean(AetionForm)(4)调用具体Action的执行方法获取数据或者执行业务逻辑(5)选择正确的视图响应客户(6)在/WEB一INF/web.xml中指定了具体的控制器以及初始参数。2)ActionForm(1)ActionForm表示HTTP窗体中的数据,可以将其看作是模型和视图的中介,它负责保存视图中的数据供模型或者视图使用。 Struts1.1文档把它比作HTTP和Action之间的防火墙,这体现了ActionForm具有的过滤保护的作用,只有通过ActionForm验证 (validate方法)的数据才能够发送到Action处理。你可在Validate方法中来检查请求参数的正确性和有效性,并可以将错误信息以ActionErrors的形式返回输入窗体。(2)在控制器调用具体的Action执行execute方法之前,ActionForm对象将利用HTTP请求中的参数来自动填充自己(可选步骤,需要在配置文件中指定)。(3)struts提供的Java类,即org.apache.struts.action.ActionForm是一个抽象类,你必须通过继承来实现自己的类,具体的ActionForm对象应该是ActionForm的子类对象,其实就是一个JavaBean。3)Action我们通过继承Action类来实现具体的执行类。具体Action类的功能一般都在其execute方法中生成,其中主要涉及到以下几个方面:(l)辅助ActionForm进了一些表单数据的检查。(2)执行必要的业务逻辑,比如存取数据库,调用实体Bean等。(3)根据处理结果决定程序的去处,并以ActionForward对象的形式返回给Actionservlet。由于在Action和ActionForm中都可以实现验证方法,那么如何来安排它们之间的分工昵?一般来说,我们秉着MVC分离的原则,也就是视图级的验证工作放在ActionForm来完成,比如输入不能为空,email格式是否正确,利用ValidatorForm可以很轻松地完成这些工作。而与具体业务相关的验证则放入Action中,这样就可以获得最大ActionForm重用性的可能。4)ActionForwardAction处理完成后,它返回一个ActionForward类。这个类将决定处理结果转发到的目的地。如果ActionForward为null,Actionservlet假定响应产生了,但不做任何事情。否则,Actionservlet读入ActionForward,重定向或者转发请求到相应的资源。如果请求是另一个 ActionURI,容器将请求返回给Actionservlet。否则容器发送请求到其它Servlet或service。如果AetionForward设为重定向(redireet),请求被发送回客户端,并提示重新提交一个新请求到特定的地址。5)标记库(Tag Libraries)视图主要是由JSP技术来实现的。JSP页面通过在静态的HTML文本中使用StrutS提供的标一记库来实现动态的内容,从而使得HTML文件中不会嵌入太多的Java代码,文件简洁,结构清晰,从而提高了开发效率。通过使用这些标记创建的JSP表单,可以实现和ActionForm的映射,完成对用户数据的封装。 Struts1.1为Jsp提供了6个标一记库:bean,html,logic,template,tiles,nested。3.3.5Struts配置文件struts应用采用两个基于XML的配置文件来配置,分别是web.xml和struts-ofig.xml文件。通过它们配置StrutS系统中的各个模块之间的交互。web.xml文件是配置所有web应用的,而struts一eonfig.xml文件是struts专用的配置文件。1)web.xmlweb.xml主要用于web应用程序中用到的资源如servlets和taglibs等的初始化配置,形式如下:actionorg.apache.struts.action.ActionServletconfig/WEB-INE/struts-config.xml action*.do/bean/WEB-INF/struts-bean.tld (l)元素用于指定web应用程序的servlet。(2)元素表示servlet的初始化参数,其中参数“config”指示Actionservlet的行为由指定的配置文件来指导,该配置文件通常为“WEB-INF/struts-config.xml”。(3)元素指定servlet能够处理的URL的结尾命名模式,按照惯例,Actionservlet对象响应与命名模式“*.do”相一致的URL。(4)元素指定标记库的位置。2)struts-config.xmlStruts-config.xml描述了controller所使用的把请求对应到具体的处理的法则,同时他还描述了客户的数据与ActionForm组件的对应映射关系。Actionservlet接收来自“web-inf/web.xml”所描述的用户请求(如login.do)之后,通常要调用一系列操作和JSP对用户的请求进行分发,而这些都是要根据配置文件“/wEB-INF/struts-config.xml”中所描述的内容的。系统的整个逻辑流程都包含在struts-config.xml这个分层的文本文件中,以查看和理解它,不必费力地阅读Java代码来理解应用程序的流程,也不必再更改流程以后重新编译代码。 (1)描述个具体的FormBean,通过它和Jsp页面中的自定标记的结合使用可以实现ActionForm和View之间的数据映射。FormBean其实是一个JavaBean犷可以自动存储页面表单中各个域的值,并在适当的时候回填表单域。(2)元素用于描述用户请求与具体操作之间的一对一映射关系。子元素属性input和path属性唯一的标一记了客户端一个请求name属性描述封装客户端的数据的ActionForm子类对象,Type属性描述处理这个请求的Action子类对象。元素的子元素指定方法调用结果和后续调用之间的映射关系。3.3.6Struts的工作流程从图3-3可以看出,StrutS框架的处理流程清楚的体现了MVC系统的特点。Actionservlet处理客户请求,并把请求映射到Action处理器对象进行处理。Action处理对象访问ActionForm中的数据,处理和响应客户请求,它还调用后台的业务对象(封装了具体业务逻辑的Bean组件)。Action处理器对象根据处理结果通知Controller,Controlle:进行下一步的处理。图3-4给出了从客户端发出请求到获得响应的过程。图3一4Struts的基本流程3.3.7Struts框架的特点StrutS框架实现了MVC设计模式,通过设置StrutS控制器部分的配置文档,业务流程可以不再硬编码到源程序中去,这使得维护性和灵活性大大加强。Struts的核心是控制器部分,虽然StrutS在视图方面没有任何要求,但它提供了很多的标签类供开发人员使用。然而,Strut:并没有为设计和创建模型组件提供现成的框架,对模型部分的支持还有所欠缺。不过,Struts允许使用其他模型框架来处理应用的业务逻辑,如EJB和 JD,以及常用的JavaBean和ORM(Object一Relation一Mapping)。通常情况下,StrutS框架为开发人员提供明显的优势: (1)StrutS应用框架继承了MVC设计模式的所有特性和优点,并提供了很多用于实现MVC基本特征的对象,因此在一定程度上简化了基于MVC的应用程序的开发;(2)struts同化meat,孔rbine等诸多Apaehe项目一样,是开源软件,这使得开发人员有机会更深入了解该架构的内部实现机制;(3)配置文件struts一config.xml集中了所有页面的导航定义,对于大型的Web项目,通过此配置文件即可迅速把握整个系统的脉络;(4)在配置文件struts一config.xml中,开发人员将JSP页面的逻辑名映射到其物理路径,使得物理路径与程序路径无关,整个系统流程使用逻辑名在struts一config.xml中完成。因此,当系统的逻辑发生改变时,开发人员只需在Struts一oo而g.xml中做出相应的调整和修改即可,而不涉及其他; (5)Struts提供了丰富的自定义标记库,简化了用户界面的生成; (6)Struts有助于把开发角色分离为用户界面设计人员和业务逻辑开发人(7)Struts将业务逻辑与显示逻辑明确分离,这样极大的简化了应用调试并促进代码重用;(8)StrutS把字符串资源合并到单个文件中,而不必在项目的全部JSP页中出现,这样就极大地简化了JSP应用程序的本地化任务。与所有的应用框架一样,StrutS也不是十全十美的,同样存在一些不足之处,简单归纳为如下几点:(1)strut:开发仍处于发展中,整个框架不可能尽善尽美;(2)StrutS框架仍在快速变化,新旧版本变化较大,开发人员可能需要经常下载新版本;(3)StrutS是一种基于Web的PC解决方案,适用范围有限,必须采用HTML、JSP文件和Servlet来实现; (4)Taslib是struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至会打乱以往形成的网页编写习惯;(5)Struts将MVC的Controller:一分为三,在使得系统结构更加清晰的同时,也增加了系统的复杂度;(6)作为视图部分的JSP对XML的支持不佳。它不能保证生成的结果文件是100%“格式良好”(Well一Formed)的XML.。在这个支持XML的Iniemet访问设备不断涌现的时代,越来越多的设备都可能接入到互联网上,Web应用将会面临多种客户端显示的挑战,而现在的框架不具备这方面的扩展性。3.4实现MVC模式的Strust技术开发流程在利用Struts技术实现MVC模式的Web开发时,可以采用以下流程:l)收集和定义应用需求。2)基于数据采集和显示的原则定义和开发“用户界面”需求。3)为每一个“显示界面”定义访问路径。4)定义ActionMapping以建立到业务逻辑之间的联系。5)开发满足“显示界面”需求的所有支持对象。6)基于每一个“显示界面”需求提供的数据属性来创建对应的Actionform对象。7)开发被ActionMapping调

温馨提示

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

评论

0/150

提交评论