1、华北水利水电学院本科毕业论文(设计)开题报告 2010年 3 月 15 日 学生姓名张亮学号200814511专业计算机科学与技术题目名称基于J2EE的货物管理系统的设计与实现课题来源自选主要内容一 、课题背景及设计目标物流货物管理系统能够为用户提供充足的信息和快捷的查询手段。使用计算机对物流货物资料进行管理,给应用者带来很多方便,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点能够极大地提高物流货物管理的效率,同时,这也是企业的科学化、正规化管理以及与世界先进管理技术接轨的重要条件。系统的实质是对信息处理和利用的全过程。系统管理的现代化就是要求信息现代化。以计算机为基
2、础的现代信息处理的产生和发展,正是物流货物管理现代化的客观要求。随着计算机在中国的普及,越来越多的企业意识到信息系统对自身发展的重要作用,投入大量的人力、物力、财力进行信息系统的建设。企业应用物流货物管理系统的主导因素很多,但从深层次来看,可以从以下几方面来分析:(1) 提供良好的人事信息内容整合机制。知识经济中企业分散、混乱的人事信息形成不了竞争力,必须要将其整合成为有组织的内容才能充分发挥其价值。(2) 提高企业内外部人员的协作效率。物流管理对企业内外部而言,能够很好地做到信息的有效共享和协同商务。可以说,有效的物流货物管理是实现良好的整合关系管理的重要保证,提高企业在市场竞争中的生存能力
3、。(3) 企业为了有效地响应内部人员和外部客户,货物管理信息化是必不可少的,企业信息化已成为企业在竞争中处于不败之地的有效手段之一。二 、系统功能第一部分:根据设计目标,初步设定系统要实现的功能如下:本系统根据物流货物管理的特点,可以将其分为收货管理、配送管理、查询3个部分,功能模块如下图所示。1) 收货管理收货管理菜单对应了物流公司的收货部门的全部日常业务。其中包括:收货登记、未估价货票、到货确认、损货登记四大功能。2) 配送管理配送管理菜单对应了物流公司的配送部门的全部日常业务。其中包括车辆登记、司机登记、省际运输、市场配送四大功能。3) 查询查询是对公司的日常业务通过查询或图表的形式显示
4、给用户,以方便客户了解业务信息。其中包括货票查询。第二部分:数据库的设计和实现该部分前期设计出概念层的数据结构,后期生成SQL Server 2000脚本,从而达到创建数据库的目的,由于该系统涉及到的方面较多,抽象出的实体多,关系复杂,所以要通过一定数量的数据冗余,减少多表链接,从而提高系统的数据访问效率。将数据库概念结构转化为Microsoft SQL Server 2000系统所支持的实际数据模型,也就是数据库的逻辑结构,系统数据库名称为BeltLine,数据库BeltLine中包含用户信息,货物信息、车辆信息,司机信息等。通过对系统进行仔细分析以后,需要14个数据表来实现系统所要储存的数
5、据。采取的主要技术路线或方法(1) 开发工具:Myeclipse 6.5,基于J2EE开发平台,WINDOWS开发环境(2) 编码语言:Java,SQL(3) 数据库:SQL Server 2000预期的成果及形式(1) 论文撰写相关设计文档和毕业论文(2) 软件作品基于J2EE的物流货物管理系统的设计与实现时间安排第 14 周:准备(初步学习相关的编码语言以及需求分析),需要解决的是对平台的熟悉和对SSH框架的学习。第 58 周:系统设计与系统实现(对该系统进行总体框架设计、详细设计,然后建立数据库。弄清数据关系。再将该系统的框架下进行编码,实现预期的功能和页面开发)。第 912周:系统测试
6、,并完成毕业论文的编写、修改。第1315周:准备答辩及正式答辩。指导教师意见本课题以物流信息管理系统中货物管理系统为目标,以实现货物流管理计算机化、网络化,从而提高物流货物管理的效率,具有较强的现实意义;同时,本课题遵循J2EE准则,设计与实现了轻量级J2EE平台,具有一定的技术特色;另外,通过对系统的业务和需求进行分析,该系统工作量适当,难度适中,适合作为本科毕业设计。签 名:年 月 日备注1 徐进明.JSP网站开发技术M.北京:清华大学出版社,20022 孙卫琴.精通Struts:基于MVC的java Web设计与开发.电子工业出版社M,20043 Deitel.Java程序设计教程M.北
7、京:清华大学出版社,20064赵文靖.Java程序设计基础与设计上机指导M.北京:清华大学出版社,20065王立丰.J2EE课程设计指导M.北京:北京大学出版社,20086耿祥义.JSP基础教程M.北京:清华大学出版社,20047杨少波,顾益军等.J2EE项目实训Spring框架技术M.北京:清华大学出版社,20088杨少波等.J2EE项目实训Hibernate框架技术M.北京:清华大学出版社,20089杨少波等.J2EE项目实训Struts框架技术M.北京:清华大学出版社,200810 邹羚.基于SSH的J2EE架构在信息管理中的应用J.商场现代化,2007,21(6):22-2311陈天河
8、.Struts,Hibernate,Spring集成开发宝典M.北京:电子工业出版社,200712张靖.基于J2EE平台的Web应用研究J.成都大学学报,2006,12(4):291-295摘 要21世纪,随着计算机科学的发展,数据库技术在Internet中的应用越来越广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今Web应用的潮流。本文阐述了如何构造一个B/S结构的物流货物管理系统,对B/S结构、JSP技术以及SQL Server原理进行了较深入的论述。阐述了对物流货物管理系统的需求分析、功能模块划分、数据库模式分析,功能模块的实现过程。在此基础上,对所应用的关键技术进
9、行描述。最后,对程序调试与调试结果进行论述。本系统结合因特网的发展、应用现状,采用了基于WEB的三层体系架构,即浏览器WEB应用服务器数据库服务器。通过对系统工作流程进行详细需求分析,建立了系统的功能模型和数据流模型。确定系统的数据模型为关系数据模型,进行了分析、设计、画出了E-R图。后台数据库选用了SQL Server 2000来实现。WEB开发采用当前流行的JSP(Java Server Pages,动态网页技术)技术,JSP页面通过SSH(Struts and Spring and Hibernate)整合技术,连接SQL Server 2000数据库,实现了浏览器端和服务器端的程序。系
10、统经过测试,运行效果稳定、操作方便、快捷,能较好的为该系统的用户服务。关键词 货物管理;SSH;J2EEAbstractAlong with the development of the computer science in 21 centuries, the database technique is more and more extensive in the application in the Internet, providing the more thoughtful and humanized service for the large network customer. Ch
11、aracteristic have already become gradually the current as the application of Web nowadays. This paper describes how to struct a system to have set forth goods to let management adopt B/S structures, the paper describes the B/S structure and SQL Server, JSP technology principles. The article complete
12、 the needs analysis of an system for the management applications for communication which on the web, functional modules division and database model analysis. The technology is in progress here to what be applied key on the basis, describe that. Final, comment that to procedure debugging with testing
13、 result being in progress.Internet, application status, using a Web-based three-tier system structure, the browser Web application servers database servers. Through the teacher evaluation process needs to conduct a detailed analysis, establish a system of the model and data model. Identify the data
14、model for relational data model for the analysis, design, which depicts the E-R charts. Selection of the background database SQL Server 2000 is to be achieved. Web develops using current popular JSP (Java Server Pages, Dynamic web technology) technology, JSP pages through SSH (Struts and Spring and
15、Hibernate) technology to connect SQL Server 2000 database. It has realized a browser holding the procedure really with the server. Through the testing, theoperationresult of the system is steady .It is easy to operate and the speed is fast. It can give a good service for the users who use the system
16、.Key Words Goods Manage; SSH; J2EE目 录第1章绪论11.1研究背景及意义11.1.1研究背景11.1.2研究意义21.2研究内容2第2章关键技术42.1J2EE平台概述42.1.1J2EE平台52.1.2MVC设计模式62.2SSH整合技术72.2.1Struts框架72.2.2Spring框架82.2.3Hibernate框架102.2.4SSH框架整合112.3AJAX技术12第3章系统需求分析153.1系统概述153.2可行性研究163.3系统用例分析173.3.1统一建模语言(UML)简介183.3.2系统分析19第4章货物管理系统设计214.1数据库
17、的设计214.1.1数据库SQL Server 2000简介214.1.2数据库结构设计234.1.3操作数据库274.2系统功能设计294.2.1登录模块294.2.2收货管理模块304.2.3配送管理模块314.2.4查询模块32第5章货物管理系统实现335.1登录模块335.2收货管理模块335.3配送管理模块375.4查询模块41第6章总结42参考文献43致谢44附录45外文翻译45计算机源程序52第1章 绪论随着信息全球化的加快,现在企业的专业分工和协作对现代物流提出了越来越高的要求,信息化、自动化、网络化、智能化、柔性化已成为现在物流的鲜明特征。随着物流行业的发展壮大,物流的信息化
18、日益被从业者和信息系统提供者所重视。同时,现代企业的供应链也提醒着物流企业,若想在激烈的市场竞争中占据绝对优势,必须要求企业及时准确得掌握客户的需求,同时对客户的需求作出快速的反应,在最短的时间内以最大的限度挖掘和优化物流资源来满足客户的需求,从而建立高效的数字化物流经济。1.1 研究背景及意义1.1.1 研究背景随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现物流货物管理势在必行。对于一般的大型、中型企业来说,物流货物管理的对象是一个或多个单位中员工的基本信息,这些信息是在随时变化的。利用计算机支持企业高效率完成物流货物管理的日常事务,是适应现代企业制度要求、推动货物管
19、理走向科学化、规范化的必要条件。而物流货物管理是一项繁琐而又细致的工作,一般不允许出错,计算机进行货物管理工作,不仅能够保证货物登记情况的准确无误,查询的方便快捷,而且还可以利用计算机对货物信息进行统计处理。物流货物管理系统能够为用户提供充足的信息和快捷的查询手段。使用计算机对物流货物资料进行管理,给应用者带来很多方便,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点能够极大地提高物流货物管理的效率,同时,这也是企业的科学化、正规化管理以及与世界先进管理技术接轨的重要条件。因此,企业只有建立跨平台的物流货物管理系统,才能真正提升信息应用的效益。1.1.2 研究意义系统的
20、实质是对信息处理和利用的全过程。系统管理的现代化就是要求信息现代化。以计算机为基础的现代信息处理的产生和发展,正是物流货物管理现代化的客观要求。随着计算机在中国的普及,越来越多的企业意识到信息系统对自身发展的重要作用,投入大量的人力、物力、财力进行信息系统的建设。企业应用物流货物管理系统的主导因素很多,但从深层次来看,可以从以下几方面来分析:(1) 提供良好的人事信息内容整合机制。知识经济中企业分散、混乱的人事信息形成不了竞争力,必须要将其整合成为有组织的内容才能充分发挥其价值;(2) 提高企业内外部人员的协作效率。物流管理对企业内外部而言,能够很好地做到信息的有效共享和协同商务。可以说,有效
21、的物流货物管理是实现良好的整合关系管理的重要保证,提高企业在市场竞争中的生存能力;(3) 企业为了有效地响应内部人员和外部客户,货物管理信息化是必不可少的,企业信息化已成为企业在竞争中处于不败之地的有效手段之一。1.2 研究内容随着时代的进步,企业也逐渐变得庞大起来,如何管理物流货物管理的信息,成为企业管理中的一个大的问题,本文根据物流实际业务需求,结合“整体规划、分步实施”的理念,研究采用B/S模式、基于J2EE的物流货物管理系统,基本上能够满足现代物流货物管理的需基于J2EE分层的体系结构基础上,利用性能稳定的SSH框架,很大地缩短了系统的开发周期,并降低了系统的开发成本,同时使开发的系统
22、具有很强的易扩展、易维护、跨平台等特性。该系统整个的研究过程,遵循软件工程原则,沿需求分析、系统设计、系统实现和系统测试顺序开展,主要完成以下工作:(1) 分析物流货物管理系统的功能性和非功能性需求;(2) 研究物流货物管理系统的总体设计目的和设计思想,确定高内聚低耦合的物流货物管理系统的设计框架。系统采用基于J2EE的分层体系结构,采用SSH框架组合。用Struts框架来实现表示层,Spring框架来实现业务逻辑层,Hibernate框架来实现数据持久层;(3) 介绍物流货物管理系统的开发环境,确定系统设计方案,研究权限管理,并实现角色管理,使具有不同角色的系统用户具有不同的访问系统权限。根
23、据系统的业务流程设计实现了系统的操作界面;(4) 对物流货物管理系统进行单元测试、功能测试和性能测试,研究物流货物管理系统的测试方案,并给出测试分析。第2章 关键技术2.1 J2EE平台概述Java2平台目前有3个版本,它们分别是适用于创建服务器应用程序和服务的Java2平台企业版(Java 2 Platform Enterprise Edition,J2EE)、适用于桌面系统的Java2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于小型设备和智能卡的Java2平台Micro版(Java 2 Platform Micro Edition,J2M
24、E)。J2EE技术的基础核心是Java平台或者说是Java2平台的标准版,J2EE不仅仅极大地巩固了标准版中固有的诸多优点,同时还提供了对同时还提供了对Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持1。J2EE是一个在Java2平台上建立的企业级应用解决方案。J2EE技术的基础是Java2平台,因此J2EE不仅拥有J2SE平台的所有功能,同时还提供了包括Servlet,JSP,XML等相关技术的全面支持方案,它的最终目标是成为支持企业级应用开发的完整体系结构,从而极大简化企业解决方案在设计、开发、部署和管理等各方面的问题。目前,J2EE
25、已经成为企业级开发的工业标准和首选平台。J2EE是一个开放的、基于标准的平台,可以开发、部署和管理N层结构的、面向Web的、以服务器为中心的企业级应用,它是利用Java2平台来简化与多级企业解决方案的开发、部署和管理相关的诸多复杂问题的应用体系结构。J2EE平台采用一个多层次分布式的应用模式。J2EE应用可以由三或四个层次组成,因为它们是被分布在三个不同的地点:客户端机器、J2EE服务器和数据库或后端的传统系统服务器。三层架构应用是对标准的客户端/服务器应用架构的一种扩展,即在客户端应用和后台存储之间增加一个多线程应用服务器,如图2-1所示。图2-1 J2EE层次结构客户层是为客户提供应用服务
26、的图形界面,有助于用户理解和高效的定位应用服务。业务层位于客户层和数据层之间,专门为实现企业的业务逻辑提供了一个明确的层次,在这个层次封装了与系统关联的应用模型,并把用户表示层和数据库代码分开。这个层次提供客户应用程序和数据服务之间的联系,主要功能是执行应用策略和封装应用模式,并将封装的模式呈现给客户应用程序2。数据层是三层模式中最底层,它用来定义、维护、访问和更新数据并管理和满足应用服务对数据的请求。2.1.1 J2EE平台J2EE体系包括JSP、Servlet、WEB SERVICE等多项技术。这些技术的出现给电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。怎样把这些技术组合起来
27、,形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。J2EE体系结构架提供了中间层集成框架,它用来满足高可用性、高可靠性以及可扩展性的应用需求。通过J2EE所提供的统一开发平台,可以极大降低开发多层应用的费用和复杂度,并且能够提供对现有应用程序集成的强有力的支持,并且具有良好的向导支持打包特性和部署应用特性,支持添加目录功能,并对安全机制进行了增强,显著提高了性能3。J2EE平台由一整套服务、应用程序接口和协议构成,它对于开发基于Web的多层应用提供了功能支持,下面简单的描述一下J2EE中的几种关键技术:(1) EJB(Enterprise Java Beans):EJB提供了
28、一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池等。但EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。(2) JSP(Java Server Pages):JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。(3) Servlet:Servle
29、t是一种小型的Java程序,它扩展了Web服务器的功能。Servlet程序在服务器端运行,动态地生成Web页面4。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。2.1.2 MVC设计模式MVC模式是Model-View-Controller的缩写,中文翻译为模式-视图-控制器即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变M
30、odel或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己5。Struts架构只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现。1) 模型(Model)模型是指业务流程、状态的处理以及业务规则的制定,是MVC最主要的核心,它接受视图请求的数据,并返回最终的处理结果。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉开发人员,把应用的模型按一定的规则抽取出来,抽取的层次很重要,
31、这也是判断开发人员是否优秀的设计依据6。MVC并没有提供模型的设计方法,而只告诉开发人员应该如何组织管理这些模型,以便于模型的重构和提高重用性。2) 视图(View)视图代表用户交互界面,对于Web应用来说,包括HTML、XHTML、XML和Applet等形式,且随着应用的复杂性和规模性的提高,界面的处理也变得具有挑战性。MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括业务流程的处理。业务流程的处理交予模型(Model)处理。3) 控制器(Controller)控制器从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地
32、告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。2.2 SSH整合技术2.2.1 Struts框架Struts是一个Web Framework,伴随着软件开发的发展,在多层的软件开发项目中,可重用、易扩展的,而且是经过良好测试的软件组件,越来越为人们所青睐。这意味着人们可以将充裕的时间用来分析、构建业务逻辑的应用上,而非繁杂的代码工程。于
33、是人们将相同类型问题的解决途径进行抽象,抽取成一个应用框架。Framework的体系提供了一套明确机制,从而让开发人员很容易的扩展和控制整个framework开发上的结构。Struts由一组相互协作的类(组件)、Serlvet以及JSP Taglib组成。基于Struts构架的web应用程序基本上符合JSP Model的设计标准,可以说是MVC设计模式的一种变化类型。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)7。在模型层,Struts可以很容易的与数据访问技术相结合,包括JDBC和Object RelationB
34、ridge。在视图层,Struts能够与JSP,Velocity Templates,XSL等等这些表示层组件想结合。Struts框架内部运行机制图如图2-2所示。图2-2 Struts框架内部运行机制图2.2.2 Spring框架Spring框架是个优秀的多层J2EE系统框架,目的是用于建立“快装式企业应用”,它为企业级应用提供了一个非常轻量级的解决方案,大大降低了应用开发的难度和复杂度,提高了开发效率。Spring框架是由OpenSource开发的一个优秀的多层J2EE系统框架,它为企业级应用提供了一个非常轻量级的解决方案。你可以把Spring当作一个一站式企业应用,或者一个标准开发组件,
35、根据自己的需要,只取用它的部分组件使用而无须涉及其他。Spring的核心是个实现了IoC(Inversion of Control)模式的轻量级容器,其目标是实现一个全方位的整合框架,在此框架下实现多个子框架的组合,而这些子框架又可以彼此独立,也可以使用其它的框架方案加以替代。Spring希望提供一站式的框架整合方案。同时Spring框架实现对AOP(Aspect Oriented Programming)思想的支持,这大大增加了框架的扩展能力。Spring的核心概念IoC的具体体现为:高层模块不依赖底层模块,实现必须依赖抽象,应用程序不应依赖于容器,而是容器服务于应用程序。它可以帮助开发者完
36、成组件之间的依赖关系注入,使得组建之间的依赖达到最小,进而提高组件的重用性。Spring是个低侵入的框架,其中的组件并不会意识到它正置身于Spring中,这使得组件可以轻易的从框架中脱离,而几乎不用任何修改,反过来说,组件也可以简单的方式加入到框架中,使得组件甚至框架的整合变得很容易。图2-3是Spring的整体框架。图2-3 Spring的整体框架Core封装包是框架的最基础部分,提供IoC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。构建于Core封装包基础上的Con
37、text封装包,提供了一种框架式的对象访问方法,有些像JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化的支持,事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器8。DAO提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。ORM封装包提供了常用的“对象/关系”映射APIS的集成层。其中包括JPA、JDO、Hibernate。利用ORM封
38、装包,可以混合使用所有Spring提供的特性进行“对象关系”映射,如前边提到的简单声明性事务管理。2.2.3 Hibernate框架Hibernate 控制的是持久层,这里通常是程序最容易失控的地方。这里通常是程序最容易失控的地方。开发者总是低估构建他们自己的持久框架的挑战性。系统内部的持续层不但需要大量调试时间,而且还经常缺少功能使之变得难以控制,这是持久层的通病。Hibernate为Java提供了OR持久化机制和查询服务,Hibernate将在Java类里使用的HQL语句转换为SQL语句,利用JDBC驱动进而操作数据源,完成数据的增、删、改等最低层是关系数据库。Hibernate的持久对象
39、是基于POJO和Java collections。此外,使用Hibernate并不妨碍你正在使用的IDE。Hibernate通过查询语言(HQL) 或者正则表达的API来完成查询。HQL 是一种对象查询的自然语言,非常类似于SQL,它只是把SQL里的table和columns用Object和它的fields代替9。像Hibernate这类的高级ORM框架支持大部分主流数据库,并且这个框架支持Parent/child关系,事物处理,继承和多态。Hibernate体系结构如图2-4所示。图2-4 Hibernate体系结构Hibernate是优秀的持久化工具,不仅提供了从Java类到数据表之间的映
40、射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操作数据库,使用Hibernate,可以大大减少操作数据库的工作量。Hibernate在持久层解决了面向对象设计范式和数据库关系模型不匹配的问题,是一个理想的O/R 映射工具,用它来替代Spring框架对JDBC的封装是一个很好的做法。2.2.4 SSH框架整合以上对Struts、Spring和Hibernate三种框架技术,进行了详细的研究,从中可以看出,对于各个框架技术的个体而言不存在优与劣,而只是应用领域不同而已。如何针对某一具体领域,选择合适的框架技术来相互弥补应用中的不足,则是很值得讨论的,构架图如图2-5所示。图2-5
41、 SSH构架图Struts是一种优秀的J2EE MVC实现框架,运用了成熟的MVC设计模式和前端控制器(Front Controller)模式,并基于尽可能保持事物简单化的动机。Struts采取了分级的拉出式MVC模式。“拉出式”是指视图组件根据要求,从控制器中将模型信息拉出来作为响应。这与传统的Model的方式不同,传统的Model没有使用模型来管理信息,而是直接使用视图来访问信息。“分级”是指对视图数据的存放,在Struts中,“值堆栈”用来为视图提供信息,利用FilterDispatcher配合Xwork.xml文件实现对整个系统的导航。对业务流程动态配置,而不用将流程控制硬编码在代码中
42、10。Struts利用强大的OGNL和值堆栈机制,为View层和Model之间实现了完美的数据共享,方便、灵活的拦截器是开发人员可以针对特定需求实现数据的拦截。Struts+Spring+Hibernate是目前国外众多知名软件企业最主流的应用技术,也是J2EE未来发展的趋势,Struts作为前台控制框架简化了程序的开发,使页面设计人员和Java程序员达到有效的分离,使项目的可扩展性大大增强,提升了开发效率,降低了维护成本。Spring作为一个应用于所有层面综合框架,具有强大的应用功能及灵活性,非常适合作为一些大规模软件项目的底层平台16。Hibernate作为后台O/R mapping一个持
43、久层框架的轻量级组件,对持久层进行了轻量级封装,降低了程序的复杂度,易于调试,减轻了程序员的负担,具有很强的扩展性,API开放,可自行对Hibernate原码进行修改,扩展所需的功能,所以Struts+Spring+Hibernate的联合框架一定具有美好的前景。Spring是业界一直非常推崇的轻量级容器,与各种框架能够很好的集成。虽然Struts本身通过Xwork实现IoC机制,但考虑到在应用中会使用到AOP机制,而选择使用Spring作为容器来维护Bean的操作,能够很好的实现业务逻辑的分离,避免将所有的任务都由Struts完成。依靠IoC的依赖注入,给开发人员减轻了负担,使程序代码逻辑结
44、构清晰,这样不但实现了组件间的松散耦合还大大提高了开发效率。Spring框架的优势不止于此,如事务操作、AOP和集成的持久层实现等给开发人员带来了极大的方便。不用拘泥于设计事务机制、繁琐的try-catch代码和数据库连接和获取、关闭等。Hibernate作为一种持久层框架和Spring天然的搭配在一起,使开发人员可以完全以面向对象的方式进行系统分析、系统设计并可以使用面向对象的操作方式操作数据库记录11。更为重要的是,应用系统在不同数据库间移植非常方便,只需在配置文件中更改即可。开发过程中,三种框架技术的集成非常方便,作为开源框架中的佼佼者,三种技术顾及到了和其他框架的结合,而且开发者针对具
45、体的应用需求,可以修改源代码,定制客户化服务。在项目实施中通过对以上三种框架的集成,充分利用各自的优势,互为补充,取得了良好的效果。2.3 AJAX技术1) AJAX概念AJAX是2005年2月由Jesse James Garrett首先提出来的,它是Asynchronous Javascript And XML的简写,即异步的JavaScript和Xml而程序调用。AJAX是一种客户端开发技术,它能够与任何主流的服务器端语言,比如JAVA、C#、PHP、VB.NET等共同使用12。AJAX实际上不是一项全新的技术,它是把几项技术以强有力的全新思维方式整合而成。2) AJAX大致涵盖以下几方面
46、内容:(1) 利用XHTML和CSS进行基于标准的页面表示;(2) 利用DOM对载入的页面进行动态的显示和交互;(3) 利用XML和XSLT进行数据的交换和处理;(4) 利用XMLHttpRequest进行通信代理,完成异步数据检索;(5) 利用Javascript来编写AJAX引擎,将以上技术融合在一起。3) AJAX应用和传统WEB应用的差别在传统WEB应用中,用户运行程序的模式是:提交页面等待响应重新显示页面。只要刷新页面,就必须是完全刷新,这期间用户对程序的体验是中断的。利用AJAX可以使用户在不重载页面的情况下,通过Javascript启动一个异步HTTP请求从服务器获取信息,然后部
47、分刷新页面信息,使用户对应用的体验是连续的,将原来在桌面应用程序中才能实现的功能带入到WEB中。4) AJAX技术原理AJAX相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化。并非所有的用户请求都提交给服务器,像一些数据验证和数据处理等都交给AJAX引擎自己来做,只有确定需要从服务器读取新数据时再由AJAX引擎代为向服务器提交请求。AJAX的核心是Javascript对象XMLHttpRequest,该对象在IE5中首次引人,它是一种支持异步请求的技术,使用户可以使用Javascript向服务器提出请求并处理响应,而不阻塞用户。这样就减轻了服务器的负担又加快了响应速度、缩短了用户的等候时间。5) AJAX框架的优势及种类随着AJAX应用程序的大规模流行,由于用户使用浏览器的差异等诸多因素,通过直接利用Javascript操纵XMLHTTPRequest对象,与服务器端进行通信的方式编写AJAX应用的复杂性逐渐显现出来。这促使各种开源的AJAX框架如雨后春笋般涌现出来,它们把AJAX最基本的XMLHTTPRequest封装起来,并引入了它们自己的