admin 管理员组

文章数量: 887436


2024年2月7日发(作者:储气罐压力容器类别)

中文摘要摘要随着计算机软件技术和因特网的迅速发展,信息对于我军已变的越来越重要。在当今的知识时代,人才成为决定部队建设成败的主要元素之一。人事管理是部队建设中很重要的一个管理事项。人事信息是部队人员管理的基本信息,它包括人事基本档案、教育培训、个人经历、个人业绩及成果、工作调动、职称、干部任免等多项个人基本信息,这些信息数据量大、关系复杂,如果通过人事管理系统的计算机化管理,将大大提高部队人事部门的办公效率,作出正确的人员配置。本文叙述了基于Java和XML技术的部队人事管理软件的开发过程。首先概括介绍了信息系统体系结构的发展和演变,重点介绍本文采用的多层体系结构和B/S模式及其优缺点;其次介绍了本文使用的Java技术,包括JSP、Servlet、JavaBean、JDBC等,介绍了这些技术的特点以及用XML技术存取数据的方法。论文从系统需求分析、数据库设计、三层体系结构的各个层次的设计与实现几个方面来叙述人事管理软件的开发过程,重点叙述了软件开发过程中几个关键部分的设计和实现。这几个部分包括:主界面的设计、登陆模块、录入数据、分页显示、修改删除、数据库连接、数据库连接池设计,以及用XML从数据库中存取数据的方法,文章最后讨论了系统安全性和JSP中文问题的处理方法。该人事管理软件的开发采用多层体系结构,论文详细叙述了多层体系结构的客户层、业务逻辑层和数据层的实现过程。客户层界面采用JSP和Javascript实现,业务层使用JSP、Servlet技术,数据库连接采用JDBC、JavaBean技术来实现,系统的功能在业务逻辑层实现。该软件进行了登陆安全性设计,实现了对人事基本信息进行录入、修改、查询和删除的功能。本文在应用Java相关技术和XML,采用多层体系结构,从系统需求分析到具体功能设计,以及系统关键部分的具体实现思路和流程框图,阐述了一个人事管理软件的设计和开发过程。针对我国当前软件开发行业的最新发展,在攻读研究生期间,作者对国内外各种软件管理系统进行了深入的调研和分析之后,结合作者所在单位的实际情况,采用先进的网络设计技术,初步设计并实施了部队人事管理系统的开发和实践。在部队人事管理过程中提高了办事效率和准确性,收到了比较满意的应用效果,也为系统的进一步开发和完善积累了经验。关键词:信息系统,JAVA,多层体系结构,人事管理系统I

英文摘要ABSTRACTWiththecomputersoftwaretechnologyandrapiddevelopmentofInternet,nelinformationisverybasicforarmy,itincludesPersonnelbasicarchive,educationandtraining,individualexperience,individualachievementsandoutcome,workredeployment,thetitleofatechnicalpost,aremanagedbyMilitaryPersonnelManagementSystemofcomputerizedmanagement,workefficiencyofarmywillbeimprerdescribesthedevelopmentprocesythepaperintroducesthedevelopmentandchangeofarchitectureofInformationSystem,analyzesadvantagesofmulti-layerarchitectureandfeatureoftheB/lythepaperintroducessomeJavarelativetechnologies,includingJSP,Serviet,JavaBean,JDBCetc,andexplainsythepaperdescribesthedevelopmentprocessofMilitaryPersonnelManagementSystemfromsystemrequirementanalysis,deremphasizesdesignandrealizationofMilitaryPersonnelManagementSoftware’sseveralkeytechnologies,includingthedesignofmaininterface,loginmodule,insertmodule,paginationdisplaymodule,alteranddeletemodule,databaseconnection,databaseconnectionpoolmodule,meansofXMLaccesstodatabase,andatlastthepaperdiscussesthesystem’temadoptsmulti-layerarchitecture,designingclientlayer,entlayerisdesignedwithJSPandJavaScript;businesslogiclayerwithJSPandServlettechnology;datalayerwithJDBCandJavaBean,temdesignsloginsecurityandinsert,alter,erusesJava,XMLtechnologyandmulti-layerarchitecturetorealizeMilitaryPersonnelManagementSystem,andexplainsthesystem’sdevelopmentIII

重庆大学硕士学位论文processfromthesystemrequirementanalysis,functiondesign,robeintothemodernsoftwaretechnologies,temhasgreatlyimprovedtheaccuracyandefficiencyofarmy’ds:InformationSystem,JAVA,multi-layerarchitecture,PersonnelManagementSystemIV

1绪论1绪论1.1课题背景随着我军机械化和信息化建设的发展,武器装备的技术含量增加,以及对未来部队遂行作战和其他任务的需要,部队编制体制不断调整,各兵种专业分类越来越细,人员构成越来越复杂,对人事管理要求越来越高。尤为重要的是,近几年由于Internet/Intranet技术的快速发展,部队基本都建立了自己的局域网,并且利用上一级网络接收、发布各单位和部门的信息,进行网上办公。在这种环境下,通过计算机网络把部队的各个部门及分支机构连接起来,就成为了部队提高人事管理水平,使部队正规化建设上档次、提效益,适应部队现代化建设的重要举措。特别是采用WEB技术,通过Internet/Intranet可以实现部队信息的快速收集、发布、存储、处理和交流。[1][21]在当今的知识时代,人才成为决定部队建设成败的主要元素之一。人事管理工作也成为了部队管理工作的一个重要组成部分。为适应部队建设发展的需要,必须寻找先进的科学的人事管理方法,建立基于计算机网络的人事信息处理系统。通过这样的系统,不仅要使人们从原始复杂的人工管理中解脱出来,更要能够提高工作效率和管理水平,推动部队正规化、现代化建设,完成机械化和信息化建设的双重任务,努力实现我军跨越式发展。基于WEB技术的部队人事管理系统项目是为了适应新时期我军建设需要和持续性发展,同时达到促进部队现代化、正规化和信息化建设的目的。通过引入先进的计算机网络技术,实现网络化管理,替代原有的单机管理和手工管理,从而实现部队人事管理的网络化和信息化。人事管理工作是我军基本的、综合性的工作,它不是中心,却影响着中心工作,涉及到部队司令机关作训、军务,政治机关组织、干部以及后勤机关财务、军需等部门的各个方面。人是部队战斗力的决定性因素,做好部队人事管理工作是提高部队战斗力重要的有效途径,是完成部队各项任务的基本前提条件之一。因此,如何能更有效的实施部队人事管理,建立正规的人事管理制度,使指挥员及时、完整地掌握部队人员基本情况,提供决策依据,保持部队旺盛和持续的战斗力,使其始终处于良好的战备状态,是我军急待解决的一个迫切问题。因此,研究并设计基于WEB技术的人事管理系统具有它重要的现实意义。1

重庆大学硕士学位论文1.2课题学术和实用意义基于WEB技术的部队人事管理系统对部队的管理和用人决策具有重大的意义,该系统将替代传统的单机管理工作。在人事管理中引入网络技术,充分地运用网络资源,可以将涉及到人事管理的各部门有机地结合起来,形成整体合力;也可将上下级有机联系起来,做到上传下达,下情及时上报。各单位、各部门可根据自身的编制体制、人员结构及任务要求,输入相关数据,系统将永久保存数据和自动按照权限上传下达,避免了以往上报时专人专车接送的麻烦,同时也大大降低了泄密的可能性;也可以与考勤机相接,对人员工作情况进行基本考评;也可以根据人员调动、职务变更、请销假、奖惩等情况自动生成调动表、职务升迁表(报告)、请假条、奖惩表等;还可以根据各部门需要授权进行有关情况查询,等等。一方面可以更有效地为指挥员的工作决策提供相应的人员配备依据,另一方面也可以使人事管理工作人员从繁重的手工作业中解放出来,再一方面也使部队的人事管理工作杜绝了随意性、盲目性,从而真正实现部队人事管理的科学化、标准化、网络化、自动化,使其达到安全、稳定的要求。以前,客户/服务器应用是很常见的。但是这种模式的缺点是客户端维护工作比较繁杂,客户端负责数据访问、应用业务逻辑、将结果转换为一个格式以便显示,为用户显示内部的接口,以及接受用户的输入。客户/服务器的体系难于维护、升级和扩展。表现逻辑的重新使用也很难。在Web技术里,最重要的就是体系扩展比较容易。在这种结构下,用户完全通过浏览器实现用户界面,主要的事务逻辑在服务器段实现,形成三层结构。同时这种模式具有非常好的灵活性,任何时间,任何地点,任何系统,只要可以使用浏览器上网,就可以使用系统,无须安装客户端软件,节约了大量的人力物力。[22][23]因此,研究基于WEB技术的部队人事管理系统具有较强的学术和实用意义。1.3国内外现状人事管理是部队建设中很重要的一个管理事项。目前,世界各国的军方都研制了符合本国军队的人事管理系统。美军1994年宣布成立“数字化特别工作组”,从而开始了陆军的信息化建设历程。2001年,美国国防部发表的《四年防务审查报告》中第五部分“创建21世纪的美国军队”里提出,“将有选择地调整传统部队的结构”,达到加强横向联合、共享信息和增强作战效果的目的,人事管理系统即是其一项重要内容,它将从根本上打破以往军队的编制体制和指挥体系,使其2

1绪论更符合现代和未来信息化战争的需要。美方预计,在2030年在信息化技术系统和军队的组织结构方面完成信息化军队的建构,即完成它的军队转型。其他国家军队也在积极加强其信息化建设,构建信息化的人事管理系统。我军目前已完成了机械化军队的初、中级阶段建设,但尚未完成其高级阶段,也就是说我们的机械化作战平台还没有达到“足够好”的程度,还有较大差距,对于信息化军队问题总体上还处于探索阶段。而在信息化军队的组织结构方面仅处于炒作概念的起步阶段。我军虽已研制了具有我军自己特色的干部、兵员管理系统,但也不能真正实现网络化。部队的人事管理工作,基本上是手工操作或是单机的应用程序,这样对人事的管理者有诸多不便,更不利于决策者及时掌握第一手资料,为其决策提供有力依据。有的虽然是用foxpro、visualfoxpro开发,但由于开发工具本身的限制,对网络功能的支持程度不是很强,为以后软件升级带来了麻烦。因此有必要开发一个基于网络的人事管理系统,能在网络环境下实现数据的录入、插入、删除、查询、统计、更新、打印等功能,实现真正意义上的资源共享。同时,为了信息的保密与安全,系统还要提供一定的安全机制。随着全球网络的高速发展,基于网络作为平台进行传输的单元越来越多,不论是军方还是民用都更多的利用了网络。但由于军队是一个特殊国家机构,部队编制体制又是军队一个特殊的事物,它关系到一个部队的安危和生死存亡,因此它如何在网络中运行,就涉及到一个必须关注的问题─保密问题。因此,基于这个特殊性,世界各国的军方很少使用网络版的人事管理系统,即便是使用也是小范围的使用,不是真正意义上的网络化。目前国内外的人事管理系统的技术平台都逐渐转向网络,因为网络具有单机所不具有的强大功能,对于开发方式也由传统的客户机/服务器体系统结构向三层的浏览器/中间件/服务器体系发展,目前最新的技术是采用web服务(webservice)技术,在不同的技术平台上都开始出现新的技术。例如在java环境和微软的.NET平台上都可以实现web服务技术。本论文的研究就力图实现web服务技术在军队兵员管理系统中的应用。随着我军科技化和信息化的逐步深入,基于业务特点不同和国防安全的要求,就需要部队自主研究和设计出实用性强、安全性高、符合本部队特色的网络版人事管理系统。1.4课题研究目的基于WEB技术的部队人事管理系统是在现有系统的基础上,加入了网络技3

重庆大学硕士学位论文术,使系统能真正实现网络化,从而为我军现代化、科学化和信息化的建设服务,本课题的研究主要基于以下目的:1、根据实际工作需要,设计一套功能完备、安全性高、灵活性好、实用性强的基于WEB技术的部队人事管理系统,代替传统的单机管理或人工管理;2、加深对所学知识的掌握和理解,熟悉java语言的开发使用,使用jsp等技术快速构建应用系统,提高系统开发和利用的有效率,增强系统的安全性;3、增强软件工程应用意识,学会使用软件开发工具和CASE工具,并将其应用于工程系统的开发和设计,为今后的工作和学习打下一个坚实的基础。1.5课题研究内容1、基于WEB技术的部队人事管理系统的总体构成和模块划分,确定合适的系统功能模块并加以实现。在对整个系统进行设计的时候,要考虑系统的功能模块划分,也要考虑将整个系统的功能按照浏览器/服务器的体系结构进行部署。2、在系统的开发全过程中实践软件工程的思想和方法,在开发过程中使用了软件工程的一些成熟技术,如使用UML中的用例图来描述系统功能。3、使用JAVA技术构建网络应用系统。JAVA技术是目前业界进行软件开发的两大主流技术之一。论文研究了J2EE体系结构中的几项关键技术,并将其运用到了系统的开发之中。4、实现网络系统的安全机制。本系统进行了3个层次的安全性设计,分别在登录服务器、登录数据库系统和进入系统三个部分进行用户身份认证,以确保系统的安全性。人事管理系统由以下几个模块构成:1、基本档案管理模块;2、数据统计与查询模块;3、考勤统计管理模块;4、信息导出模块。所有功能都要构架在三层体系结构的系统上,后台部分功能通过web来完成。1.6本章小结本章阐述了课题的研究背景、学术及实际意义。阐述了课题的研究内容,论证了课题采取的技术路线。并作了可行性论证。4

2信息系统体系结构的发展与演变2信息系统体系结构的发展与演变体系结构是定义一个系统的结构及系统成员间相互关系的规则。信息技术的发展推动了平台体系结构的更新,从单机时代的主机/终端模式、共享数据的文件服务器模式、客户机/服务器时代的C/S模式、以及电子商务时代的B/S网络计算机模式,到三层和多层模式以及目前的J2EE体系结构。2.1传统体系结构2.1.1主机/终端体系结构在主机/终端结构中,系统由智能主机和哑终端组成,主机承担全部的计算功能,终端仅作为输入/输出设备不承担任何数据处理工作。如图2.l所示。这种方式,所有处理工作都集中在主机上进行,终端用户分时共享主机资源,主机负担很重。图2.1主机/终端计算模式Figure2.1Mainframe/Terminalmode80年代以后,主机/终端结构固有的缺陷己无法在信息急剧增长的情况下提供一个解决方案,微处理器的高速发展也使得微机不再是简单的个人系统,而是基于文件服务器的LAN,于是出现了网络/文件服务器结构。2.1.2网络/文件服务器体系结构该体系结构由文件服务器和微机工作站组成,文件服务器是文件共享的中枢,它只提供数据存储和管理功能,不参加数据的处理操作,微机工作站完成对数据的处理操作。这种模式的体系结构由于服务器仅承担数据和外设的共享,使服务器的功能没有充分发挥,而且由于文件在整个网络上传输,造成了网络负担的加5

重庆大学硕士学位论文重。2.2分布式体系结构2.2.1两层客户机/服务器体系结构90年代,分布式系统的客户机/服务器(client/Server,简写为C/S)体系结构得到了很大的发展,它集中了大型主机系统和文件服务器系统的优点,客户机/服务器体系结构最初设计成两层,如图2.2所示。产品系统e客户系统数据库服务器会计系统图2.2两层客户机/服务器结构Figure2.2Client/Servermode两层结构的客户机/服务器(C/S),前端是客户机,为每个用户所专有,与用户直接进行信息交互,完成管理用户接口,数据处理和报告请求的功能。后端是服务器,由多个用户共享,功能是管理外设,控制对共享数据库的操作,接受并应答客户机的请求。这种体系结构将一个应用系统分成两大部分,有多台计算机分别执行,使它们有机地结合在一起,协同完成整个系统的应用。两层C/S结构在90年代起到主流系统的作用,是因为它有一些很好的特性:通过在客户和服务之间划分各自所包含的层次,提高了应用的计算效率;缓解主机/终端结构中主机繁重的负担,在主机/终端模式和文件服务器模式中找到了平衡;可以在RAD(RapidApplicationDevelopment)方式下进行开发,能高效地开发出小规模应用。但随着网络规模的日益扩大和应用程序的复杂程度不断提高,C/S结构也逐渐暴露出它的缺点,主要表现在如下几个方面:6

2信息系统体系结构的发展与演变客户机臃肿:在极端情况下包含数据捕捉,业务规则,应用接口的“胖客户机”。随着应用程序复杂性的增加,需要提供给用户的机器性能要不断改善,如更快的处理器,更大的硬盘,更多的内存。维护越来越困难:分发到成千上万机器上的应用程序(包括业务规则)难以管理。可扩展性差:它是单一服务器且以局域网为中心的,所以难以扩展至大型企业网或Internet。可移植性差:由于不能封闭商业规则,也不能对这些规则进行集中配置,所以常用程序的复用也不方便。2.2.2多层体系结构为了解决两层结构存在的问题,人们又提出了多层体系结构。在多层体系结构中,最有代表性的是三层结构。三层结构是在原来的两层结构中插入一个中间层,对应用功能的三层进行明确分割,将代码划分为不同的逻辑构件,这些逻辑构件分为三个逻辑层:表示层,业务层和数据层。三层的属性如下:表示层:提供信息和功能,浏览定位,保证用户界面的一致性和完整性。业务层:共享的业务政策,从数据中生成业务信息,保证业务的一致性。数据层:数据的定义,永久数据的存储和检索,保证数据的一致性。表示层业务层数据层Windows及其他GUIWeb服务文件JSPServlet数据库Web浏览器其他资源图2.3三层体系结构chitechturestructure7

重庆大学硕士学位论文三层应用体系结构计算模式如图2.3所示。三层结构与两层结构相比,具有下列特点:优越的系统性能:在两层结构中数据计算和数据处理集中在客户端,这种系统的网络负荷大,直接影响业务处理的速度。在三层结构中,数据计算和处理集中在中间层部件,因而三层结构系统能够实现分布计算功能。即可以根据需要把各个部件分别或重复的分布在不同的计算机上,使整个系统的工作量平衡分配到网络中。具有灵活的硬件系统构成:对于各个层可以选择与其处理负荷和处理特性相适应的硬件。例如,业务层和数据层可以放在一个服务器上,如果业务扩大了,可将业务层和数据层分别放在两个服务器上,或者相应的增加服务器的数目。提高了系统的可维护性。在三层结构中,应用的各层可以并行开发,各层可以选择各自最适合的开发语言。采用构件的开发方法,也使系统的维护和升级更加容易。对系统的修改或升级可简化到只对某个特定的部件的更换。可以进行严密的安全管理。越是关键的应用,用户的识别和存取权限设定越重要。在三层结构中,对业务层和数据层的存取权限可以按层进行设定。这样,即使外部的入侵者突破了客户端的安全防线,若在应用服务层和数据层有另外的安全的机构,系统也可以阻止入侵者进入其他部分。如将业务逻辑进一步细分,分成Web服务器和应用服务器,就成为四层体系结构,如图2.4所示。客户端GUIWeb浏览器Web服务器HTTP服务应用服务器应用逻辑数据库服务器数据库或其他资源图2.4四层体系结构rchitechturestructure2.2.3浏览器/服务器体系结构浏览器/服务器结构,其本质上是一种客户机/服务器(C/S)结构,它是当显示逻辑由浏览器充当时的客户机/服务器(C/S)结构,它是由传统的两层C/S结8

2信息系统体系结构的发展与演变构发展而来的三层C/S结构在Web上的特例。该结构将应用逻辑全部置于服务器上,客户端利用Web浏览器下载应用,在浏览器上执行。B/S结构主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本。B/S模式开发的系统维护工作集中在服务器上,客户端不用维护,操作风格比较一致,只要有浏览器的合法用户都可以十分容易地使用。B/S结构与C/S结构相比,其有以下优点:开放的标准:C/S结构采用的通信协议是专用的,B/S结构采用的通信协议是通用的,如HTTP,HTML,保证了其应用的通用性和跨平台性。较低的开发和维护成本:C/S结构的应用必须开发出专用的客户端软件,维护必须在客户机上实施,需要较高的维护成本。B/S结构的应用只需在客户端装有通用的浏览器即可,维护和升级都在服务器端进行,客户端不需做改变,因而大大降低了开发和维护的费用。应用简单,界面友好:C/S用户的界面是由客户端软件决定的,使用的方法和界面各不相同。B/S用户的界面是浏览器,易于使用,界面友好。客户端简单:C/S结构客户端是一个具有显示与处理数据的功能的“胖”客户机,B/S结构客户端是仅提供显示功能的浏览器,使客户端使用简单。系统灵活:C/S结构三个模块相互关联,升级困难。B/S结构三个模块相对独立,系统改进灵活。2.3J2EE结构体系J2EE是一种利用Java2平台来简化与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。[6]计算平台支持Java语言,使得基于J2EE标准开发的应用可跨平台地移植;由于Java语言的安全、严格,使开发者可编写出非常可靠的代码;J2EE提供了企业计算中需要的所有服务,且更加易用;J2EE中多数标准定义了接口,如JNDI、JDBC、JavaMail等,可与许多厂商的产品配合,容易得到广泛的支持;J2EE树立了一个广泛而通用的标准,大大简化了应用开发和移植过程。J2EE降低了开发中间层服务的成本和复杂程度,因而使得服务可以被快速的开展,并能够更轻松的面对竞争中的压力。[1]J2EE是一个多层结构,如图2.5所示,9

重庆大学硕士学位论文客户层AppletContainerAppletApplicationClientContainerApplicationClientJMSWeb层业务层EIS层WebContainerJSPServletRMI-IIOPEJBContainerEJBCORBAObjectsLegacySystemsRMI-IIOPJDBCJNDIJDBCJNDIJAFJTAJMSJTAJAFRMI-IIOPDatabaseJDBCJNDI不同类型的用户,包括HTML用户、JAVAApplets和Java应用等。web层——Web层产生表示逻辑,并接受来自表示客户端的用户反馈,这些表示客户端通常是HTML客户端、JavaApplets和其他的Web客户端。在所接收的客户端请求的基础上,表示层对用户产生相应的回应。J2EE平台中,是由web容器内的servlet和JSP来实现这一层的。[16][17]业务层——这一层处理应用的核心业务逻辑。业务层为低层业务服务组件提供必要的接口。业务组件通常被实现为EJB容器内的EJB组件。其中EJB容器提供组件生命周期、管理持久性、事务和资源分配等。EIS层——企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统,和其它的遗留信息系统。例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。[20]2.4本章小结本章主要介绍了信息系统的体系结构发展与演变历史,详细分析了分布式的体系结构。并对J2EE体系结构进行了简单的介绍。10JMS图2.5J2EE结构体系Figure2.5J2EEarchitechtureJ2EE构架包括以下层:用户层——用来与用户交互,把来自系统的信息显示给用户。J2EE平台支持

3关键技术介绍3关键技术介绍3.1服务器端动态开发技术简介Internet作为世界范围内重要的通讯网络手段,为人们提供了发布共享信息的功能,与此同时,作为信息发布的开发技术也不断出现。在客户端方面,一些能为用户提供更高级功能的程序逻辑,如JavaScript、VBScript或者嵌入式的软件组件(Plug-ins),如JavaApplet、JavaBean、ActiveXControls等,加入到浏览器中,为客户端的实时动态交互提供了方便。在服务器端,先后出现了各种脚本运行环境,如CGI、ISAPI、ASP、PHP、JSP等,这些技术各有优缺点,但都可为用户提供信息发布的交互性和实时性。这些技术可以将一个HTTP请求发送到一个可执行应用程序中,而不是一个静态的HTML文件,实现了信息的动态发布和实时交互。CGI(CommonGatewayInterface),即通用网关接口,是外部应用程序和Web服务器之间的标准编程接口,可以动态扩展Web页的内容。[8]它允许Web服务器运行外部应用程序,通过外部程序来访问数据库等外部资源.以产生动态的HTML文档并返回浏览器.几乎所有的服务器软件都支持CGI,开发者可以使用任一种web服务器内置语言编写CGI语句,其中包括流行的Perl语言、C、C++、VB、Delphi等。CGI的缺点是:性能和可伸缩性差。CGI对每个客户的请求都要创建一个进程来响应,以提供响应的服务,这极大的消耗了服务器的资源,使得CGI程序不能服务大量用户。其次,CGI不提供永久性上下文信息,用户查询的结果不能有上百行。安全问题,CGI和Web服务是一种松祸合的结合,它们的结合存在严重的安全漏洞。最后,CGI功能有限,开发困难,这极大地限制了它的应用。ISAPI是Microsoft提供的一套面向Internet服务的API接口,用它编制的程序以动态链接库(DLL)的形式存在,可实现CGI程序所能提供的全部功能。ISAPI与CGI最大的区别在于:CGI的应用程序一般都是可执行程序,而在ISAPI下建立的应用程序都是以动态链接库的形式存在的,,被用户激活的DLL和WWW服务处于同一进程中,在处理完某个用户的请求后不会马上消失,而是和WWW服务器一起继续驻留在内存中,等待处理其他用户的HTTP请求,直到过了指定时间后一直没有用户输入为止。因此ISAPI的运行效率要显著高于CGI程序。其缺点是:兼容性问题,这些API都专用特定的WWW服务器,用一种API编写的程序移植到另一种服务器上将很困难。可靠性问题,用这些专用API编写的程序紧密耦合到Web服务器中,但这些程序的错误很容易导致Web服务器的崩溃。要考虑线程的同步问题,而且开发较困难。11

重庆大学硕士学位论文由微软公司推出的ASP(ActiveServerPages),是一个Web服务器端的开发环境,利用它可以产生和运行动态的,交互的,高性能的Web服务应用程序。ASP采用脚本语言VBScript或JavaScript作为自己的开发语言;无须编译,容易编写,可在服务器端直接执行:与浏览器无关,客户端只需要能执行HTTP的浏览器即可。ASP虽然使得在Web页面上创建动态内容更加容易,但也只能工作在微软的IIS和PWS服务器上。Unix下可通过Chilisoft的插件来支持ASP,或者通过ASP与COM的组合来扩充ASP功能,但Unix下的COM实现起来很困难。PHP是一种跨平台的服务端的嵌入式脚本语言,它大量借用C,Java和Perl语言的语法.并偶合PHP自身的特性,使web开发者能够快速地写出动态生成页面,并支持目前绝大多数数据库。在与数据库的连接中,PHP与MySQL是和好的组合,用户可以编写外围函数间接存取数据库,当用户更换数据库时,可以轻松地更改编码以适应新的数据库。PHP可在Windows,Unix,Linux的web服务器上正常运行,还支持IIS,Apache等通用Web服务器。但PHP对不同的数据库有不同的接口,这是PHP的缺点。3.2JAVA服务器开发技术基于Web的应用系统是指任何使用Web技术作为系统主要实现技术之一的应用系统,其中Web技术包括Web浏览器,Web服务器,Web应用系统一般都还要同其他的服务器系统连接,如数据库系统。典型的Web应用系统的组成结构如3.1所示。Web浏览器Web服务器数据库资源图3.1基于Web应用系统Figure3.1ApplicationsystembasedonWebJava技术作为一种跨平台和面向对象功能,在开发Web应用程序具有明显的优势。对于三层的Web应用系统,Java平台分别提供了不同的开发技术支持。在12

3关键技术介绍浏览器端,支持标准的基于HTML/HTTP协议的浏览器作为前端,通过XML还可以支持更丰富的浏览器前端系统,如WAP设备。对于浏览器的编程开发,可以使用JavaScript脚本语言,对于更复杂的客户端程序还可使用JavaApplet实现。在服务器端,Java使用Servlet、JSP、JavaBean,以及XML技术提供充分的动态Web应用开发功能。在同后台数据库系统的连接中可以使用JDBC技术来连接。整个技术体制建立在J2SE(Java2StandardEdition,Java2标准环境)。[4][5][7]在使用Java技术开发Web应用程序的过程中,可以充分使用J2SE平台提供的技术支持,Java服务器应用程序设计技术框架如图3.2所示。浏览器(HTML,XML,JavaScript,Applet)Web服务器(JSP,Servlet,XML,Taglib)后台系统JavaBeanJDBCJ2SE环境图3.2JAVA服务器应用程序设计技术框架结构Figure3.2Javaserverapplicationprogramdesigntechnologystructure3.2.1JSP技术一、JSP技术简介JSP是基于Java的技术,是支持跨平台及跨web服务器的动态网页。在传统的网页HTML文件中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库,重新定义网页,发送E_MAIL等,这就是建立动态网站所需的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无JavaApplet,基于无Frame。[18]JSP可以访问可重用的组建件,如Servlet,JavaBean和基于Java的web应用程序,还可在Web页面中直接嵌入Java代码。JSP有两种访问格式:(l)请求一个JSP文件JSP文件将访问Bean或其他能生成动态内容并发送到浏览器的组件,如图13

重庆大学硕士学位论文3.3。当Web服务器接收到一个JSP文件请求时,把请求发送至JSP引擎,JSP引擎对JSP文件进行语法分析并生成Java源文件,这种源文件被转换成Servlet然后编译执行。Java源文件编译仅在初次调用Servlet时进行,只要没有更新原JSP文件,以后不须重新编译。JSP文件通过对数据库访问的BEAN的调用来读取数据库中的数据。浏览器JSP文件BEANDatabase图3-3浏览器发送JSP文件请求Figure3-3BrowsersendJspfilesrequests(2)请求一个Servlet客户端直接请求一个Servlet来生成动态内容,并调用JSP文件将内容发送到浏览器。图3.4说明此模型。该访问模型将内容生成部分从内容显示中分离了出来。JSP引擎采用HttpServiceRequest对象和HttpServiceReponse对象的一些方法,通过Servlet将一个对象放入请求对象中,并将该请求的结果传递到另一个页面(通常是一个JSP文件)以供显示。调用的页面从请求对象中检索Bean,并用JSP来生成客户端的HTML。请求ServletJDBC数据库响应JSP文件图3-4直接对Servlet的请求Figure3-4DirectrequesttoServletJSP为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器和浏览器共同工作。当用户浏览器从Web服务器上请求JSP文件时,Web服务器响应该HTTP请求,JSP引擎解释JSP标14

3关键技术介绍识和小脚本,生成所请求的内容,并将结果以HTML或XML页面的形式发送回浏览器,以实现客户端和服务器之间的即时通信。JSP内部的工作模式图3.5所示:JSP文件Servlet代码Java执行码以Servlet形式存在图3.5JSP内部运行模式Figure3.5Internalrunningmode用JSP开发Web的主要方式如下:(1)直接使用JSP最小型的Web站点可以直接使用JSP来构建动态网页。对这种开发模式,一般可以将所有的动态处理部分放置在JSP的Scriptlet中。(2)JSP+JavaBeans中型站点面对的是数据库查询、用户管理和小量的商业业务逻辑。对这种站点,不能将所有的东西全都交给JSP页面来处理。可以用Java+JavaBeans结合,很容易完成数据库连接、用户登录与注销、商业业务逻辑封装的任务。(3)JSP+JavaBeans+Servlet采用这种方式可以将网站的整个逻辑结构放在Servlet中,而将动态页面的输出放在JSP页面中来完成。这样可轻松的处理逻辑关系异常复杂的网站。二、JSP技术的特性JSP技术在几个方面加速了动态Web负面的开发,它的主要特性如下:将内容的生成和结果的显示进行分离,可生成可重用的组件,采用标识简化页面开发,具有“一次编写,各处运行”的优点,程序执行的效率高,强大的数据库支持,JSP的效率和安全性更高,JSP的组件方式更方便,JSP的适应平台更广。三、ASP、PHP和JSP技术的比较1、JSP与ASP的比较JSP与微软的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码,由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML15

重庆大学硕士学位论文页面只依赖web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。JSP与ASP的区别在于:两者来源于不同的技术规范组织,其实现的基础——web服务器平台要求不同。JSP技术基于平台和服务器的互相独立,技术支持来自广泛的专业化的各种工具,有服务器的组件和数据库产品开发商所提供。ASP技术主要依赖于微软的技术支持。[9]具体比较如下所示:表3.1ASP与JSP的详细比较技术任何Web服务器,Apache,Netscape,IIS等微软系列平台,SUNSolaris平台,MacOS,Linux等跨平台访问需第三方ASP的引入产品支持Web系统中不同系列的计算机并保持用户在当前软硬件及人力资源上的投资完全兼容。JSP技术提供灵活、开放的选择,可以使用各种各样的工具自定义扩充标签可将资料与程序逻辑分开建立大型Web应用程序与数据库连接执行模块自定义函数页面直接包含代码扩展名不能可以,使用COM组件可以ODBC或COM组件编程Pcode可以可以.asp可以不能,使用JavaBean技术可以JDBCAPI或JavaBean以Javabytecode存在可以可以.jspTable3.1比较项目Web服务器操作系统平台ASP技术微软的IIS或PWS(PersonalWebServer)微软的Windows系统2、JSP于PHP的比较虽然PHP也可以在windows、Unix、Linux的web服务器上正常运行,还支持IIS、Apache等通用web服务器,用户更换平台时,无需变换PHP代码,可即拿即用。但是JSP在这方面做的更好,Sun公司曾经说过,JSP是Writeonce,16

3关键技术介绍RunAnywhere。如windowsNT、Linux、Unix或NT下IIS通过一个插件,例如JRun或者ServletExec就能支持JSP。著名的Web服务器Apache己经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的运行平台。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关。PHP缺乏规模支持和多层结构支持。对于缺乏多层结构支持的大负荷站点,解决方法只有一个:分布计算。这样数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维陈列。还有PHP提供的数据库接口支持不统一,这使得它不适合运用在电子商务中。ASP和JSP则没有以上缺陷,ASP可以通过MicrosoftWindows的COM/DCOM获得ActiveX规模支持,通过DCOM的TransactionServer获得结构支持;JSP可以通过SunJava的JavaClass和EJB获得规模支持,通过EJB/CORBA以及众多厂商的ApplicationServer获得结构支持。表3.2PHP与JSP的详细比较部分程序员否JSP完全Web开发者,页面作者是Table3.2特性内容、逻辑独立性目标第三方工具提供商的工业支持页面语言第三方组件扩展Perl否Java是3.2.2ServletServlet作为Java技术平台支持Web应用的突破口,解决了CGI和专用API存在的问题,ServletAPI很简单,几乎所有的Web服务器都支持Servlet程序。它通过多线程解决了CGI的性能问题。同时,Servlet是用Java编写的,继承了Java的跨平台特性,以及兼容性和安全性,因此Servlet被认为是CGI的替代语言。Servlet是Java2.0中新增的功能,它与Applet相对应,Applet运行在客户端的浏览器上,而Servlet运行在服务器端。Servlet是服务器小程序,运行于服务器端,与运行于客户端的小应用程序Applet相对应。它们都是由Java编写的小型程序,都没有main方法,只有一些特定的方法用于启动,执行和退出,不同的是Servlet不提供用户界面。17

重庆大学硕士学位论文Servlet运行机理:先看几种描述Servlet的方法:Servlet是一个由Servlet容器管理的可以产生动态内容的Web构件。Servlet是一个小的,与平台无关的Java类,它实现了Java的Servlet接口,被编译成与平台无关的字节码,然后加载到Servlet容器中运行,而且整个生命周期都由Servlet容器管理。Servlet同客户端的交互遵循“请求/响应”模型,这个模型基于超文本传输协议(HTTP)的基本机理,所以Servlet很适合开发Web应用。这些请求/响应过程也由servlet容器管理。Servlet容器是运行在Java虚拟机上的管理器,它同Web服务器或应用服务器相结合提供网络服务,在Web应用中,Servlet可用于接收来自Web浏览器的HTTP请求,动态的生成响应,然后发送包含处理结果的HTTP响应到浏览器。Servlet的工作流程为:(1)客户端Web浏览器通过HTTP协议提出请求;(2)Web服务器接受该客户端请求并将其发送给Servlet,如果需要处理的Servlet尚未被加载,Web服务器加载这个Servlet给Java虚拟机并执行它;(3)Servlet接收该HTTP请求并进行相应处理;(4)Servlet向Web服务器返回应答;(5)Web服务器把从Servlet收到的应答发送给客户端浏览器。Servlet程序是在Servlet容器管理下运行,Servlet容器按照一个严格的生命周期管理Servlet,这个生命周期定义了Servlet如何被加载、实例化、初始化、处理客户端请求、最后结束服务,这个周期称为Servlet生命周期。生命周期的每一步对应了Servlet接口的不同方法,Servlet程序实现这些方法,Servlet容器则按照生命周期调用这些方法,管理和运行Servlet程序的运行实例。Servlet的优势:(1)Servlet是持久的。Servlet只需Web服务器加载一欢,而且可以在不同的请求之间保持服务。(2)Servlet是快速的。Servlet在响应请求后,能够在后台持续运行,在多线程中处理多个请求。(3)Servlet是平台无关的。Servlet是使用Java编写的,所以是与平台无关的。Servlet能够保持状态。Servlet一旦被服务器加载,就能够保持其状态信息,只要Servlet没有被改变,它就不需要被重新加载。JSP与Servlet的比较:JSP与Servlet是类似的。JSP的运作方式取决与JSP引擎的运作方式,它是编译式运作方式。JSP引擎的任务主要是把工作移交给Servlet引擎。JSP的运作18

3关键技术介绍模式如图3.6所示:JSP程序Servlet代码(.java)Java执行码以Servlet形式存在图3.6JSP运作模式Figure3.6JSPrunningmode除去转译和编译的部分,JSP和Servlet的差异不大。JSP引擎是架构在Servlet引擎之上的,以Servlet的形式存在,利用Servlet引擎将JSP文档转译成Servlet原始码,再调用Java编译器编译成Servlet,所以第一次执行JSP需要较多的时间,以后执行JSP与Servlet以所需的时间相同。SUN公司先推出Servlet,其功能比较强大,体系设计也先进,但在输出HTML语句时还是采用了CGI方式,是一句一句的输出,所以编写和修改HTML非常不方便。一个网络项目一般分成表示层,事务层和数据层。Servlet用来写事务层程序很强大,但对于写表示层就很不方便。JSP主要是为了方便写表示层程序而设计的,它既可以书写表示层,也可以写事务层。一般JSP书写表示层的内容,而把数据计算,数据库连接等事务层的内容放在JavaBean中,JSP通过调用JavaBean,实现两层的结合。Servlet执行效率比JSP高,但JSP编写方便。因此,在需要执行效率高的地方,Servlet仍然有它的优势。3.2.3Java的组件结构——JavaBean简介一、JavaBean概述Java的软件构件称为JavaBean,或简称Bean。按照JavaSoft给出的定义,Bean是能够在构造工具中进行可视化操作的可重用软件。由于Bean是用Java写的,所以Java环境/语言所固有的特性将会在Bean中得到很好的体现,从而可使Bean极少拥有其他语言经常出现的内存泄露问题及指针错用问题,并能够实现不同硬件平台之间的互操作特性(JavaBean通过其内部的Java虚拟机实现对多平台的支持)。Bean是一个可以在Java编程环境中可视化处理的可重用软件组件。一个Bean和一个JavaApplet相似,是一个非常简单的遵守某些协议的Java类。Bean通常含有类和源文件,可以包装成一个JAR格式的文件。开发者可以通过支持Bean的开发工具,直接使用现成的Bean,也可以在开发工具容器中,对组件进行必要的修改和测试,而不用编写和编译程序。在Java模型中,组件可以修改或与其他组件19

重庆大学硕士学位论文组合生成新组件或完整的应用程序。大多数Bean通常是中小型控制程序,但也可以是生成包装整个应用程序的Bean。Bean可以表示为简单的GUI,如按钮,列表等。但也可以生成不可见Bean,用于接收事件和在幕后工作。所以,可把Bean看成是用于接收事件和处理事件以便进行某个操作的组件。一个Bean由3部分组成:属性(Property):Bean属性就是对象的属性,提供了属性读取和设置的接口支持。方法(method):Bean本身就是Java对象,它严格遵守面向对象的类设计逻辑,不让外界访问其任何字段,方法调用是调用Bean的唯一途径。事件(Event):Bean与其他组件交流信息的主要方式是发送和接收事件。这与对象之间通过信息通信类似。二、JavaBean的用途JavaBean在web应用程序中的用途主要有以下方面:l)用来封装公共的功能。2)当某些功能在程序中被多次使用,就可以用JavaBean将它们封装成一个可重用的构件,这既方便了程序设计,也使程序结构更加合理。3)用来实现业务逻辑的实体。4)一个应用系统通常分成表示逻辑和业务逻辑等部分。表示逻辑负责实现应用系统的页面显示部分,这部分常用HTML、XML、JSP、Servlet等技术来实现。业务逻辑负责实现应用程序的业务功能的部分。如取送数据到数据库等,这部分可用成熟的面向对象的技术和语言来实现,更好的方法是是使用JavaBean来实现业务逻辑,因为JavaBean可封装业务实体的功能,达到软件重用的思想,简化了程序设计。5)作为在程序各个部分之间传递数据的实体。6)可在程序的业务逻辑中设置JavaBean的属性,在其他程序中读取Bean的属性而获得数据。这样,JavaBean做为程序各个部分之间传递数据的实体,达到了程序中传递数据的目的。3.2.4访问数据库——JDBC一、JDBC概述数据库系统在现代信息系统中己经成为一个不可或缺的组成部分,现在很难想象一个信息系统不建立在数据库的基础之上。在使用Java技术开发web应用程序时,对数据库的访问技术是最重要的组成技术之一。JDBC是一种用于执行SQL语句的JavaAPI,它由一组用Java编程语言编20

3关键技术介绍写的类和接口组成,它为数据库开发人员提供了一组标准的API。它同Java中的其他API一样,可以用于JSP程序中构造各种数据库对象,编写数据库应用程序,与数据库建立连接,发送SQL语句和处理结果。ODBC是一个Windows平台上的访问数据库的标准API,使用ODBC使得应用程序同具体的数据库接口分离开来,应用程序对不同的数据库具有兼容性和可移植性,无论任何一个数据库,采用ODBC接口都可以按同样的方式进行访问。JDBC提供给Java程序使用的,它将各种数据库的差异对Java程序屏蔽了起来,Java程序可以使用同样的可移植的接口访问数据库,使Java的应用程序屏蔽了数据库领域,同时保持了Java语言的“一次编写,各处运行”的优点。JDBC的优点表现在如下几个方面:充分利用己有的数据资源:使用JDBC、Java程序可以很方便的访问己有的数据库资源,这使得我们可以引入Java技术,而不必丢弃以前的系统和数据,这对Java技术的推广十分重要。开发简便:JOBCAPI比较简单,这使得使用Java开发数据库应用系统十分方便。零配置:JDBC的一个突出优点是JDBC本身无需任何配置,JDBCAPI已经是JavaSDK的标准组成部分,因此安装了JavaSDK,就安装了JDBC。在JDBC中,所有建立数据库连接所需的信息都通过JDBCURL定义,也不需要任何配置。二、JDBC的构成与结构JDBC(JavaDatabaseConnectivity)是Java与许多数据库实现数据库不相关连接的工业标准,为基于SQL数据库访问提供调用级应用编程接口。与当前存在的多种数据库访问技术相比,JDBC具有平台无关性和数据库访问一致性两大优点。JDBC与ODBC结构相似,同属于SQL调用级的接口,其中心在于执行基本的SQL命令并取回结果。JDBC接口分为两个层次,一个是面向程序开发人员的JDBCAPI,另外一个是底层的JDBCDriverAPI,前者是开发人员用来编写前端应用程序的,后者是由数据库厂商开发的。无论访问什么数据库,提供给用户的应用程序接口JDBCAPI都是一样的,用户可以使用标准的SQL查询语句进行查询,而忽视数据库的差别。这些查询语句经驱动程序管理器进行处理,变成适应于某一种数据库的查询语言,然后向下传递给相应的驱动程序,再由驱动程序与数据库管理系统进行通信,实现数据库的读取和操作。(1)JDBCAPI是一系列抽象的接口,它使应用程序员能够进行数据库连接,执行SQL语句,并得到返回结果。重要的JDBCAPI接口有:21

重庆大学硕士学位论文Manager:用来装载驱动程序并且为创建新的数据库连接提供支持;tion:完成对某一指定数据库连接功能;ent:在一个给定的连接中作为SQL执行声明的容器,它包含两个重要的子类型;edStatement:用于执行预编译的SQL声明;leStatement:用于执行数据库中存储的过程的调用;:控制对于给定声明取得结果的途径。(2)JDBCDriverAPI是面向驱动程序开发商的编程接口。JDBC驱动程序根据其实现方式分为4种类型:1)JDBC一ODBC桥(JDBC一ODBCBridge):它是在ODBC基础上实现的驱动程序,通过ODBC驱动程序来实现JDBC对数据库的访问。有些情况下,可能需要在客户机上加载一些ODBC可执行代码和一些数据库客户端代码。2)本地API准Java驱动程序(Native-APIPartlyJavaDriver):它将JDBC调用转换为特定的DBMS的客户端API调用,因此,需要在客户机上加载一些可执行代码。3)网络协议全Java驱动程序(Net-ProtacolAll-JavaDriver):它将JDBC调用转换成独立于DBMS的网络协议,然后由服务器将其转换为特定的DBMS协议。4)本地协议全Java驱动程序(Native-ProtocolAll-JavaDriver):它将JDBC调用直接转换成特定的DBMS使用的网络协议。由于它使得客户机可以直接访问数据库服务器,因此适合于在Internet中使用这种驱动程序。3.3XML3.3.1XML简介XML是由W3C于1998年2月推出的新一代网页标记语言,它是SGML的一个子集。XML继承了SGML的诸多优点,如高度的可扩展性、数据的自我表示、数据的结构化特性以及平台无关性等特点,去掉了它的冗余部分,从而更适合应用到Internet上。XML主要有三个要素:DTD(DataTypeDefinition,文档类型定义)或Schema(模式),XSL(可扩展样式语言)和XLL(可扩展链接语言)。[27]DTD或shema规定了XML文件的逻辑结构,定义了XML文件中的元素、元素的属性以及元素和元素之间的关系,它可以帮助XML分析程序校验XML文件中标记的合法性。XSL是用于规定XML文档样式的语言,它能在客户端使Web浏览器改变文档的表示方法,从而不需要再与服务器进行通信。XLL将进一步扩22

3关键技术介绍展目前Web己有的简单链接。[11][12]XML与HTML的根本区别在于:XML着重于描述数据的内容和结构,HTML用于描述数据的显示方式;XML的标记是可扩展的,被赋予了具体的语义,HTML的标记是固定的,没有其体的语义。XML的基本思想很简单:利用标记表示数据的含义,利用简单的嵌套和引用来实现数据元素之间的关系,可以说XML为基于Web的应用提供了一个描述数据和交换数据的有效手段。HTML是Web显示数据的通用方法。而XML提供了一个直接处理Web数据的通用方法。HTML描述了Web页面的显示格式,而XML描述了Web页面的内容。[28]3.3.2XML的特点可扩展性:即允许用户定义新标记的能力,这是HTML最大的弱点。HTML被定义成一套固定的标记,这些标记是由W3C定义确定的,不允许用户根据在Web上表达一些特殊数据的要求而定义专用的标记或属性,而XML最重要的特点就是可扩展性,即允许用户定义自己的标记以及标记携带相关参数的属性和值。可交互性:用户需要与Web上的应用程序交互,HTML却不能很容易地实现,就是XML需要存在的重要原因。XML支持交互性,用户可以自己制订和设计应用XML的文件格式,而不必再使用固定的HTML格式,能得到比HTML更丰富的语法和更多的功能。结构性:HTML只支持有限数量的数据结构,不支持表达数据库结构或面向对象的分级结构所需要的深层次结构。而XML是一种极端标准化的语言规范,要求文件必须是有效的,至少是结构化的。在结构化信息的组成要素中,DTD是一个很重要的组成部分,它规定了用这种规范来对数据进行解释。[13]3.3.3XML的主要应用根据XML的应用范围划分,主要分为三类:l)应用于客户与不同的数据源进行交互。数据可能来自不同的数据源,它们有各自不同的复杂格式,客户与这些数据库间只通过一种标准语言进行交互,由于XML有自定义性及可扩展性,所以它可以表达各种类型的数据。客户收到数据后可以进行处理,也可以在不同数据库间进行传递,XML解决了数据的统一接口[29]问题。但XML并没有定义数据文件中数据文件中数据出现的具体规范,而是在数据中附加Tag来表达数据的逻辑结构和含义。2)应用于将大量运算负荷分布在客户端。客户可根据自己的需求选择和制作不同的应用程序来处理数据,而服务器只需发出同一个XML文件。客户向服务器发出不同的请求,服务器分别予以不同的响应,这样加重了服务器端的负荷。应用XML的自解释性使客户端在收到数据的同时也理解数据的逻辑结构与含义,减轻了服务器端的负荷。23

重庆大学硕士学位论文3)应用于将同一数据以不同的面貌展现给不同的用户。客户和厂家都可以对它的表现形式进行定制,可使网络用户界面个性化,风格化。应用网络代理对所取得的信息进行编辑、增减,以适应个人用户的需要。[30]3.3.4XML数据的存储与检索对XML标记的数据进行管理,一种方法是用对XML进行存储、检索和操作,即把XML标记的数据收入一个框架中,在一种更容易管理、更系统化、更为人们熟悉的环境中完成搜索、分析、更新和成果输出工作。XML文档分为两大类:以数据为中心和以文档为中心。[24]以数据为中心的文档一般用XML来进行数据传输,例如:销售定单,病历,科研数据等,这些数据的存储结构并不十分重要。一个常用的例子是动态网页技术,例如在线目录,地址薄,都有己知的,规则的结构。以文档为中心的文档一般是一些例如用户手册,静态网页,宣传资料,具有不规则的结构,内容与存储结构的混合也很重要。很显然,以数据为中心的文档适合保存在数据库中。把XML文档存入数据库有两种不同的作法:一种是建立以XML原始的格式存储的数据库称为本地XML数据库。另一种作法是以普通的关系数据库和面向对象数据库为基础,对其进行扩展或使[25]用中间件使其具有XML的存储和检索的能力。目前大多数主流的数据库系统都己进行扩展来支持XML,但这些扩展对XML支持程度也差别较大使用方式也互不相同,和其他系统的协作能力较低,例如MicrosoftSQLServer对XML的支持较为完善,但也只能通过IIS和ADO访问。[14]一些从数据库到XML转换的中间件产品或许功能简单,或许使用方法烦琐,也不宜与其他系统协作。3.4本章小结本章介绍了Java技术在Web上的具体应用。详细介绍了Jsp、Servlet技术的特点、应用过程。JavaBean作为在Java编程环境中可视化处理的可重用软件组件,介绍了其用途。对Java访问数据库的方式——JDBC作了详尽的介绍。XML在描述数据的内容与结构方面有着强大的功能。本章对XML的应用、数据的存储与检索方式方法作了详细阐述。24

4人事管理系统的分析和设计4人事管理系统的分析和设计4.1项目分析背景建设人事管理系统总的目的在于提高军队基础管理水平;充分共享基础信息,为领导提供辅助决策支持,提高决策的科学性;建立数据库,在日常工作中自动生成上报数据,简化上报过程,保证数据的准确性和及时性,提高办事效率。人事管理系统主要目标是完成大量人事信息的录入、修改、查询、统计、报表制作和打印,使用认识管理软件来管理繁多复杂的人事信息,将大大提高人事管理部门的工作效率、减少工作量,使管理趋于规范化、高效化。该软件利用Java的动态网页交互技术,实现人事信息的动态录入及信息的及时发布;实现大量信息的动态维护,进行错误修改和删除;以及动态查询统计相关的信息,能分页显示并显示所有人事档案的全文信息;实现对用户帐号的管理和维护,有权限的用户才能登录和使用系统。[19]4.2系统数据流分析4.2.1系统参与者人事管理系统包括人事档案管理,以及职工的业绩,工资,军衔,教育培训,工作经历,岗位调动等的情况的记录管理,反映军队干部、士兵个人基本情况和工作经历的纪录,以备查询和管理,主要的操作是录入、查询和修改等。使用的主要参与者有:档案管理员:其职责是对干部、兵员档案进行管理,可以增加、修改、删除档案资料;可以对档案的流通进行管理。普通用户:即相关部门的人员进行查询统计使用,可以查看和统计相关人事情况。部队领导:主要是上级领导进行干部、兵员主要档案和工作经历的查询和统计操作,以便审核和查看统计报表。25

重庆大学硕士学位论文普通用户部档案管理人事管理系统查询、统计、报表队领导查询档案管理员图4.1系统数据流程图Figure4.1Systemdataflow4.2.2系统用例以人事系统档案管理为例。用例图如图4.2所示:查询普通用户档案修改档案录入系统管理员档案删除档案查询统计档案统计统计报表领导领导查询图4.2人事系统档案用例图Figure4.2Personnelfilessystemusecasediagram26

4人事管理系统的分析和设计用例1:档案录入系统管理员或档案管理员录入档案时,输入编号等,可以区分姓名相同的人员档案,编号是档案的主键。用例2:档案修改也只有系统管理员或档案管理员操作使用,当职工档案有变动时,需要对档案进行修改,修改时,先显示出原来的档案,在此基础上进行修改。用例3:删除档案如有必要,可以进行删除档案的操作,在删除前,会先显示出要删除的档案来,点击删除后,会再次询问是否确认要删除,确认删除后删除档案;不确认,返回。该操作也只有系统管理员或档案管理员有权进行。用例4:查询操作有权限的用户可以查看职工的档案或某些纪录,输入相关查询条件,将查出符合条件的职工档案或纪录。用例5:统计操作用户可以统计出符合某些条件的人员纪录的人数,并显示出相应的符合条件的档案出来。4.3系统功能划分与描述人事信息是部队重要信息系统,用到它的部门很多,人事信息的面也很广,主要分为人事档案管理、专业技术人员管理、人员业绩及成果管理、人员教育培训管理、工作经历管理、军衔管理、人员调动管理、干部任免管理、工资管理。如图4.3是系统总体功能图。27

重庆大学硕士学位论文人事档案管理录入/修改/删除/查询/统计专业技术人员管理录入/修改/删除/查询/统计业绩及成果管理录入/修改/删除/查询/统计教育培训管理登陆录入/修改/删除/查询/统计工作经历管理录入/修改/删除/查询/统计军衔管理录入/修改/删除/查询/统计人员调动管理录入/修改/删除/查询/统计干部任免管理录入/修改/删除/查询/统计工资管理录入/修改/删除/查询/统计系统管理帮助/口令修改图4.3系统总体结构Figure4.3Systemmodulearchitecture系统结构描述如下:1)人事档案管理,可根据多种组合条件和排序方式来查询所有人员的人事基本档案信息及“个人简历”、“家庭情况”、“学历”、“军衔情况”、“所属部门”和“职务变动”等信息,可对所有信息进行维护,并为成批信息的录入编制了专门的录入界面。2)专业人员档案管理,对专业技术人员的技术职称,聘用情况等做详细记录。3)业绩及成果管理,对人员业绩及获奖情况进行详细记录。4)人员教育培训管理,对人员受教育和职业培训的情况进行记录管理。5)职工工作经历管理,对人员的工作变动情况进行记录。6)职称管理,对人员职称变动情况进行管理。28

4人事管理系统的分析和设计7)人员调动管理,通过填写“人事通知单”来管理人员调动,同时将信息的变动自动写入基本档案信息的相应字段中。8)干部任免管理,通过填写和打印“干部任免审批表”来管理人员职务的变动,同样可自动将信息的变动写入相应的数据库中。9)工资管理,对人员工资变动情况进行记录。10)系统管理,包括给用户帮助、修改口令等功能。根据系统设计目标的要求及管理工作的流程,以其中的人事管理系统为例,分设为以下几个功能模块:登录、数据录入、查询统计、修改删除、口令修改和帮助。(1)登录模块用户登录模块对用户进行身份和权限的验证。身份的验证是指只有具有资格的用户才可以进入系统,用户通过登录口令进入系统,不输入口令或口令错误无法进入系统。用户权限的验证是指不同用户所拥有的功能不同,用户权限分为系统管理员,普通用户两种。系统管理员具有操作全部录入,查询,管理功能的权限,普通用户只有查询浏览的权限。程序在每个页面都进行了身份和权限的验证,以防止非法用户绕过系统登录界面进入系统其他页面,或者不具有管理功能的用户进入管理模块。(2)录入模块合法用户进入系统后,具有管理资格的用户可进行录入资料的模块。用户在录入页面进行资料的录入,系统对输入的每个信息进行有效性检查,对不符合输入要求的信息给出错误提示。对客户端进行数据有效性检查用JavaScript脚本语言来实现,通过浏览器就可实现,不需要服务器的运行。资料提交后,数据录入到数据库中,并给出提交成功的页面;如果不成功,给出相应的提示信息。(3)查询模块通过身份验证的用户都可进行查询功能的操作,它包括查询和统计操作。查询模块能实现模糊和组合查询:模糊查询是指用户输入关键字后,凡包含这个关键字的记录均是符合条件的记录:组合查询是指查询条件可以组合,查询结果是符合所有条件的记录。查询结果以表格的形式显示出来,并进行了分页显示,防止大量的记录信息益处计算机的内存。(4)修改删除只有具有管理功能的用户才能进入该功能模块,管理模块包括修改和剧除功能。修改时,用户先查询出符合条件的记录,该记录显示在浏览器中,管理者经过浏览确认后,可直接在该页面中进行修改,提交后录入到数据库中。删除操作时,系统出现确认页面,用户确认后系统才会在数据库中删除该记录。29

重庆大学硕士学位论文4.4数据库设计4.4.1数据库设计的原则l、一致性原则对信息进行统一、系统的分析与设计,协调好各数据源,做到算法统一、度量一致。保证系统数据的一致性和有效性。2、完整性原则数据库的完整性是指数据的正确性和相容性。要防止合法用户使用数据库时向数据库加入不合语义的数据。对输入到数据库中的数据要有审核和约束机制。3、安全性原则数据库的安全性是指保护数据,防止非法用户使用数据库或合法用户非法使用数据库造成数据泄露、更改或破坏。要有认证和授权机制。4、可伸缩性原则数据库结构的设计应充分考虑发展的需要、移植的需要,具有良好的扩展性、伸缩性和适度冗余。5、规范化数据库的设计应遵循规范化理论,规范化程度过低的关系,可能会存在插入、删除异常、修改复杂、数据冗余等问题,解决的方法就是对关系模式进行分解或合并(规范化),转换成高级范式。规范化一共有六个级别:1NF,2NF,3NF,BCNF,4NF,5NF。[2][3]但也应当注意到,并不是规范化程度越高的关系就越好.当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系统就必须经常地进行联接运算,而联接运算的代价是相当高的。所以,在具体应用时,到底规范化进行到什么程度需要权衡利弊。一般而言,做到第三范式(3NF)就足够了。4.4.2数据库设计数据库应用结构采用三层结构,如图4.4所示。客户端浏览器不直接访问位于服务器上的后台数据库,而是通过位于中间层的Web服务器和支持Web的应用服务器访问数据库。中间层程序可以使用Servlet,JSP,JavaBean来实现,中间层通过JDBC访问数据库。30

4人事管理系统的分析和设计客户端中间层Web服务器和应用服务器数据库服务器浏览器JDBC数据库图4.4数据库应用的三层结构Figure4.43-layerapplicationsystemstructurewithdatabase在B/S三层体系结构下,表示层、功能层、数据层被分为三个相对独立的单元,使客户机无法直接对数据库进行操纵,有效地防止了非法入侵。系统建立以下数据库,数据库结构如图4.5所示:人事管理系统数据库建立起如下数据表:人员基本信息表:renyuanxinxi专业人员基本信息表:zhuanyerenyuandangan人员业绩表:gerenyeji人员成果表:gerenchengguo登录表人事档案表教育培训表工作经历表军衔管理表人员调动表干部任免表工资管理表业绩及成果表专业人员档案表图4.5数据库结构Figure4.5Databasestructure31

重庆大学硕士学位论文教育培训表:renyuanjiaoyupeixun工作经历表:renyuangongzuojingli军衔管理表:post_manager调动管理表:employee_remove干部任免管理表:cadre_appoint工资管理表:pay_manager登录数据表:login系统有11个模块,除最后一个和第一个是相同的表外,每个模块建一个数据表,例如:登录数据表如表4.1所示:表4.1Table4.1字段名usernamepasswordauthority数据类型nvarcharnvarcharnvarchar登录数据表Logindatatable是否为空√√√说明用户名口令权限数据长度20204username:用户登录的用户名,nvarchar类型,允许空;password:用户登录密码,nvarchar类型,允许空;authority:用户权限,权限值分0和1两种,由系统根据用户名确定。具有0权限的用户,拥有全部的操作功能;拥有1权限的用户,只有查询统计的权限。人事档案数据表主要字段如表4.2所示:表4.2Table4.2字段名nameemployeeidagebirthplacebirthtimedegreetechnic数据类型nvarcharintintnvarcharsmalltimenvarcharnvarchar人事档案数据表Personnelfilesdatatable数据长度2√√√√√√是否为空说明姓名编号年龄出生地出生日期文化程度技术职称32

4人事管理系统的分析和设计续前表:postspecialtysexguojiminzujiguanchushengdibiyeshijianxueweibeizhunvarcharnvarcharnvarcharnvarcharnvarcharnvarcharnvarcharsmalltimenvarcharnvarchar2410200√√√√√√√√√√工作岗位从事专业性别国籍民族籍贯出生地毕业时间学位备注其中,职工编号是主键,不能为空;姓名不能为空,其余可为空值。4.5本章小结本章对系统的数据流进行了阐述,并且提出了系统的功能划分并进行了描述。提出了数据库设计的方案。33

5人事管理系统的实现5人事管理系统的实现5.1系统平台实现系统方案的确定:程序语言由JSP来实现,JSP运行在服务器端,由于JSP的跨平台性,所以不用顾及每个员工终端计算机的硬件和操作系统的差别。系统结构采用浏览器/服务器(B/S)结构,每个员工终端计算机上只要装个浏览器,就可以使用这个软件。B/S结构在升级方面具有明显的优势,升级时只需在服务器端升级软件即可,不需在客户端进行任何修改。JSP应用程序所有代码都运行在服务器端,只是将结果输出在客户端浏览器上。客户端某些需要动态实现的功能采用JavaScript脚本语言实现,如用户密码输入语法的检查、数字、大小写的限制等的检查只需在客户端浏览器进行,不需服务器的参与,这些功能由JavaScript脚本语言实现。最后,采用三层体系结构,后台数据库可以在浏览器端通过应用程序灵活地访问,进行控制。[10]在B/S三层体系结构下,表示层、功能层、数据层被分成三个相对独立的单元,使客户机无法直接对数据库进行操纵,有效地防止了非法入侵。具体配置如下:Web服务器:Apache的Tomcat5.0后台数据库:MSSQLServer2000Java工具:J2SDK1.4开发工具:JBuilder2005操作系统:MSWindowsServer2000/MSWindowsServer2003本系统共分11个子系统,除登录模块外,其余10个子系统操作方式类似,都具有录入,查询、修改、删除、统计的功能模块。下面只以人事档案管理子系统为例,说明系统的设计与实现方案。在多层体系结构中,系统主要划分为三个部分,即表示层、业务层和数据库层,下面阐述多层体系结构的各个层如何实现。5.2表示层的实现表示层的主要任务是提供可视界面,以便用户可以通过这个界面录入和观察数据。在B/S模式中,浏览器作为客户端的优点是用户界面统一,便于熟悉和操作,又不需要对软件进行配置,容易上手;对开发人员来说,可以撇开前台的细节,集中精力处理后台的关键事务,减少工作量,节约整个系统的开发时间。从非计算机专业人员为主要操作者考虑,同时也考虑系统的动态特性,系统必须具有良好的界面。系统的主要界面分为以下几个部分:登录界面、主窗口界面、数35

重庆大学硕士学位论文据录入界面、数据修改界面、数据查询界面、数据删除界面、数据统计界面、口令修改和帮助界面。主界面是用户打开系统首先见到的界面,也是进入其它界面的入口。主界面设计特点:(1)运行程序后,应先出现用户登录窗口,该窗口中放置了一个静态文本框,它们被置于窗口相应的位置用以显示相应的文字信息。输入正确的用户和口令,回车后打开数据库,并进入主界面。(2)通过主界面的菜单进入各模块主界面,由录入、查询、修改、删除、统计和帮助等菜单构成,显示在窗口的左边。主界面如图5.1所示。36

5人事管理系统的实现37

重庆大学硕士学位论文程序流程如图5.3所示:登录页面取得用户口令取得用户名允许登录?NoYes分配用户权限进入系统图5.3登录程序流程图Figure5.3Loginprogramflowchart登录程序为:用户登录<%@pagecontentType=”text/html;charset=gb2312”%><%@pagelanguage=”java”import=”.*”%>38

5人事管理系统的实现<%Stringname1=ameter(“username”);Stringpwd1=ameter(“password”);SetsqlRst;Stringsql=”select*//结果集对象fromloginwhereusername=’”+name1+”’And//执行SQL语句,查找数据库表user的所有记录数password=’”+pwd1+”’”;sqlRst=eQuery(sql);Stringauth;If(()){Auth=ing(“authority”);();ue(“username”,name1);ue(“auth”,auth);%>on=””;<%}Else{();ue(“login_message”,”登录错误:错误的用户名或密码!”);ue(“auth”,””);%><%}%>5.3.2录入模块的实现在档案录入界面中,用户在各个表单中输入人员档案记录,如编号、姓名、年龄等记录,输入完毕,确认无误后,单击录入按钮,就可以进行向数据库中录39

重庆大学硕士学位论文入数据的操作。在向该界面中输入数据的时候,如果某个字段类型与规定的数据类型不同,程序则会提示用户输入的数据类型不正确,要求用户重新输入数值,直到输入正确的数据类型为止。在人员档案表中,编号是主键,编号不允许重复且不能为空,但姓名允许相同,所以两个相同姓名的人员档案仍然可以录入在数据库中。在录入人员档案的程序中,要检查在数据库中是否有相同的人员编号,若没有,才允许档案录入。下面是职工档案录入的步骤:(1)进入录入界面,取得录入的各个输入值。(2)检查输入的各个域的值的数据类型是否合法。(3)是的话,进入下一步骤;否的话,返回录入界面。(4)以录入的人员编号为查询条件,查询数据库是否己有记录。(5)是,给出提示信息,编号重复,返回录入界面.(6)否,执行录入操作,数据录入数据库中。(7)给出成功信息,返回到录入界面。程序流程如图5.4所示:40

5人事管理系统的实现进入录入界面输入各个域的值检查各个域的值是否符合要求?NoYes查询数据库中相同编号的记录是否有记录?No提示编号重复Yes提交给数据库,录入操作给出成功信息,返回录入界面图5.4档案录入程序流程图Figure5.4Inputrecordsprogramflowflowchart完成向数据库中插入记录的操作的JavaBean的相关代码是:……PublicvoidexecuteInsert(Stringsql){try{41

重庆大学硕士学位论文conn=nection(sConnStr);Statementstmt=tatement();eUpdate(sql);catch(SQLExceptionex){//在连接池中获得一个连接//创建执行SQL语句的对象//执行SQL语句,完成数据库插入操作n(“eInsert:”+sage());//显示数据库访问过程中所出现的问题}();}//关闭语句对象//把连接释放到连接池中nnection(conn);5.3.3查询统计模块的实现该模块可对人员档案中的主要字段进行查询和统计功能,查询结果先显示符合该条件的人数和人员档案的主要字段,如果要查看详细该人员档案的详细信息,再次单击该记录,将显示出该记录的详细情况。查询和统计时使用模糊查询,即如果输入姓名“王”,则所有姓名中带“王”的记录将显示出来。如果在界面中不输入任何值,将会显示出所有人员的记录来。查询如果不止一页,则会分页显示出来。查询操作是是数据库最基本的操作之一,在进行修改,删除操作之前,也要先查询己有信息,查看数据库数据内的数据,在查看现有数据的基础之上再进行修改,删除操作,以免发生误操作。首先要生成查询的SQL命令,生成查询的SQL命令很关键。实现模糊查询的SQL语句用like关键字,实现同时满足的条件用“逻辑与”“and”来实现。例如,查询姓名为“王某某”,年龄在agel到age2之间的记录时,SQL语句为:sql=”select*fromdanganwherenamelike‘”+王+”’andage>=’”+agel+”’andage<=’”+age2+”’;”查询数据库时,有可能有成千上万条记录符合条件,如果如此多的记录都显示出来的话,一个页面可能会很长很长,速度也会很慢,想看到结果的用户很快便会失去耐性,因此,我们需要将结果分成许多页面,由用户选择看哪一页。在分页显示界面中,要显示出总的记录数和页数,显示当前页码,如果总的记录数多于一页,还可以输入要查看的页码,按“转到”按钮,进入相应的页面查看。分页显示的主要步骤为:l)定义变量,为相应变量赋初值。2)从查询界面获得查询条件,产生操作数据库的sql语句。3)声明要使用的JavaBean中间件。42

5人事管理系统的实现4)执行查询语句,将查询结果置于记录集中。5)为记录总数变量赋初值0。6)若记录集当前指针的后一条存在,则记录总数加1,计算总记录数。7)设定每一页能够显示的记录总数。8)根据每一页能够显示的记录总数,计算符合查询条件的记录数需要显示的.总页数。9)从参数pages中获得以前已经显示的页数,如果pages为null,则表示这是第一页,以前没显示过;如果pages不为null值,则表示以前已经显示过页。大于总页数,表示上一次显示的是最后一页,如果pages值等于0,则表示.L一次显示的是以前已经显示过的页,此时,应从第一页开始进行显示.如果page,值大于0,而且不大于总的页数,则显示的当前页码为参数pages值。10)行数据库查询操作,并将结果集置于记录中。11)计算当前页的第一条记录位置,该位置用在总记录中的排列顺序号来表示.12)定位光标到当前页的第一条记录位置。13)显示出显示页的表头。14)将一页中己经显示出来的记录数赋初值0。15)将指针定位到第一条记录位置。16)取出第一条记录中的各个字段的值。17)显示第一条记录。18)让指针下移到下一条记录,若该记录为空,则表示己经显示完毕,停止显示记录。19)如果仍未显示完毕,判断该页中已经显示的记录总数是否等于每页能够显示的记录总数,如果已经等于,则进入下一页的显示,并将计算当前页的参数pages置为当前页加l值。20)如果该页中已经显示的记录总数小于每页能够显示的记录总数,则继续显示下一条记录。43

重庆大学硕士学位论文查询数据库,将查询结果放在记录集中计算总的记录个数设定一页显示的记录数计算总页数获得参数pages计算要显示的当前页显示第一条记录是否还有记录?No显示其他信息Yes该页显示的总记录数是否超过设定值?NoYes不再显示下一条记录,显示其他信息显示下一条记录图5.5分页显示流程图Figure5.5Pagingdisplayprogramflowchart44

5人事管理系统的实现以下是相关程序的代码:(1)生成分页显示的类在ASP中,可以使用查询记录的page()方法来直接进行分页。但在JSP中,不支持这样的移动游标,但可以使用一个Java类Page来记录分页信息。packagepag;publicclassPage{publicintpageCount;publicintrecordCount;publicintpagcId;publicintpageSize;}(2)初始化Page对象对程序中Page对象从初值Count=0;ze=10;unt=0;=l;(3)保存分页信息先对数据库进行查询,查询结果保存在记录集中VectoridList=newVector();getPage=1;while(()){Count++;if(Count==ze){unt++;ment(ing(“Employeeid”));Count=0;}}if(Count!=0)myPageCount++;Count+=(unt-1)*ze;();//总记录数初始设为0;//总页数初始设为0;//页面显示记录数为10;//总页数//总的分页数//当前的页码//每页的记录数//当前页码为1。45

重庆大学硕士学位论文5.3.4修改删除模块的实现1、修改模块修改删除是对档案进行维护的操作。修改档案时,先调出要修改的档案信息,用户查看后,在进行修改。因此,修改用户档案的流程是:首先判断用户是否已经登录,只有登录用户才能修改,然后读取用户需要修改的资料,显示在表单中并加以修改,最后把修改后的用户档案信息写入数据库,并显示成功信息。修改流程图如图5.6所示:在登录界面登录进入档案维护主界面权限认证提示没有权限是否通过认证是查询数据库,把要修改的纪录放在记录集中否提示没有相关记录否该记录是否存在是将记录显示出来进行修改录入在数据库中图5.6档案修改流程图Figure5.6Recordsmodificationprogramflowchart46

5人事管理系统的实现完成修改操作的JavaBean代码为:PublicvoidexecuteUpdate(Stringsql){Try{Conn=nection(sConnStr);//在连接池中获得一个连接Statementstmt=Statement();//创建执行sql语句的对象eUpdate(sql);//执行sql语句,完成更新操作}Catch(SQLExceptionex){n(“eUpdate:”+sage());//显示数据库访问过程中所出现的问题}();nnection(conn);}2、删除模块随着时间的推移,数据库中的数据要不断更新,过期的数据要从数据库中删除掉。如果过期的数据还保存在数据库中,不仅浪费存储资源,而且使得对数据库的访问速度变得很慢。在删除操作中,与修改类似,也是首先判断用户是否己经登录,只有登录后才能删除,然后读取用户需要删除的资料,显示在表单中供用户查看,用户确定要删除该记录,从数据库中删除该记录,最后显示删除成功信息。与修改不同的地方是,在用户单击删除按钮后,程序要给出提示信息,询问是否确认要删除,只有当用户确认要删除,程序才可以删除该记录。这里不再重复程序流程,只写出删除时用JavaScript编写的确认代码。以下是进行删除确认的JavaScript代码: