仓库管理系统的设计与实现本科设计说明.doc
.1/59毕业论文毕业论文题目题目:仓库管理系统仓库管理系统的设计与实现的设计与实现.毕业设计(论文)原创性声明和使用授权说明毕业设计(论文)原创性声明和使用授权说明原创性声明原创性声明本人重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。作 者签 名:日期:指导教师签名:日期:使用授权说明使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。作者签名:日期:学位论文原创性声明学位论文原创性声明本人重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日.2/59学位论文使用授权书学位论文使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300 字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于 1 万字(不包括图纸、.3/59程序清单等),文科类论文正文字数不少于 1.2 万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体与大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用 A4 单面打印,论文 50 页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订指导教师评阅书指导教师评阅书.4/59指导教师评价:指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 与格 不与格2、学生掌握专业知识、技能的扎实程度 优 良 中 与格 不与格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 与格 不与格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 与格 不与格5、完成毕业论文(设计)期间的出勤情况 优 良 中 与格 不与格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规?优 良 中 与格 不与格2、是否完成指定的论文(设计)任务(包括装订与附件)?优 良 中 与格 不与格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 与格 不与格2、论文的观念是否有新意?设计是否有创意?.5/59 优 良 中 与格 不与格3、论文(设计说明书)所体现的整体水平 优 良 中 与格 不与格建议成绩:建议成绩:优优良良中中与格与格不与格不与格(在所选等级前的画“”)指导教师:指导教师:(签名)单位:单位:(盖章)年年月月日日评阅教师评阅书评阅教师评阅书.6/59评阅教师评价:评阅教师评价:一、论文(设计)质量一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规?优 良 中 与格 不与格2、是否完成指定的论文(设计)任务(包括装订与附件)?优 良 中 与格 不与格二、论文(设计)水平二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 与格 不与格2、论文的观念是否有新意?设计是否有创意?优 良 中 与格 不与格3、论文(设计说明书)所体现的整体水平 优 良 中 与格 不与格建议成绩:建议成绩:优优良良中中与格与格不与格不与格(在所选等级前的画“”)评阅教师:评阅教师:(签名)单位:单位:(盖章)年年月月日日.I/59教研室(或答辩小组)与教学系意见教研室(或答辩小组)与教学系意见教研室(或答辩小组)评价:教研室(或答辩小组)评价:一、答辩过程一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 与格 不与格2、对答辩问题的反应、理解、表达情况 优 良 中 与格 不与格3、学生答辩过程中的精神状态 优 良 中 与格 不与格二、论文(设计)质量二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规?优 良 中 与格 不与格2、是否完成指定的论文(设计)任务(包括装订与附件)?优 良 中 与格 不与格三、论文(设计)水平三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 与格 不与格2、论文的观念是否有新意?设计是否有创意?优 良 中 与格 不与格3、论文(设计说明书)所体现的整体水平 优 良 中 与格 不与格.II/59仓库管理系统仓库管理系统摘要摘要21 世纪是一个信息化的时代,企业只有敏捷的获取生产信息和市场信息,才能置身于国际大舞台,这就离不开先进的企业管理系统ERP。而仓库管理系统正是 ERP 中一个最重要的组成部分,也是企业生产过程的一个重要组成部分。企业要在现代化国外市场取得一席之地,就必须使其仓库管理体系达到现代化水平,也即使仓库管理从原始的手工阶段走向方便快捷的计算机实现阶段。选择合理的仓库管理方法,不仅会促进销售,改善生产秩序,做到均衡生产,而且会降低库存的占用资金,最终使企业获得更好的经济效益。本仓库管理系统是针对的实际需求,从实际工作出发,在分析目前仓库管理系统中存在的问题的基础上,结合管理信息系统开发的概念、结构与系统开发的基本原理和方法,并利用计算机运算速度快、存储信息容量大、处理逻辑问题强、功 能强 大的优势,采用目前流行的 B/S 结构和流行框架 SSH(Struts+Spring+Hibernate)和 MVC 设计模式。通过 Internet/Intranet 实现对物资进行管理,特别是对物资基本信息管理、物资调配信息等进行完整的监控而开发出来的。从查询与决策信息的管理需求出发,针对性强,功能齐备,旨在通过帮助该库存管理实现信息化、网络化,以提高管理的效率。本仓库管理信息系统主要包括“入库管理”、“出库管理”、“基本信息管理”和“系统用户管理”等模块。它主要对物资的出入库进行统计和核算,与时准确地掌握商品库存情况,并动态反映物资的增减变动,为的决策提供基础数据。关键词关键词:仓库管理系统;B/S;SSH;MVC评定成绩:评定成绩:优优良良中中与格与格不与格不与格教研室主任(或答辩小组组长):教研室主任(或答辩小组组长):(签名)年年月月日日教学系意见:教学系意见:系主任:系主任:(签名)年年月月日日.III/59WMS-WarehouseWMS-Warehouse ManagementManagement SystemSystemAbstractAbstract21 century is an informative ERP.Enterprises which could activate inthe international community must dependent on the acquisition of themanufacture and marketing information.This needs advanced enterprisemanagement system-ERP.And warehouse management system is a mostimportant part of ERP.To obtain a place in the inner and internationalmarket,the warehouse management system of enterprises must modernize.Namely,the management of warehouse must transmit from primitive handmadestage to convenient computerization.Choosing proper method of warehousemanagement,not only to boost market,ameliorating the order of production,achieving the end of equilibrium production.It can also decrease thefundsofstockings.Ultimately,enterprisesobtainbettereconomicsbenefit by using this software.How to reduce the cost,improve work efficiency is materials storemanagers need to solve a practical problem.This material managementinformation system is aimed at the actual demand,from actual conditions,and on the analysis of the current material management information systembasedontheproblemsexistingintheinformationsystemdevelopment,management concept,structure and system development,the.IV/59basic principle and methods,and use of computer operation speed andstorage capacity and processing information,logical problem of powerfuladvantages,thepopularityofB/Sstructureandthethreepandemic framework of SSH(Struts+Spring+Heibernate)and MVC designpattern,through the Internet/one of enterprise management,especiallyfor basic information management,materials,materials,information ofdeployment and monitoring.From the management decision information queryandpertinence,istohelptheenterprise,byrealizinginformationization,the network management of material,in order toimprove the efficiency of the enterprise management.This material management information system mainly include materialinventory management,and material outbound management and materialand the basic information management system user management,etc.Itmainly supplies for the enterprise to make statistics and accounting,timely and accurately grasp the dynamic inventory goods,and reflects thechanges,enterprise or business the decision to provide basic data.KeyKey Words:Words:WMS-Warehouse Management System;B/S;SSH;MVC;.1/59目录目录摘要摘要 IIIIAbstractAbstractIIIIII目录目录 1 11 1绪论绪论 1 11.1 课题设计的背景 11.2 课题设计的目的和意义 11.3 课题的主要研究工作 21.4 论文结构安排 22 2课题涉与的关键技术课题涉与的关键技术 3 32.1MVC 设计模式简介 32.2 JSP 技术简介 32.2.1 JSP 工作原理 52.2.2 JSP 体系结构 52.2.3 JSP 的特点 62.3 SSH 框架简介 62.3.1 定义 62.3.2 Struts272.3.3Spring72.3.4Hibernate82.4 Sql Server 数据库简介 92.4.1 SQL Server2005 简介 9.2/592.4.2“结构化查询语言”(SQL)简介 93 3系统需求分析系统需求分析 11113.1 可行性分析 113.1.1 技术可行性 113.1.2 经济可行性 113.2 功能需求分析 113.3 数据需求分析 123.5 性能需求分析 144 4系统概要设计系统概要设计 15154.1 系统功能设计 154.2 数据库的设计 164.2.1E-R 图的设计 164.2.2 数据库表的设计185 5系统的详细设计与实现系统的详细设计与实现 21215.1 登陆页面的设计与实现 215.2 系统安全管理的实现 235.3 系统用户管理 275.5 基础信息维护 285.5 物资入库出库管理 305.6 系统配置时的一些关键代码 335.6.1 Struts.xml 配置 335.6.2 web.xml 配置 36.3/596 6系统测试系统测试 39396.1 测试概述 396.2 数据库测试 396.3 测试实例 407 7总结总结 4444参考文献参考文献 4545致致错误!未定义书签。错误!未定义书签。毕业设计(论文)知识产权声明毕业设计(论文)知识产权声明错误!未定义书签。错误!未定义书签。毕业设计(论文)独创性声明毕业设计(论文)独创性声明错误!未定义书签。错误!未定义书签。附附 录录错误!未定义书签。错误!未定义书签。.1/591 1绪论绪论1.11.1 课题设计的背景课题设计的背景当今社会是一个信息社会,一个知识经济时代。自世界上第一台计算机ENINC(Electronic numerical integrator and calculator)于 1946 年在美国问世到现在,计算机业飞速发展,技术淘汰指标高的惊人,价格下降以与软件应用的快速扩展引发了以信息处理计算机化为标志的“微机革命”,随之而来的是以全球信息网络普与和全球信息共享为标志的“全球信息网络革命”的蓬勃兴起。可见,世界已进入在计算机信息管理领域中激烈竞争的时代,计算机已经变得普通得不能再普通的工具,如同我们离不开的自行车、汽车一样。随着企业规模的扩大,管理信息系统也发挥越来越重要的作用。作为企业管理信息系统关键组成部分的仓库管理系统的应用给企业带来巨大的效益。采用仓库管理系统将使企业改变其传统的手工记录模式,应用数据库技术使海量数据的存储与处理成为很方便的事情,这样可大幅缩短主要业务流程的处理时间,提高对市场的响应能力。“物流服务最初起源于军事上的运用”,“物流”这一概念起源于二战期间的美国,英文称之为 Logistics 或者 Physical Distribution,前者的使用率更高一些。物流一词最早被描述为泛指军队运输、补给和屯驻,后来被广泛用来描述商品实体的物理性流通活动,成为流通经济学中的术语。随着经济的全球化以与中国经济改革的逐渐深化,各面临着越来越多激烈的竞争。我们应该承认,谁掌握的知识多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能在各种竞争中立于不败之地。库存管理是一般工业、商业生产管理环节中重要的一环,所以,有效地进行物资基本信息管理、物资调配信息等进行完整的监控已经成为了各生存和发展的头等要事。本仓库管理信息系统就是在这样的信息技术广泛应用的时代背景下,本着用户的需求,借助于现代化的管理方法和信息技术开发出来的。1.21.2 课题设计的目的和意义课题设计的目的和意义基于给管理者与物资创造一个能够与时进行信息交互的平台,仓库管理系统就孕育而生了,希望通过它可以将管理者和物资紧密相连起来,实现便捷管理的目标。该系统继承了传统的管理方法使得管理者更加便捷、迅速、准确的掌握仓库信息,通过该仓库管理系统得到信息的反馈,同时也可以进行一系列的操作来对物资进行入库和出库等信息登记。这大大的缩短了工作时间,且提高了工作效率。仓库管理系统的投入,将使仓库的管理更加正规化,为产品的出入库管理部.2/59门和销售部门提供了方便,降低了仓库的损耗。企业可以对售出的产品进行跟踪服务,同时也免去了销售人员按以往惯例亲自前往用户处去核实货物情况的麻烦,提高了办事效率,节省了费用,而且还避免了不必要的业务纠纷,维护了企业长期与用户建立的良好信誉。1.31.3 课题的主要研究工作课题的主要研究工作该系统采用了现在技术界很流行的 Java 语言来做开发实现,运用各种性能均 良 好 的 数 据 库 MYSQL,页 面 流 行 语 言 JSP,主 流 的 三 个 框 架SSH(Struts+Spring+Hibernate),热门的设计模式 MVC。将整个系统有机的联系起来,使其运行流畅,简单易懂。Java 不仅是一个很好的编程工具还是一个很好的平台,封装性非常好,良好的面向对象编程思想,Sqlserver 关系型数据库的优势,加上安全性能好,使系统的可用性大大提高了。1.41.4 论文结构安排论文结构安排本论文以标准的仓库管理模式为蓝本,根据软件工程的理论,开发出基于Java EE 的适用于中小单的位仓库管理系统。论文首先研究了系统开发的可行性,然后进行了需求分析,并将需求分析以文档的形式反馈给用户,并和用户进行交流进一步确认需求,然后根据需求分析采用了结构化分析方法进行了系统分析设计,并进行了数据库的建模工作,根据模型构建了数据库。后台数据库采用 SqlServer2005 完成。基于开放的开发架构Java EE,实现了系统登录模块、主窗口模块、仓库人员管理模块、入库模块、出库模块等。最后对全文进行了总结,对今后的工作提出了展望本论文共有七章,具体组织如下:第一章:通过分析,提出仓库管理系统开发的目的和意义,此次研究的主要任务,以与本次论文的组织。第二章:主要介绍开发本系统所采用的相关技术。第三章:系统需求分析,在此章节主要进行用户需求分析和性能需求分析以与系统开发环境的要求。第四章:系统概要设计,在这个阶段要得到数据库的设计以与系统整个流和每个功能模块的设计。第五章:系统的详细设计与实现,主要通过界面形式展现出来。第六章:进行系统测试包括测试的任务与目标、测试方案和测试用例。第七章:对全文以与整个系统的实现过程进行了总结,给出了系统设计的体会与收获。.3/592 2课题涉与的关键技术课题涉与的关键技术2.1MVC2.1MVC 设计模式简介设计模式简介MVC(Model-View-Controller),即模型、视图、控制器。它是 Java 应用中比较热门的一种编程思想,通过将一个应用的输入、处理、输出的应用程序进行分离,使得这样一个应用被分为三层-模型层、视图层、控制层,从而使得整个应用清晰化、简洁化,更易于程序员编码。该模式的关系状态图如下 2.1 所示:图 2.1 MVC 状态关系图该模型的优点:1)MVC 具备多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。2)模型返回的数据不带任何显示格式,因而这些模型也可直接应用于面向接口编程。3)一个应用被分离为三层,有些情况下只需改变其中一层就能满足应用的改变。控制层可以包含用户请求权限的控制。4)有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些一样的特征,有利于通过工具产生并管理程序代码。该模型的缺点:它增加了系统结构和实现的复杂性、视图域控制器间连接往往过于紧密、试图对模型数据访问效率降低等。2.22.2 JSPJSP 技术简介技术简介JSP(Java Server Page 服务器网页)是从 1998 年开始出现的新技术。由 Sun.4/59公.5/59司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于 JavaServlet以与整个 Java 体系的 web 开发技术。在传统的网页 HTML 文件(*.htm,*.html)中加入脚本片段和 JSP 标记(Tag),构成 JSP 网页(*.jsp)。JSP 技术为创建显示动态生成容的 web 页面提供了简便的方法。JSP 作为 Java 家族的一员,承袭了Java 的特点,即跨平台的特性,也即一次编译,到处运行。在国外,己经大量使用 JSP 作为网络应用程序的开发工具,而在国,尽管JSP 还不是主流开发技术,但是由于 JSP 的强大优势,许多都已经准备转向 JSP,利用 JSP 来开发动态。2.2.12.2.1 JSPJSP 工作原理工作原理JSP 是面向服务器的,因此支持任何浏览器。当 Web 服务器和 JSP 引擎遇到访问 JSP 网页的请求时,JSP 引擎将请求对象发送给服务器端的相关组件,比如JavaBean 组件、Servlet 或 E 等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回 JSP 引擎。JSP 引擎将响应对象传递给 JSP 页面,根据 JSP 页面的 HTML 格式完成数据编排,最后 Web 服务器和 JSP 引擎将格式化后的 JSP 页面以 HTML 格式返回客户浏览器。这就是当前构建中广泛采用的浏览器Web 服务器后台数据库的三层架构模式。因为 JSP 所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。2.2.22.2.2 JSPJSP 体系结构体系结构JSP 开发标准给出了两种使用 JSP 的技术,可以归纳为模式一、模式二。模式一:JSP+JavaBeans 技术在这种模式中,JSP 页面独自响应请求并将处理结果返回给客户。Bean 处理所有数据访问,JSP 实现页面的表现,以实现容生成与显示相分离。当处理复杂的大型应用时,页面被嵌入大量的脚本或 Java 代码段,当需要处理的商业逻辑复杂时,这种情况会变得非常糟糕,大量的嵌代码使得页面程序变得复杂,对于前端界面设计人员,这是不可思议的事情。所以模式一可用于小型应用,不能够满足大型应用的需要。模式二:JSP+Servlet+JavaBeans 技术 Servlet 技术是一种采用 Java 技术来实现 CGI 功能的一种技术,Servlet 技术非常适于服务器端的处理和编程,并且Servlet 会长期驻留在存。从开发的观点看,模式二具有更清晰的页面表现,清楚的开发者角色划分,在大规模项目开发中,模式二更被采用,模式二也更符合当前流行的 MVC 结构(Model/view/controller),其中 Servlet 对应 controller,处于控制者的位置,处理请求,负责生成 JSP 中使用的 Beans 组件或对象,并判断应将请求传递给哪个 JSP 等,JSP 对应 view,负责生成最终的动态网页并返回给浏览器。而JavaBeans 对应的是 Model,实现各个具体的应用逻辑与功能。.6/592.2.32.2.3 JSPJSP 的特点的特点1)简化的页面生成技术JSP 页面用标准的 HTML 或 XML 命令来处理页面的格式化和布局设计,而用类似 HTML、XML 的标记和 Java 语言编写的脚本程序生成页面容。这使得页面形式与页面容互相独立,非常有利于大型项目的分工合作。2)与 Java 平台有机集成JSP 技术是 Java 2 平台的重要组成部分,JSP 使用 Java 语言作为它的脚本语言。在 JSP 页面中可以使用几乎所有的 Java 组件和 Java API,这就能充分发挥出 Java 语言的强大功能。使用 JSP 技术可以创建具有高度可伸缩性和可靠性的 Web 应用程序。3)硬件平台和服务器无关性JSP 作为 Java 家族的一员,秉承了 Java 技术的“一次编写,随处可用(WriteOnce,Rum Anywhere)”的特性,可以运行于大多数流行的操作系统平台与 Web服务器,这种与服务器硬件和操作系统平台的无关性是 JSP 相对于其它动态网页技术最大的一个优点。4)功能可扩展性如同Microsoft的JSP技术可以通过ActiveX/COM组件来扩展功能一样,JSP可以通过 JavaBean 和 E(Enterprise JavaBean)以与自定义的标记来扩展功能。JSP 可以通过 JDBC,与诸如 Oracle、SQL Server 这样的大型关系数据库进行连接。JSP 提供了一些隐含对象。这些隐含对象在 JSP 页面中可以直接引用,而不必首先声明。利用 JSP 提供的这些隐含对象,可以使脚本功能更加强大,并且编程更加容易、方便。例如,利用 request 对象,可以很容易地接收用户在 HTML表单中提交的信息。2.32.3 SSHSSH 框架简介框架简介2.3.12.3.1 定义定义集成 SSH 框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期搭建结构清晰、可复用性好、维护方便的 Web应用程序。其中使用 Struts 作为系统的整体基础架构,负责 MVC 的分离,在Struts 框架的模型部分,控制业务跳转,利用 Hibernate 框架对持久层提供支持,Spring 做管理,管理 Struts 和 Hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的 Java 对象,然后编写基本的 DAO(Data Access Objects)接口,并给出 Hibernate 的 DAO 实现,采用Hibernate 架构实现的 DAO 类来实现 Java 类与数据库之间的转换和访问,最后.7/59由 Spring 做管理,管理 Struts 和 Hibernate。系统的基本业务流程是:在表示层中,首先通过 JSP 页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后 Struts 根据配置文件(struts-config.xml)将 ActionServlet 接收到的 Request 委派给相应的 Action处理。在业务层中,管理服务组件的 Spring IoC 容器负责向 Action 提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于 Hibernate 的对象化映射和数据库交互,处理 DAO 组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。2.3.2Struts22.3.2Struts2Struts 对 Model,View 和 Controller 都提供了对应的组件。ActionServlet,这个类是 Struts 的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自 ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP 页面显示。Model 部分:由 ActionForm 和 JavaBean 组成,其中 ActionForm 用于将用户的请求参数封装成 ActionForm 对象,该对象被 ActionServlet 转发给 Action,Action 根据ActionForm 里面的请求参数处理用户的请求。JavaBean 则封装了底层的业务逻辑,包括数据库访问等。View 部分:该部分采用 JSP(或 HTML、PHP)实现。Struts 提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与 Model 的有效交互,并增加了现实功能。对应上图的 JSP 部分。Controller 组件:Controller 组件有两个部分组成系统核心控制器,业务逻辑控制器。系统核心控制器,对应上图的 ActionServlet。该控制器继承了Servlet类,因此可以配置成标注的 Servlet。该控制器负责拦截所有的请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用 Model来完成处理。对应 Action 部分。2.3.3Spring2.3.3SpringSpring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用.8/59开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 E 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。目的:解决企业应用开发的复杂性。功能:使用基本的 JavaBean 代替 E,并提供了更多的企业应用功能。围:任何 Java 应用。简单来说,Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量从大小与开销两方面而言 Spring 都是轻量的。完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。并且 Spring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于 Spring 的特定类。控制反转Spring 通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为 IoC 与 JNDI 相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建基于一个可配置原型(prototype),你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以与它们是如何相互关联的。然而,Spring 不应该被混同于传统的重量级的 E 容器,它们经常是庞大与笨重的,难以使用。框架Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring中,应用对象被声明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为 Spring 中的各种模块提供了基础支持。2.3.4Hibernate2.3.4HibernateHibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 E 的 J2EE 架构中取代 CMP,完成数据持久化的重任。Hibernate 的核心接口一共有 5 个,分别为:Session、SessionFactory、.9/59Transaction、Query 和 Configuration。这 5 个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。Session 接口:Session 接口负责执行被持久化对象的 CRUD 操作(CRUD 的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。)。但需要注意的是Session 对象是非线程安全的。同时,Hibernate 的 session 不同于 JSP 应用中的Session。这里当使用 session 这个术语时,其实指的是 Hibernate 中的session,而以后会将Session 对象称为用户 session。SessionFactory 接口:SessionFactory 接口负责初始化 Hibernate。它充当数据存储源的代理,并负责创建 Session 对象。这里用到了工厂模式。需要注意的是 SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory。Configuration 接口:Configuration 接口负责配置并启动 Hibernate,创建SessionFactory 对象。在 Hibernate 的启动的过程中,Configuration 类的实例首先定位映射文档位置、读取配置,然后创建 SessionFactory 对象。Transaction 接口:Transaction 接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query 和 Criteria 接口:Query 和 Criteria 接口负责执行各种数据库查询。它可以使用 HQL 语言或 SQL 语句两种表达方式。2.42.4 SqlSql ServerServer 数据库简介数据库简介2.4.12.4.1 SQLSQL Server2005Server2005 简介简介SQL SERVER 是Microsoft在关系数据库管系统(RDBMS)方面的开