参考基于j2ee(java 2 platform enterprise edition)物流管理系统_第1页
参考基于j2ee(java 2 platform enterprise edition)物流管理系统_第2页
参考基于j2ee(java 2 platform enterprise edition)物流管理系统_第3页
参考基于j2ee(java 2 platform enterprise edition)物流管理系统_第4页
参考基于j2ee(java 2 platform enterprise edition)物流管理系统_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

海南大学三亚学院 本 科生毕业设计设 计 题 目:基于J2EE的物流管理系统分 院: 专 业: 年 级、 班 级: 学 生 学 号: 学 生 姓 名: 指 导 老 师: 年 月 日论文独创性声明本人所呈交的毕业设计是我个人在指导教师指导下进行的研究工作及取得的成果。除特别加以标注的地方外,论文中不包含其他人的研究成果。本论文如有剽窃他人研究成果及相关资料若有不实之处,由本人承担一切相关责任。本人的毕业设计中所有研究成果的知识产权属海南大学三亚学院所有。本人保证:发表或使用与本论文相关的成果时署名单位仍然为海南大学三亚学院,无论何时何地,未经学院许可,决不转移或扩散与之相关的任何技术或成果。学院有权保留本人所提交论文的原件或复印件,允许论文被查阅或借阅;学院可以公布本论文的全部或部分内容,可以采用影印、缩印或其他手段复制保存本论文。加密学位论文解密之前后,以上申明同样适用论文作者签名: 日期: 年 月 日摘 要21世纪全球经济持续发展和科学技术突飞猛进,使得现代物流成为现代经济的重要组成部分和工业化进程中最为经济合理的综合服务模式,正在全球范围内高速发展。要在竞争激烈的物流市场分得一杯羹,就必须用信息化技术塑造先进的物流服务形态。通过对现代物流管理的需求分析,该物流管理系统功能包括货物管理、票务管理、配送管理、财务管理、基本资料管理。采用基于J2EE的SSH(Struts+Hibernate+Spring)框架技术的MVC(模型-视图-控制器)开发模式来构建物流管理系统。本文首先对J2EE系统体系结构作了简介,指出了通过J2EE建设实施现代物流企业管理系统的可行性,并对其需求进行了详细分析。在此基础上给出了该系统的需求分析、概要设计、详细设计。并根据数据库分析建模的理论,给出了该系统中所需数据库的分析,给出了数据库的逻辑结构。给出了JAVA的具体实现,对每个模块进行了详细说明,并对主要代码进行了解释。【关键词】物流管理系统,SSH,MVC,J2EEAbstract In the 21st century, along with the global economy sustainable development and the rapid development of science and technology, modern logistics are experiencing a high-speed development globally , becoming the most economical and reasonable comprehensive service mode in the process of industrialization ,and playing a vital role in the modern economic development. To grab a slice in the fiercely competitive logistics market, they must use information technology to shape the advancing logistics service form. According to the demand of modern logistics ,they adapt MVC (a model-view-controller setup) development model which based on the frame technology of J2EE SSH (Struts+Hibernate+Spring)to construct logistics management system .The logistics management system function including goods management, ticketing management, distribution management, financial management, and the basic material management. This paper firstly makes a introduction of the J2EE system structure, and points out the feasibility of constructing and implementing modern logistics management system by J2EE , and makes a analysis of the requirements in detail. On the basis of which , requirements analysis, general design, detailed design of this system are given. According to the theory of database analysis modeling , the analysis of database needed by the system ,the logical structure of the database and the concrete realization of JAVA is discussed, and each modulea are illustrated in detail and major code are explained.【Key Words】 logistics management system, SSH, MVC, J2EE目 录1 绪 论51.1论文背景51.2论文的内容与意义61.3论文结构82 物流管理系统概述和SSH框架简介92.1 物流管理系统概述92.2 MVC模式152.3 J2EE平台与SSH框架192.4 Hibernate框架232.5 Spring框架243 系统总体设计273.1 需求分析273.2 系统功能分析303.3 数据库设计313.4 系统技术架构设计384 系统详细设计与实现424.1 系统文件结构424.2 系统通用功能434.3 操作员登录模块444.4 货物管理464.5 配送管理模块495 结束语535.1总结535.2展望53参考文献55致谢57基于J2EE的物流管理系统1 绪 论1.1 论文背景实施物流管理的目的就是要在尽可能低的运营成本条件下实现既定的客户服务水平,获取公司的最大收入效益。根据这个目标,物流管理要解决的基本问题,就是安全、快捷、高效的完成客户的托运需求。 传统的物流服务主要以手工作业为主,增值业务难以开展。为了进一步提高公司的管理和服务水平,完成在全公司范围内全面实施信息化管理,实现整个公司内部信息共享、资源共享。因为缺乏信息化的服务手段,就会丧失客户、丧失市场。因此,在所有的改造中,信息化改造必须要先行,其他的改造可以视企业的发展需要来定。当前,世界经济正处于深刻变革的重大转折时期,世界范围内进行的经济结构调整、科学技术突飞猛进和跨国公司的影响日益增大,日益成为世界经济主流。其中,出现了与IT技术相结合和实行现代管理的新兴产业,现代物流作为一种先进的组织方式和管理技术,被世界各国广泛采用,并形成一种新兴产业,在国民经济发展中发挥着重要作用。每笔成功的交易都须具备三个基本的要素:即物流、信息流和资金流,其中,物流是基础,在信息化高度发展的网络营销时代,物流与信息的相互配合变得越来越重要,在供应链管理中必然要用到越来越多的现代物流技术。只有商品或服务真正转移到消费者手中,即只有通过物流过程,商务活动才得以终结。网络营销的核心是信息化,这个信息化不仅体现在选择商品及电子支付上,也充分体现在物流的整个过程中。 随着世界经济的持续发展和科学技术的突飞猛进,现代物流作为现代经济的重要组成部分和工业化进程中最为经济合理的综合服务模式,正在全球范围内得以迅速发展。现代物流已被广泛认为是企业在降低物质消耗、提高劳动生产率以外创造利润的重要源泉,也是企业降低生产经营成本,提高产品竞争力的重要环节。目前的经济形势需要发展现代物流,加快国有企业改革和发展需要发展现代物流,中国经济的持续发展需要发展现代物流,经过改革开放30年的洗礼,我国政府有关部门和广大企业越来越深刻地认识到现代物流对于经济发展的促进作用。 建立物流信息系统的条件已经具备。物流基础设施建设也具有一定规模和档次,建成了与港口、航空、公路和铁路等相关联的综合运输网络体系,高速、宽带、大容量的信息网络平台已基本建成。尤其随着网络技术的发展,企业间的竞争已突破了地域的限制,竞争的中心逐步转移为物流服务的竞争。目前许多大型制造业、零售业的跨国公司,为争夺全球市场,把物流服务作为自己的竞争优势。同时,他们也从高效率、优质的顾客服务中获得巨额利润。在日益激烈的市场竞争环境下,如何提升和确定企业的物流服务水平,保证企业长期竞争优势,已成为企业需要关注的重大课题。为了谋求物流服务的高效率与高质量,利用电子化、网络化手段完成物流全过程的协调、控制,实现从网络前端到终端客户的所有中间过程服务。专业物流企业利用信息网络和结点网络,加快订单处理速度,缩短从订货到交货的时间,实现货物的快速交付,提高顾客满意度。同时,通过其先进的信息和通讯技术,加强对在途货物的监控,及时发现、处理配送过程中的意外事件,保证货物及时、安全送达到目的地。因此,建设现代物流信息系统具有十分重要的经济意义和现实意义。1.2 论文的内容与意义1.2.1论文的内容首先,介绍现代物流信息系统开发背景和国内外开发应用现状,阐明现代物流信息系统对于企业的重要性。其次,对物流信息系统和SSH框架进行简介。第一,从物流基本概念、我国物流发展状况及现代物流的发展趋势三方面,概述了物流信息系统。第二,从软件开发模式、MVC概述、MVC在Web上的应用及MVC的好处等几方面,简述了MVC模式。第三,介绍了J2EE平台、SSH框架。对于J2EE平台,从J2EE概念和J2EE体系架构两方面,进行了概述;对于Struts框架,则从Struts实现MVC的机制、Struts工作流程、Struts优缺点及为什么要使用Struts框架进行了阐述。再次,根据系统需求分析和功能分析,进行数据库设计和系统技术架构设计。第一,从系统概述与目标、系统功能性需求、系统非功能性需求等三方面,进行了系统需求分析,并从系统功能模块划分以及系统流程等两方面,进行了系统功能分析。第二,结合系统需求分析和系统功能分析,从数据库需求分析、数据表结构设计等两方面,进行了数据库设计。第四,从逻辑结构设计、技术方案实现等方面,进行系统技术架构设计。在进行系统逻辑结构设计时,从逻辑结构分析、表示层设计、控制层设计、业务层设计、持久层设计等五个方面,进行了探讨;在阐述技术方案时,从配置Web.xml文件、配置struts-config.xml文件、ActionForm的编写过程、Action的编写过程、业务逻辑编写过程、持久层设计以及视图层开发技术等七个方面,进行了介绍。然后,详细设计管理员登录模块、客户信息管理模块、车辆信息管理模块和发货单管理模块。其中,管理员登录模块包括管理员登录验证、管理员修改密码等功能;客户信息管理模块包括客户信息查询、客户信息增加、客户信息删除等功能;车辆信息管理模块包括车辆信息查询、车辆信息增加、车辆信息编辑、车辆信息删除等功能;发货单管理模块包括建立发货单、发货单回执确认、查看发货单、删除发货单等功能。进行模块设计时,采用J2EE开发规范以及struts框架,分为Controller(控制器)、Model(模型)、View(视图)三层。其中,Controller(控制器)的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端;Model(模型)层实现业务逻辑;View(视图)层是应用程序中用户界面相关的部分,向用户显示数据,并能接收用户的输入数据。最后,对该现代物流信息系统设计进行了总结,并对该现代物流信息系统应用前景进行了展望。1.2.2论文的意义该现代物流信息系统不但能使物流企业走上科学化、网络化管理的道路,而且能够为企业带来巨大的经济效益和管理方式上飞速的发展。从经济性上讲,该现代物流信息系统的流程,从客户提交订单开始,中间依次经过管理员登录、车辆查询、车辆确认、填写发货单、货物发出、货物到达、到达确认、回执单确认,业务流程规范、科学,界面友好,操作环境便捷,将为企业带来更多的客户资源,树立企业的品牌形象,提高企业的经济效益。从管理方式上讲,系统采用B/S模式部署,网络化的管理方法,物流管理人员在操作过程中能够快捷地查找车辆信息、客户订单以及客户信息;能够对货物进行全程跟踪,了解货物的托运情况,从而使企业能够根据实际情况,做好运营过程中的各项准备工作,并对突发事件做出及时准确的调整;能够保证托运人以及收货人对货物进行及时的处理。首先,从系统页面文件结构和类文件结构等两方面,设计了系统文件结构。其次,从编写数据库持久化类、编写获取系统时间操作类、编写分页Bean等三方面,设计了通用功能。然后,从管理员登录验证、管理员修改密码等两方面,设计了管理员登录模块;从发货客户信息添加、发货客户信息删除、发货客户信息查询等三方面,设计了发货客户管理模块;从车辆信息查询、车辆信息增加、车辆信息编辑、车辆信息删除等四方面,设计了车辆信息管理模块;从建立发货单、回执发货单确认、发货单查询等三方面,设计了发货单管理模块。从开发技术上讲,该现代物流信息系统采用SSH框架,分层设计,将复杂的应用分为表示层、控制层、业务逻辑层、数据逻辑层等四层,系统层次结构清晰,简化了系统开发的难度和工作量,改善了软件的易管理性;通用模块的设计,提高了系统可扩展性和模块可复用性。该现代物流信息系统功能切合物流管理流程的特征和分层设计的理念,可供相关行业借鉴,具有较好的研究、推广价值。1.3 论文结构论文分为五个章节。 第一章简述论文背景以及论文的内容和意义。第二章阐述物流管理系统和SSH框架相关知识。第三章内容为该物流信息系统总体设计。第四章详细设计了管理员登录模块、发货客户管理模块、车辆信息管理模块。 第五章对该物流信息系统设计进行了总结,并对该系统应用前景进行了展望。2 物流管理系统概述和SSH框架简介2.1 物流管理系统概述2.1.1物流基本概念物流是为满足消费者需求而进行的对原材料、中间库存、最终产品及相关信息从起始点到消费地的有效流动,以及为实现这一流动而进行的计划、管理和控制过程。物流信息化,是指物流企业运用现代信息技术对物流过程中产生的全部或部分信息进行采集、分类、传递、汇总、查询等一系列处理活动,以实现对货物流动过程的控制,从而降低成本,提高效益。物流企业信息化的目的是通过建设物流信息系统,提高信息流转效率,降低物流运作成本。 2.1.2我国物流发展状况我国物流有了一定的发展,目前还没有形成一个比较完整的体系,从总体来说,我国的物流的发展仍处于起步阶段,主要表现在:1、部分省市开始重视现代物流的发展近几年来,我国部分省市政府已开始认识到物流对于推动经济发展、改善投资环境,以及提高地区经济和工商企业在国内外市场竞争能力的重要性,把发展现代物流作为一项涉及经济全局的战略性问题来抓。2、一些工商企业开始重视物流管理我国一些工商企业已开始认识到物流是企业降低物资消耗、提高劳动生产率之外,能够使企业增加效益和增强竞争能力的“第三利润源”,强化企业的物流管理,取得了明显的收效。3、运输、仓储及货代企业逐步向物流企业发展随着我国社会物流需求的增加,以及对物流认识的深化,我国在计划机制下形成的一大批运输、仓储及货代企业,为适应新形势下竞争的需要,正努力改变原有单一的仓储或运输服务方向,积极扩展经营范围,延伸物流服务项目。逐渐向多功能的现代物流方向发展。4、物流企业开始重视物流服务质量管理物流的本质是服务,物流服务质量是物流企业生命的保证,它直接关系到物流企业在激烈竞争中的成败。我国的一些物流企业开始把提高服务质量作为与国际接轨、进入国际物流领域的入门证。5、信息技术和通讯技术已逐步在物流业务中运用 我国在上世纪90年代初期物流活动中开始应用了计算机网络技术。随着国际互联网在商业领域的应用,信息技术在物流领域有了突破性进展,促进了我国以网络物流为基础的物流业的迅速发展。6、为电子商务提供服务的物流企业有了发展随着计算机网络的普及,电子商务将会迅速发展,必将需要完善的物流配送系统为之服务。为了适应这一要求目前我国已出现了为电子商务服务的以高科技信息技术为基础的第三方物流企业,它们充分利用互联网、无线通信、条形码等现代信息技术以代理的形式,对物流系列实行统一管理,建立了全国性的、快速的、以信息技术为基础的专门服务于电子商务的物流服务系统。7、物流研究和技术开发工作取得了一定进展随着我国物流的发展,从九十年代以来,我国物流理论界不仅将国外先进的物流理论和经验,向国内做了大量介绍,同时借鉴国外物流理论研究成果结合我国的实际,在物流系统建设、物流规划方法、物流企业的发展战略方面都取得了丰硕的成果,对我国物流发展起到了有益的作用。8、国外物流企业开始进入中国由于我国物流企业的经营规模、管理技术和管理水平相对落后,其服务质量还很难满足一些企业,特别是跨国公司对高质量物流服务的需求,因此,近年来国际上一些著名物流企业普遍看好我国物流市场,陆续进入我国,在我国许多地方开始建立物流网络及物流联盟。2.1.3现代物流的发展趋势随着经济全球化步伐的加快,科学技术尤其是信息技术、通讯技术的发展,跨国公司的出现所导致的本土化生产、全球采购、全球消费趋势的加强,现代物流的发展呈现出新的特点。1、电子物流的兴起基于网络的电子商务的迅速发展促使了电子物流(ELogistics)的兴起。企业通过互联网加强了企业内部、企业与供应商、企业与消费者、企业与政府部门的联系和沟通,相互协调,相互合作。消费者可以直接在网上获取有关产品或服务信息,实现网上购物。2、物流规模和物流活动的范围进一步扩大,物流企业将向集约化与协同化发展21世纪是一个物流全球化的时代,企业之间的竞争将十分激烈。要满足全球化或区域化的物流服务,企业规模必须扩大形成规模效益。3、物流服务的优质化和全球化随着消费多样化、生产柔性化、流通高效化时代的到来,社会和客户对物流服务的要求越来越高,物流服务的优质化是物流今后发展的重要趋势。5个亮点“Right”的服务,即把好的产品(The right porduct)在规定的时间(At the right time)、规定的地点(In the right place),以适当的数量(In the right quantity)、合适的价格(At the right Price)提供给客户,将成为物流企业优质服务的共同标准。物流成本己不再是客户选择物流服务的唯一标准,人们更多的是注重物流服务的质量。4、电子商务物流步入发展快车道因为物流与电子商务密不可分,因此,下面探讨电子商务物流问题。近年来,我国电子商务经过不断探索和调整,步入了跨越式发展的轨道。自2002年以来,电子商务市场一直保持着稳定的发展势头,电子商务交易额持续高速增长。2007年上半年,中国电子商务市场的交易额就已超过13200亿元,明显高于2006年电子商务市场全年11000亿元的交易额。随着电子商务市场的迅速扩展,各种电子商务创新活动不断展开,B2B、B2C、C2C行业电子商务发展各具特色,极大地促进了物流的发展以及配送体系的建立,并刺激了移动与物流相结合。显然,经过多年的发展,我国物流虽然存在不足,但是,建立现代物流信息系统的条件已经成熟。2.2 MVC模式现阶段绝大部分企业应用软件,都是基于B/S(浏览器/服务器)架构的,其中的服务器就是Web服务器。可见,Web应用是目前广泛使用的应用模式,而Struts是一个具有很好的实用价值的Web MVC框架。为了下文更好地介绍J2EE平台和Struts MVC框架,首先介绍软件开发模式,然后介绍MVC模式。2.2.1软件开发模式1、什么是开发模式软件开发模式是一个应用程序的半成品,开发模式提供了可在应用程序之间共享的、可复用的公共结构,开发者可以把模式融入自己的应用程序,并加以扩展,以满足特定的需要。2、为什么使用开发模式(1)实现重用开发模式的最大好处就是重用。重用代码的增加能够提高软件生产效率和软件质量。(2)节省开发时间成熟的模式不仅帮助开发人员完成一些基础工作,而且能够处理系统很多细节问题,比如事务处理、安全性、数据流控制,节省了开发时间,开发人员可以集中精力完成系统的业务逻辑设计。3、多层结构因为模式通常与多层结构有关,因此,这里介绍一下软件的多层结构。这里所说的多层结构是指三层结构。这三层的关系见图2-1三层结构图。下面简述这三层结构。(1)表现层主要是JSP和HTML页面,用于接受用户的请求,以及返回操作数据,是应用程序的入口。(2)业务逻辑层主要是对数据层的操作,对数据业务逻辑进行处理。如果说数据层是积木,那么业务逻辑层就是对这些积木的搭建。(3)数据访问层主要是对原始数据的操作层,具体为业务逻辑层或表现层提供数据服务。用户界面包业务逻辑包数据访问包数据库 表现层 业务逻辑层 数据访问层图2-1三层结构图2.2.2MVC概述MVC是一种目前广泛流行的软件设计模式, M代表模型(Model),V代表视图(View),C代表控制器(Controller)。MVC设计模型即把一个应用的输入、处理、输出流程按照M-V-C的方式进行分离。MVC的目的是增加代码的重用率,减少数据表达、数据描述和应用操作的耦合度。同时,也使得软件的可维护性、可修复性、可扩展性、灵活性以及封装性大大提高。MVC模式的结构如图2-2 MVC结构图所示。模型(Model)封装应用程序状态处理业务流程通知业务状态更新状态更新视图(View)显示模型状态接受数据更新请求发送用户请求给控制器控制器(Controller)接受用户请求调用模型响应用户请求选择视图显示响应结果状态查询通知数据更新选择视图用户请求图2-2 MVC结构图模型(Model)负责业务流程/状态的处理以及业务网规则的制定,是从现实世界中挖掘出来的对象模型。模型封装了数据和对数据的操作,是实际进行数据处理和计算的地方。视图(View)是应用和模型之间的接口,它负责将应用显现给用户和显示模型的状态。MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。控制器(Controller)负责视图和模型之间的交互。主要负责以下两方面的动作:1、把用户的请求分发到相应的模型。2、将模型的改变及时反应到视图上。控制器并不做任何的数据处理。例如,用户单击一个链接,控制器接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。2.2.3 MVC在Web上的应用通常开发基于Web的应用系统时,View对象是由美工、HTML/JSP设计人员或者系统管理员来负责管理的;Controller对象由应用开发人员开发实施;Model对象(商业规则对象和商业数据对象)则由开发人员、领域专家和数据库管理员共同完成。显示逻辑在表现层或客户端控制,可以通过Servlet或JSP动态地生成HTML。1、View在Web系统中的应用View对象代表系统的显示,它完全存在于表现层,一般由JSP、Java Bean和自定义标签组成。JSP通过Java Bean来读取Model对象中的显示,Model对象和Controller对象则负责对Java Bean的数据更新。2、Model对象在Web系统中的应用Model对象代表了商业规则和商业数据,存在于表现层。有些数据需要存储在数据库中,如用户的账号信息、公司的数据等。系统也有一些数据不需要记录在数据库里,如某用户浏览的当前产品目录、用户的购物内容。3、Controller在Web系统中的应用Controller对象协调Model对象和View对象,把用户请求翻译成系统识别的事件。在表现层,一般有MainServlet(或Main.jsp)接受请求,它可以决定下一个调用的页面。2.2.4 MVC的好处1、各施其职,互不干涉在MVC模式中,三个层各施其职,一旦哪一层的需求发生了变化,只需要更改相应层中的代码而不会影响到其它层中的代码。2、有利于开发中的分工在MVC模式中,由于按层把系统分开,那么就能更好地实现开发中的分工。网页设计人员可以开发视图层中的JSP页面,对业务熟悉的人员可以开发业务层,而其他开发人员可以开发控制层。3、有利于组件的重用分层后有利于组件的重用。例如控制层可独立成一个通用的组件,视图层也可做成通用的操作界面。2.3 J2EE平台与SSH框架2.3.1 J2EE平台1、什么是J2EEJ2EE是使用Java进行企业应用开发的一套扩展规范,它提供基于组件设计、开发、部署和管理企业应用的解决方案。J2EE规范基于J2SE平台,它不仅巩固了标准版中的许多优点,例如,“一次编译,随处运行”的跨平台特性、方便高效的数据库JDBC技术、能够在Internet应用中确保数据完整性的安全模式以及支持多线程技术等。J2EE为建立具有高可用性、高可扩展性、易维护性的企业及系统提供了完美的机制和架构模型。2、J2EE体系架构概述J2EE使用多层的分布式架构模型,模型由组件组成,应用程序的逻辑根据功能划分被封装在各组件中。J2EE体系一般分为4层:客户层、Web应用层、企业组件层(也称为业务层或服务层)、企业信息系统层。J2EE体系架构中客户端和企业信息系统抛开,单纯对系统中应用程序分层,Web应用层、企业组件层(业务层)可以细化为以下4层:表示层(View)、控制层(Controller)、服务层(Service)和数据持久层(Data Persistence)。其中: 表示层(View):用于显示给用户的操作界面,接受输入数据。 控制层(Controller):用于接受客户端的请求,再根据具体的请求,调用不同的事务逻辑,并将结果返回到合适的页面。 服务层(Service):用于操作持久层。数据持久层(Data Persistence):表示数据库的持久内存储存对象。J2EE架构集成了先进的软件体系架构思想,具有采用多层分布式应用模型、基于组件并能重用组件、统一完全模型和灵活的事务处理控制等特点。在J2EE系统开发过程中,大致可以分为五大步骤:需求、分析、设计、编码、测试。而体系结构是软件的骨架,是最重要的基础。体系结构是涉及到每一步骤中。一般在获取需要的同时,就应该开始分析软件的体系结构。体系结构现在一般是各个大的功能模块组合成,然后描述各个部分的关系,J2EE平台已经为开发者提供了整个软件系统的体系结构。 2.3.2 Struts框架在J2EE平台下,Struts是比较流行的架构。实际上,Struts是将Model、View、Controller这些概念分别对应到了不同的Web应用组件,因此,可以说Struts是MVC设计模式的具体实现。1、Struts实现MVC的机制在Struts设计模型中,模型由实现业务逻辑的JavaBean组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件与Struts标签库构成。如图2-4 Struts结构图所示,显示了Struts实现的MVC设计模式。(1)视图Struts中的视图部分可以采用JSP来实现。在这些JSP文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或客户化标签,如Struts标签库中的标签。浏览器ActionJava Web服务器(控制器)ActionServlet(视图)JSP或Struts标签库Action(模型)JavaBean(Struts配置文件)Struts-config.xml图2-3 Struts结构图当用户通过视图向Servlet发送数据时,使用了Struts中的ActionForm组件,该组件通常也归于视图。ActionForm的作用就是将用户提交的数据编译成Bean对象,除了基本的getXXX()和setXXX()方法外,它还提供了另外一些方法用于对用户提交的数据进行一些初始化以及验证。(2)模型模型表示应用程序的状态和业务逻辑。(4)控制器Struts提供了一个控制器组件ActionServlet,它继承自HttpServlet,并重用了HttpServlet的doGet()、doPost()方法,可以接受HTTP响应,并进行转发。同时还提供了使用XML进行转发Mapping(映射)的功能。(5)配置struts-config.xml用户请求是通过ActionServlet来处理和转发的。这需要一些描述用户请求路径和Action映射关系的配置信息。在Struts中,这些配置映射信息都存储在特定的XML文件Struts-config.xml中。在该配置文件中,每一个Action的映射信息都通过一个元素来配置。这些配置信息在系统启动的时候,被读入内存,供Struts在运行期间使用。在内存中,每一个元素都对应一个ActionMapping类的实例。2、Struts工作流程如果在Web应用中采用Struts,应该在Web应用启动时就加载并初始化ActionServlet,ActionServlet从Struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中,例如Action的映射信息存放在Action Mapping对象中。当Action Servlet接收到一个客户请求时,将执行如下流程:(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。(3)根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的Validate()方法。(4)如果ActionForm的Validate()方法返回null或返回一个不包含Action Message的ActionErrors对象,就表示表单验证成功;如果ActionForm的Validate()方法返回一个包含一个或多个Action Message的ActionErrors对象,就表示表单验证失败,此时ActionServlet将直接把请求转发给包含用户提交表单的JSP组件,在这种情况下,不会再创建Action对象并调用Action的execute()方法。(5)ActionServlet根据Action Mapping实例包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。(6)Action的execute()方法返回一个ActionForward对象,ActionServle再把客户请求转发给ActionForward对象指向的JSP组件。(7)ActionForward对象指向的JSP组件生成动态网页,返回给客户。3、Struts优缺点(1)优点 Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts作为规范的J2EE架构中,应用数据的表示应该被限制在相应的层内,而不扩散到其它层,这样可以降低数据在应用层之间的耦合性,提高J2EE整体架构的可维护性和可扩展性。除此之外,Struts的优点主要集中体现在Taglib和页面导航两个方面。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。关于页面导航,Struts使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处,对团队合作开发,这种优势体现得很突出。(2)缺点 Taglib是Struts的一大优势,但需要一个持续学习的过程,甚至还会打乱开发者网页编写的习惯;Struts将MVC的Controller分开,在获得结构更加清晰的同时,也增加了系统的复杂度;它对类和一些属性、参数的命名显得有些随意,给使用带来一些不便。2.4 Hibernate框架2.4.1 Hibernate简介Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate不仅负责从Java类到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。2.4.2 Hibernate优点 1、 对象/关系数据库映射(ORM)它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想。2、 透明持久化(persistent)带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBeans/POJO,这个对象没有实现第三方框架或者接口,唯一特殊的是他们正与(仅仅一个)Session相关联。3、 事务Transaction(org.hibernate.Transaction)应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。某些情况下,一个Session之内可能包含多个Transaction对象。尽管是否使用该对象是可选的,但无论是使用底层的API还是使用Transaction对象,事务边界的开启与关闭是必不可少的。4、 它没有侵入性,即所谓的轻量级框架5、移植性会很好6、 缓存机制,提供一级缓存和二级缓存7、简洁的HQL编程2.4.3 Hibernate缺点1、Hibernate在批量数据处理时有弱势2、 针对单一对象简单的增删查改,适合于Hibernate,而对于批量的修改,删除,不适合用Hibernate,这也是OR框架的弱点;要使用数据库的特定优化机制的时候,不适合用Hibernate。2.5 Spring框架2.5.1 Spring简介Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 1、目的:解决企业应用开发的复杂性 2、功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 3、范围:任何Java应用 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 4、轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 5、控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 6、面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 7、容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。 8、框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。2.5.2 Spring优点1、Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题。 2、Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。 3、Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。 4、Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。 5、Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。 6、使用Spring构建的应用程序易于单元测试。 7、Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。 8、Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。 9、Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。 3 系统总体设计3.1需求分析 3.1.1 系统概述与目标 系统需求分析是整个设计过程的基础,是系统设计的起点。系统建设前首先必须准确了解与分析用户的知识需求。需求分析是否准确反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到交付的产品是否合理和实用。需求分析如果做得不好,甚至会导致整个系统设计的返工重做。需求分析的重点是调查、收集与分析用户在知识管理中的知识要求、处理要求、安全性与完整性要求。知识要求是指用户需要从系统中获得知识的内容与性质,根据用户的知识需求就可以确定在系统中要存储哪些知识;处理要求是指用户要求完成什么处理功能,还有对处理时间和处理方式的要求。系统必须能够满足用户的各类需求,需求分析的重点是明确系统的应用场景和环境。通过对一些典型的物流管理系统的考察、分析,要求本系统具有以下特点。1、采用B/S结构,基于浏览器管理界面,无需专业人士维护;2、功能符合物流管理实际要求,操作简单,扩展性强,稳定性高;3、系统无操作系统限制,方便不同平台之间的移植。通过对物

温馨提示

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

评论

0/150

提交评论