长春天天手机销售管理系统的设计与实现

长春天天手机销售管理系统的设计与实现

ID:34445378

大小:5.62 MB

页数:63页

时间:2019-03-06

上传者:jjuclb
长春天天手机销售管理系统的设计与实现_第1页
长春天天手机销售管理系统的设计与实现_第2页
长春天天手机销售管理系统的设计与实现_第3页
长春天天手机销售管理系统的设计与实现_第4页
长春天天手机销售管理系统的设计与实现_第5页
资源描述:

《长春天天手机销售管理系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

大连理工大学硕士学位论文长春天天手机销售管理系统的设计与实现姓名:戴雷申请学位级别:硕士专业:软件工程指导教师:吴国伟20080601 大连理工大学专业硕士学位论文摘要随着Internet的普及,电子商务对企业的发展和人们的生活产生着越来越重要的影响。长春市天天手机是结合基于Web的信息系统方便用户网上购买手机。长春市天天手机网上销售系统主要用户功能包括用户注册,用户登陆,购物车功能,商品查询,商品推荐,查看订单,链接等。本文论述了长春市天天手机销售系统的需求分析、系统设计和具体实现工作。其中需求分析从功能需求、性能需求和约束性需求展开,系统设计包括系统总体框架设计、功能设计、安全设计和数据库设计,并最终应用MVC设计模式实现了该系统,在本文的系统实现部分给出了系统的实现方法和过程。在本文的最后,对系统的测试过程和结果进行了描述和说明。本系统能完成查看商品列表,设置购买商品数量,购物车信息查看,前台结账,订单确认功能。在开发过程中,通过应用MVC设计模式实现了表示逻辑和业务逻辑的分离,为系统的开发和维护提供了更大的灵活性和更好的可管理性。通过实践表明,应用这种系统框架可以提高系统开发的效率,同时满足系统扩展性和可维护性的要求。本文所开发的系统,正在试运行,系统运行稳定高效,维护性高。关键词:会员管理;购物车;销售系统 长春天天手机销售管理系统的设计与实现DesignandImplementationofChangChuntiantianshoujiShoppingandManageSystemAbstractWiththepopularityofInteract,e-commerceonthedevdopmentofenterprisesandpeople’Slivesanincreasinglyimportantimpact.tiantianshoujisystemisaWeb-basedinformationsystemtofacilitatethepurchaseofmobilephoneUSerSonline.fianfianshoujisystemmainUSerSofonlinesalesfeaturesincludeuserregistration,USerregistration,shoppingcartfeature,forgoods,commoditiesrecommendedtoviewtheorders,andLinks.ThisarticlediscussestheChangchuntiantianshoujimobilephonesalessystemneedsanalysis,systemdesignandrealizationofconcretework.Oneneedsanalysisfromfunctionalrequirements,performancerequirementsandbindingdemandtocommencesystemdesignincludingtheoverallframeworkofsystemdesign,functionaldesign,securitydesignanddatabasedesignandapplicationoftheultimaterealizationoftheMVCdesignofthesystem,inthispartofthesyStemtoachieveAsystemofmethodsandprocesses.Inthispaper,thelastofthetestingprocessandresultsweredescribedandannotations.Showthesystemcallcompletelistofgoods,setthenumberofgoodspurchased,prospectssettleaccounts,orderconfirmationfunction.Inthedevelopmentprocess,throughtheapplicationofMVCdesignpatternthathaslogicandbusinesslogicofseparation,forthedevelopmentandmaintenanceofsystemstoprovidegreaterflexibilityandbettermanagement.ThroughpracticeshowsthattheapplicationoftheframeworkofsuchasysternCanimprovetheefficiencyofsysterndevelopment,whilemeetingsystemscalabilityandmmntainabilityrequirements.ThisPaperdevelopedbythesyStem,isbeingtest毗thestabilityofthesystemisrunningefficiently,maintainhigh.KeyWords:MemberManagement;shoppingcart;salessystem—II— 独创性说明作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。作者签名:日期:乙000口.6t 大连理工大学硕士研究生学位论文大连理工大学学位论文版权使用授权书本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。作者签名:导师签名:关目堡导师签名:一.丞型!翌.二垒丛年_上月上日 大连理工大学专业硕士学位论文1绪论1。1课题背景意义互联网的普及网络技术的发展为网上购物提供了极大的便利。网上商城呈现出广阔的前景.无店铺零售的悄然兴起,是商业经济发展到一定阶段的产物,也是顺应新的消费需求和技术进步的必然结果。对于传统的有形店铺来说,一家门店选址、地段的优劣,几乎能够决定其未来经营的成败,而城市中的商业网点资源,尤其是优质商业网点资源通常十分稀缺。无店铺零售则大多不存在地段方面的制约。二是经营成本。借助日益发展的科学技术,无店铺零售通常能够省却从生产到销售过程中的许多环节,从而有效降低经营成本与交易成本,带来消费者、商家双赢的局面。三是风险。对于个人来说,网上商店等无店铺零售业态的准入门槛相对较低,运转比较灵活,即使遇到风险,也有船小好掉头的优势。鉴于互联网的优势以及对国内外相关电子商务网站现状的研究分析,我决定以长春市天天手机基于W曲的网上手机销售管理系统中的销售子系统作为我的毕业设计主题。几种流行的Web开发技术比较目前比较流行的Intemet开发方法大概有以下几种方案:ASP,PHP,JSP,ASP.NET等。ASP内含于MicrosoftInternetInformationServer(1lS)中,提供了一个服务器端的脚本运行环境,现在的IIS5.0己经支持ASP3.0了。Web服务器会自动将开发者设计的ActiveServerPages的程序码解释为标准HTML格式,在用户端的浏览器上显示出来,用户端只要使用常规可执行HTML码的浏览器,即可浏览。PHP是一种跨平台的服务器端的嵌入式脚本语言,它大量地借用C,Perl语言的语法,并结合PHP自己的特性,使Web开发者能够快速地写出动态生成页面。它支持目前大多数数据库。PHP是完全免费的,可以自由下载,甚至可以不受限制地获得源码,从而加进电子商务开发者自己需要的特色。JSP是Sun公司推出的新一代站点开发语言,它完全解决了目前ASP和PHP的一个通病——脚本级执行,JSP可以在Servtet和JavaBean/EJB/CORBA支持下,构建功能强大的电子商务应用平台。【I]ASP.NET隶属于Microsoft.NET框架,是由NET框架提供的编程类库所组成的,它提供了Web应用程序模型,采用面向对象的思想—模块化与组件化的技术而构建。通过使用ASP.NET服务功能,开发人员只需进行简单的业务逻辑编程。由于JSP基本结构通过HTML,XML、等intemet应用程序的优势(如电子商务),具体包括:强大的语言支持,易于维护,执行效率更高,良好的可扩展性,先进的数据库访问技术,全面的安全机制等方面。 长春天天手机销售管理系统的设计与实现综上所述,aSP是适应信息技术的发展而发展起来的。JSP的许多技术特征,使它更适合于开发大规模的、分布式Web应用程序,如电子商务。由于JAVA的开源等优势,JSP必然成为Web应用程序开发的主流技术。MVC(Model.View.Controller)模式是国外用的比较多的一种设计模式。很多的开源项目,就是利用这一设计思想,己将其做成了Web框架[21。框架有很多,例如Turbine,Jetspeexi,Tapestry,Struts。它们各有优点,而且功能强弱也不同,在以上框架中本文只重点讨论使用最为广泛的Struts框架在开发中的应用。Struts框架是个在不断升级中的开源项目,新的版本会不断的增加功能,越来越强大。稳定的Strutsl.1版已经在国内外许多的大型web应用项目中得到应用,最新的Struts2.1也已经发布了测试版,本文的研究是基于Stmtsl.1版的。应用系统可以由多种语言,不同的平台实现,比如微软的.NET,SUN的J2EE。本文选择J2EE作为构筑企业应用的平台,以基于MVC设计模式的Struts框架在系统中的应用为线索展开讨论。由于Java语言的广泛应用,与其相关的技术和各种设计思想飞速发展,种类繁多。多层Web应用软件需要面对复杂的网络环境、多样化的用户需求、灵活的业务模式、复杂的业务流程、众多的组织机构及层次、角色分工等问题,在业务和技术上也是复杂多变的。在设计一个系统的时候,面对如此多的技术和设计思想,孰优孰劣,如何选择呢?本文作者在分析了系统的五层架构设计之后,又进一步针对核心层做了详细的分析和设计,讨论了每层可采用的主流技术,这对于应用系统的设计和开发有很强的指导意义。1.2国内外技术现状在网络技术逐渐渗入社会生活各个层面的今天,传统的购物模式也面临着变革,而网上商店的出现则是为传统购物模式提供了一条新的出路。专家表示,随着社会经济的发展及消费水平的提高,人们希望得到更加方便、更加快捷的购物方式,同时也乐于尝试各种新的购物方式。在这一市场需求的推动下,企业会对商品零售的方式进行创新,丽先进的技术给创新提供了重要支撑与平台。长春市天天手机是一个拥有固定销售网点的手机专业销售公司,该公司同时致力于网上销售及宣传。通过电信网络进行的生产、营销和流通活动,它不仅指基于因特网上的交易,而且指所有利用电子信息技术来解决扩大宣传、降低成本、增加价值和创造商机的商务活动,包括通过网络实现从产品查询、采购、产品展示、订购到生产、储运以及电子支付等一系列的贸易活动。其中的销售子系统正是这以系统中的重要环节,实现这一系统从而达到网上商品销售的目的。对于传统的有形店铺来说,一家门店选址、地段的优劣,几乎能够决定其未来经营的成败,而城市中的商业网点资源,尤其是优质商业网点资源通常十分稀缺。无店铺零售则大多 大连理工大学专业硕士学位论文不存在地段方面的制约。专家表示,随着社会经济的发展及消费水平的提高,人们希望得到更加方便、更加快捷的购物方式,同时也乐于尝试各种新的购物方式。在这一市场需求的推动下,企业会对商品零售的方式进行创新,而先进的技术给创新提供了重要支撑与平台。鉴于互联网的优势以及对国内外相关电子商务网站现状的研究分析,我决定以天天手机基于web的网上手机销售系统中的购物车模块开发作为我的毕业设计主题。立足于设计一个在网络平台上运行的集购物支付配送等功能于一体的网上商城。在软件项目开发的过程中,系统框架的设计不合理给开发工作带来很多困难:结构不清晰、代码混乱、模块难以复用、系统难于扩展和维护等等。即使系统最后运行起来,开发的代价也远远超过了成本。作者通过以往经验的总结和迸一步的学习,以解决这一问题作为目标,确定了以基于MVC设计模式的Struts框架在管理信息系统中的应用作为研究方向,并且本文的设计思想在购物车模块项目的开发过程中得到了充分的应用,并且取得了成功。1.3论文工作组织结构本论文研究的主要内容有:(1)介绍了体系结构与模式的概念并重点分析了J2EE多层体系结构和MVC设计模式。(2)介绍了框架的概念以及框架对于软件开发的意义,重点讲述了J2EE多层结构中表示层框架Struts和数据持久层框架Hibernate的体系结构和工作原理,并阐明这两种框架的优缺点。通过结合两者的优点设计出本系统的整合Struts和Hibernate的J2EE架构。f3】(3)通过对购物车模块的需求分析,对系统的各子模块进行功能设计并对选取的开发环境和工具进行介绍(4)以一个销售系统中的购物车子模块的详细设计与实现为例描述了Struts和Hibernate框架在长春天天手机销售管理系统的设计与实现。本文完成了长春市天天手机购物车模块的设计与实现。本文的组织结构如下所示;第一部分阐述了论文的研究意义、研究背景、论文的组织结构和主要内容。从介绍相关知识,从软件体系结构和模式的概念入手,介绍在软件设计中使用软件体系结构与模式的好处,对系统工作模式,.NET与J2EE框架进行了比较,对当前几种主流的WEB开发技术进行了简要的介绍,并重点阐明了基于J2EE平台构建Web应用系统的优势及MvC模式的优缺点。 长春天天手机销售管理系统的设计与实现第二部分分对长春市天天手机购物车系统进行需求分析,包括功能需求、性能需求等。第三部分主要是对长春市天天手机网上销售系统的功能模块进行了设计,包括总体结构设计、功能设计、数据库设计、安全设计等,并对销售子系统中的购物车模块设计进行了详细的阐述。第四部分详细阐述销售子系统中购物车模块的实现过程和方法,包括功能实现流程,构建视图,构建控制器,构建模型,构建持久层和系统应用的配置,以次模块的实现来说明Struts+Hibernate模式在系统实现中的应用。一4一 大连理工大学专业硕士学位论文2系统需求分析经过多年的摸索和实践,网上物品销售模式已经在国内日益成熟起来。随着业务水平的提升、员工素质提高、企业的快速发展,都要求企业的信息化水平提到一个新的台阶。同时,商场零售行业本身是一个低利润率行业,谁能以最好的手段控制成本,减少采购环节、配送环节、库存管理的费用等,谁就能赢得客户。于是这便牵涉到管理思想和网上宣传【41。长春天天手机网上销售系统是以实际情况为基础,针对各大天天手机现有的管理情况,而开发的一套网上进销售信息系统软件。本系统是一个以计算机为工具,对商场的供应商、采购、进货、销售、仓库、财务、客户等信息进行处理的人.机系统,其能及时、准确的反映商场进、销、存中的各项工作的当前状态【5】。长春天天手机网上销售系统共分为四个子系统:基础信息子系统,进货子系统,库存子系统和销售子系统2.1系统的功能需求天天手机网上销售系统从用户角度划分,分为用户功能和后台管理功能用户功能主要提供给购物的用户使用,后台管理功能主要提供系统管理人员使用。该系统共有四大模块。以下为系统后台管理相关功能级模块及用户相关功能模块后台管理相关功能级模块基础信息管理模块。基础信息模块包括各种数据处理模块,如用户、帐套、商品、供应商、客户、仓库的数据处理。进货模块。进货模块处理进货循环的各种业务,如进货、进货付款、进货退货、进货会计分录处理。存货模块。存货模块处理库存循环的各种业务,如库存调拨、商品调价、库存盘点、库存商品查询、库存警告管理、商品有效期查询、库存会计分录处理。销售模块。销售模块处理销售循环的各种业务,如前台销售、信用销售、销售收款、销售退货、销售会计分录处理。进、销、存管理系统功能如下:用户可以应用窗口程序或互联网程序访问系统。基础信息系统模块功能如下:用户注册:支持含MD5加密功能和验证码功能用户登录,支持含MD5加密功能。登录用户可以切换用户身份。登录用户可以修改密码。登录用户可以查看权限。用户管 长春天天手机销售管理系统的设计与实现理用户可以进行用户及用户权限添加、修改、删除操作。数据备份用户可以应用数据备份程序将数据库的数据转换为本地机器数据。账套管理用户可以应用账套管理程序进行账套的创建、打开、备份、删除。商品数据管理用户可以应用商品数据管理程序进行商品的创建、修改、删除操作。供应商品数据管理用户可以应用供应商数据管理程序进行供应商的创建、修改、删除操作。商品折扣管理用户可以应用商品折扣管理程序进行商品折扣设置。客户数据管理用户可以应用客户数据管理程序进行客户的创建、修改、删除操作。客户信用管理用户可以应用客户信用管理程序进行客户的信用设置操作。仓库数据管理用户可以应用仓库数据管理程序进行客户的创建、修改、删除操作。会计科目管理用户可以应用会计科目管理程序进行会计科目的创建、修改、删除操作。报表用户可以应用报表管理程序显示会计科目余额表。用户日志查看用户可以应用用户日志查看程序查看用户关键操作。进货模块应该提供功能如下:请购用户、订购用户和验收用户可以应用进货程序实现单据审批和进货操作。订购用户、验收用户和现金管理用户可以应用进货退货程序实现单据审批和退货操作。现金管理用户可以应用进货付款程序进行付款操作。进货单查询用户可以应用应付帐款查询程序查询进货单。现金日记账查看用户可以应用应付账款查询程序查询进货单。进货会计用户可以应用进货会计处理成需进行进货会计分录的创建、修改、撤销、恢复和审核操作。应付账款查询用户可以应用应付账款查询程序查询进货单。库存模块功能如下:商品调出用户和商品验收用户可以应用库存调拨程序进行库存商品调拨操作。商品调价用户可以用商品调价程序重新设置商品售价。商品组合管理用户可以应用商品组合管理程序进行商品数量的拆分与组合操作。库存盘点计数用户可以应用库存盘点计数程序记录盘点数据。库存盘点核查用户可以应用库存盘点核查程序盘点核查数据。库存商品查询用户可以应用库存商品查询程序查询库存商品。库存单据查询用户可以应用库存商品查询程序查询库存单据。库存警告管理用户可以应用库存警告管理程序设置查看库存警告。库存会计用户可以应用库存会计应用处理程序进行库存会计分录的创建、修改、撤销、恢复和审核工作。销售模块应该提供功能如下:购物车功能模块(这是我这篇论文所要实现的模块)销售收款用户可以应用销售收款程序进行收款操作。前台销售用户、信用销售用户、销售收款用户可以应用销售退货程序进行单击审批和退货操作。销售单查询用户可以应用应收账款查询程序进行应收账款查询。应收账款查询用户可以应用应收账款查询程序进行应收账款查询操作。销售 大连理工大学专业硕士学位论文会计用户可以应用销售会计处理程序进行销售会计分录的创建、修改、撤销、恢复和审核操作。会员管理模块应该提供的功能如下:理员对申请会员卡的顾客(团体和个人)进行维护登记的客户信息和发卡操作以及制定相应的会员优惠政策。用户还可通过管理员对会员的相关信息进行查询操作。并且当会员卡中的积分管理系统可在顾客有需要时进行补卡、退卡操作。在软件需求阶段定义的数据对象通过使用实体.关系图和数据字典来建模【6】。用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出要求。2。2系统性能能需求会员制商场管理系统作为一种对会员制商场进行科学管理的系统,其设计的主要目的就是为了满足商场加快信息处理速度,缩短顾客等待时间和避免差错,即实现对于会员卡管理的电子化操作。为了圆满的达到这一目的,系统的设计必须实现以下几个主要目标:(1)服务器模块可以24小时无人运行。(2)平均故障间隔时间是每月1次。(3)建立规范的信息处理数据库。(4)使用GUI界面,操作灵活方便,使一般业务人员经短期培训即可使用。(5)采用面向对象的分析设计编程,结构化、模块化和可视化。(6)采用B/S体系结构。(7)采用安全措施、数据备份等技术,确保系统的安全可靠性。(8)要有严格的保密性,对用户配置不同权限和密码。(9)系统运行稳定。(10)具有可维护性和可扩充性,使其能够适应不断发展的业务需要。(11)技术先进的系统环境、网络、硬件平台、操作系统、数据库、应用开发工具。(12)系统功能齐全,具有实用性和超前性。(13)平均修复时间是3小时。(14)双服务器备份保证数据的完整性。(15)响应时间:对远程查询的事物数量要达到2000条。(16)容量:系统可以容纳的客户数是2000入同时使用。 长春天天手机销售管理系统的设计与实现(17)降级模式:服务器模块可以在内存512m的机器上运行。2.3安全性需求要求客户登录时,进行服务器端的安全验证;要求对响应破坏性操作做出明确的提醒信息或禁止响应:要求所有数据删除操作为逻辑性删除,不进行物理删除。防止用户直接操作数据库,用户只能用帐号登陆到系统,通过系统访问数据库,而没有其它途径操作数据库。用户帐号密码的加密,对用户帐号的密码进行加密处理,确保在任何地方都不会出现密码的明文。角色与权限:确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之和。E7】在系统的总体结构设计和实施中,应考虑到系统级安全、操作系统安全、数据存储安全、数据库安全、中间件腔用服务器安全等。(1)系统级安全系统级安全主要体现在物理设备的安全功能以及系统软件平台的安全设置上。(2)设备安全主机是整个系统的数据核心和运行核心,所有对数据库的操作、存储都集中在主机上,因此对主机的备份对于系统数据的安全,以及灾难发生时,尽快的系统恢复来说都是至关重要的。关键设备应采用双机热备份的方案。(3)操作系统安全选用较高安全级别的操作系统,时刻了解操作系统以及其他系统软件的动态,对有安全漏洞的,及时安装补丁程序。(4)数据库安全数据库系统是整个系统的核心,是所有交易数据以及清算数据等数据存放的中心。数据库的安全直接关系到整个系统的安全。(5)数据备份及恢复系统必须制订完备的数据备份、应用系统环境的备份策略,同时给出在相应的备份策略的基础上的系统恢复方案,保证系统的总体结构支持快速有效的系统恢复机制。(6)交易系统容错一8一 大连理工大学专业硕士学位论文在系统运行过程中,经常会由于设备以及其他因素的原因,导致系统的崩溃,或交易主机故障。在系统设计中,应建立一套有效的交易系统容错机制,使得故障发生后,交易能够平滑地转移到备份主机上,交易数据不丢失,让交易者感觉不到故障的发生。(7)身份认证交易系统面向众多的交易成员,为了保证系统的安全性和交易数据的有效性、严肃性必须对登陆系统进行交易的交易员进行严格的身份认证。(8)访问控制访问控制的前提是身份认证,根据真实的身份信息给与相应的访问授权,在应用层面上保证只有经过授权的用户才能使用被授权的资源。(9)信息机密性保证信息不被泄露给非授权的人或实体;通过严格的身份认证,防止一些用户冒用其他用户登陆系统以获取其他用户的交易信息及管理信息等,对密码信息加密存储和传输。(10)信息完整性保证数据的一致性,防止数据被非授权建立、修改和破坏;采用必要手段防止信息在传输途中被恶意篡改。(11)信息不可否认性建立有效的责任机制,防止实体否认其行为;通过完善的会员端日志、主机端日志、数据库操作记录等手段,使得交易员无法对发送的报价、成交等信息进行抵赖、数据维护人员无法对基础数据的变动进行抵赖。 长春天天手机销售管理系统的设计与实现3系统设计3.1系统总体架构设计通过前面的分析可以看出,Struts清晰地划分了控制部分、业务逻辑和视图。通过利用Struts控制器部分的配置文档,很好的控制了应用程序的流程,这使得系统的维护性和灵活性大大加强。而在视图部分,提供了强大的TagLib标签库供开发人员使用。不足的是在模型部分,没有提供数据持久层,业务层不仅负责业务逻辑,而且直接访问数据库,数据库一般采用关系数据库,不是面向对象的,因此会产生开发过程中的不和谐。而就Hibernate来说,它在模型部分提供了数据持久层,它对JDBC进行了轻量级的对象封装,使开发人员完全以面向对象的方式编程。但如果仅仅采用Hibernate架构开发应用系统,系统只会在业务模型部分有所改善,但是系统的逻辑处理、流程控制与视图并没有得到有效分离,因此系统的耦合性还是太高,不易于维护。综合分析了Struts与Hibernate各自的优点与不足,我们在系统设计时将这两个架构有效整合在一起,让Struts负责降低系统总架构的耦合性,而让Hibernate负责降低业务模型部分的开发难度。集成Struts架构与Hibernate架构的方法是利用Struts架构作为系统的整体基础架构,它负责了MVC的分离,而在Struts架构的模型部分,利用Hibernate架构来提供持久层支持【8】。本系统的整体架构如图3.1所示。鼹P页面-鼹P技米、翔窖濂接捌级件、鼗务逻辑A确嘲S铂搬,A撕∞,且朔融鼬篝■■-__-●_-■■■■■■■■■■—HH酗船薯姆l数据持久Ia6假蛐l帕暴。持久聪象。J明cl数蓊庠屡l关菘I瞒摩—————————Iml.m图3.1Struts+Hibernate的J2EE架构Figure3.1Struts+HibernateofJ2EEFramework 大连理工大学专业硕士学位论文(1)表示层该层是一些JSP页面,主要是利用JSP技术来实现,同时还运用了JavaSeript脚本,对一些数据进行页面上的计算,对一些参数和逻辑进行了校验。(2)业务层该层是由控制组件ActionServlet,AetionMapping,Action和业务逻辑类JavaBean来实现的。JavaBean里边封装了与数据层的交互关系,以实现所有的业务逻辑。该层通过面向方面编程、面向接口编程,来降低业务组件之间的耦合度、提高代码的重用性和增强系统扩展性。(3)持久层:对数据操作进行封装。持久化层简介。前面介绍的J2EE体系结构中,说明了目前常用的J2EE四层结构。在这四层结构中,业务层不仅负责业务逻辑,而且直接访闯数据库,提供对业务数据的保存、更新、删除和查询操作。我们采用的是面向对象的编程思想,而数据库模型通常是关系数据库,这两者的思考方式不一样,这必然产生了开发过程中的不协调。为了屏蔽底层数据库的操作,以面向对象的方式提供给开发者操作数据库中数据的接口。可以把数据访问细节和业务逻辑分开,把数据访问作为单独的持久化层。[9】该层负责应用到数据库的数据存储,也负责数据的检索和更新。重新分层的软件体系结构如图3.2所示。图3.2重新分层的软件结构Figure3.2R}tieredSoftwareArchitecture持久化层封装了数据访问细节,为业务逻辑层提供了面向对象的API。完善的持久化层应该达到以下目标:(1)代码可重用性高,能够完成所有的数据库访问操作。 长春天天手机销售管理系统的设计与实现(2)如果需要的话,能够支持多种数据库平台。(3)具有相对独立性,当持久化层的实现发生变化,不会影响上层的实现。幸运的是,目前在持久化层领域,已经出现了许多优秀的ORM(ObjeetRelationMapping,对象关系映射)软件,有的是商业性的,有的是开发源代码的。Hibernate就是一种越来越受欢迎的开发源代码的ORM软件。ORM软件具有中间件的特性。中间件是在应用程序和系统之间的连接管道。Hibernate可以看成是连接Java应用程序和关系数据库的管道。Hibernate作为中间件,可以为任何一个需要访问关系数据库的Java应用服务。中间件的另一个特点是具有透明性,作为Hibernate的使用者,无需关心它是如何实现的,只需要知道如何访问它的接口就行了。Hibernate技术本质上是一个提供数据库服务的中间件。它具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供JDBC连接,并且自行管理事务,这种方式使用了Hibernate的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTAAPI都被抽象了,Hibernate会替你照管所有的细节【1⋯。Hibernate基本原理。Hibernate在整个应用程序的作用如图3.3所示。应用程序通过Hibernate对数据库进行访问,对数据持久层操作。而Hibernate通过读取配置文件(Hibernate.cfg.xml)和类的映射文件(XML.Mapping)中的内容【l¨,生成SessionFactory实例,它是Session实例的工厂,由它的openSession0方法负责每次所需的Session对象的创建,在Session对象的方法中借助持久化对象来完成对数据库的操作,而不须使用JDBC和SQL进行数据操作。Hibernate本身不是数据库,它只是一个轻量级的对象.关系数据库映射工具。它的事务交由底层的数据库连接管理,因此对于事务处理Hibernate具有很大的灵活性,可以使用JDBC,也可以使用JTA(Java事务处理API)来管理自己的事务,当然也可以使用JNDI。图3.3Hibernate在应用程序中的作用Figure3.3HibernateFunctioninApplication 大连理工大学专业硕士学位论文(4)数据层开发中与数据库进行数据交互主要可以归为添加、读取、修改、删除,这些操作占据了系统开发中大部分的时间,同时还需要考虑与数据库交互的性能问题,如连接池、数据缓存等等。数据层主要设计目标是为整个项目提供一个高层、统一、安全和并发的数据持久机制。详细说来,来自客户端的http请求送到Struts框架中的控制器ActionServlet等候处理。ActionServlet包括一组基于配置的Action_Mapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器对象之间的映射。ActionServlet接受客户端的请求,并将请求交与RequestProcessor来处理。RequestProcessor根据请求的URL从ActionMapping中得到相应的Action,并根据请求的参数实例化相应的ActionForm,再进行Form验证。验证通过则调用Action的Execute方法。在方法体内,调用业务逻辑模块,由Hibernate在“幕后"完成与数据库的交互。即业务逻辑类里通过HQL语句操作业务对象;Hibernate把HQL转换为SQL,通过O/R映射文件实现具体对数据源的操作,即穿过持久层映射到具体的数据库表。Execute方法执行后须返回AetionForward。ActionServlet接受Execute方法返回的ActionForward对象,转发到ActionForward指定的源。这个源可以是一个JSP或另一个Action或另一个Servlet【121。Struts框架简介。Struts是一个免费的开源的表示层框架,由一组相互协作的类、Scrvlet以及JSPTagLib组成。作为基于MVC设计模式的Web应用的一种典型体现,Struts架构实际上是建立在Model2基础之上的,对于Model(模型),View(视图),Controller(控制器)都提供了线程的实现组件f131。基于Struts构架的Web应用程序基本上符合JSP模型2的设计标准,可以说是MVC设计模式的一种变化类型。【14】由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,并且把ScTvlct、JSP、自定义标签和信息资源(MessageResources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间H熨。因此,Struts有广泛的用户群,是一个非常不错的应用框架。Struts有自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和ObjectRelationBridge。在视图层,Struts能够与JSP,XSL等等这些表示层组件相结合。Struts框架工作原理。Struts框架工作原理如图3.4所示。当Web应用启动时,Struts框架加载并初始化AcfionScrvlct,ActionScrvlet从struts.con_fig.xml中读取配置信息,存 长春天天手机销售管理系统的设计与实现放到各种配置对象中。客户端浏览器向Controller(Servlet)发送一个HTl卫.请求;Controller根据struts.config.xml文件定制转向,使用Action来处理逻辑;Model组件与永久数据存储或者远程系统进行实际的交互,并管理交互过程;基于Model组件的处理结果以及返回的数据,再有Controller决定哪个View组件用于用户显示的渲染,数据则是准备给View对象渲染的;被选择的View组件渲染HTTP响应并将之发送到用户【16。2¨。lf1....⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一J图3.4Struts工作原理Figure3.4StrutsWorkPrinciple当ActionServlet接收到用户请求时,执行以下过程:(1)从struts—config.xml配置文件中检索和用户请求匹配的ActionMapping对象,若存在,转(2);若不存在,返回用户请求路径无效的信息。(2)检查ActionForm对象是否存在,若不存在,则新建一个,并把用户提交的表单数据保存到该对象中。(3)根据配置信息决定是否需要表单验证。需验证调用ActionForm的validate0方法。(4)ActionForm的validateO方法返回null或返回一个不包含ActionError的ActionErrors对象,则表单验证成功;若返回包含一个或多个ActionError的ActionErrors对象,则表单验证失败,此时,ActionServlet将直接把请求转发给客户提交表单的JSP组件,不再创建Action对象并调用Action的execute()方法。 大连理工大学专业硕士学位论文(5)若表单验证成功,ActionServlet根据配置信息决定将请求转发给哪个Action。ActionServlet创建一个ActionMapping对象存放这个Action的配置信息,若对应的Action实例不存在,则创建该实例,然后调用Action的execute0方法。(6)Action的execute()方法调用业务层接口方法,实现与模型对象的通信,模型对象和数据库进行连接,获取或保存相应的数据信息。并把获取的数据信息返回给Action。然后由Action的execute0方法返回一个ActionForm给ActionScTvlct。3.2系统功能模块设计3.2.1总体功能框架根据需求分析阶段的功能要求,从实现的角度将软件划分为五个模块,这五个模块分别为基础信息系统,销售系统,进货系统,库存系统还有会员管理系统。每个模块可以再分解为更小的功能模块,从而形成软件的层次结构。系统的总体结构如图3.5所示。图3.5系统总体结构图Figure3.5OverallStructureofSystem为了节省篇幅,本论文只对该系统中的部分的模块和功能实现进行描述。3.2.2用例图分析用户总用例图3.6如下所示。计划统计数据并非完全公开,只有授权用户才有权限进入计划统计信息系统,进行授权后的操作。并且对于不同的用户,所能访问的数据也不同。因此,要求计划统计信息系统必须提供完善的安全管理机制,确保只有授权的用户,才能操作相关的功能,访问授权的数据。 长春天天手机销售管理系统的设计与实现进货模块总用户销售模块总用户图3.6用户总用例图Figure3.6UsersOverallUserCaseView总用户系统总用户包括基础信息模块总用户,进货模块总用户,库存模块总用户,销售模块总用户,会员管理模块总用户。系统总用户拥有最大权限,可以应用系统所有功能。以下为改系统五大用户的用例图:基础信息模块总用户用例图3.7基础信息模块包括了以下内容:(1)用户注册:支持含MD5加密功能和验证码功能(2)用户登录:支持含MD5加密功能(3)登录用户可以切换用户身份。(4)登录用户可以修改密码。(5)登录用户可以查看权限。(6)用户管理用户可以进行用户及用户权限添加、修改、删除操作。(7)数据备份用户可以应用数据备份程序将数据库的数据转换为本地机器数据。(8)账套管理用户可以应用账套管理程序进行账套的创建、打开、备份、删除。(9)商品数据管理用户可以应用商品数据管理程序进行商品的创建、修改、删除操作乙(10)供应商品数据管理用户可以应用供应商数据管理程序进行供应商的创建、修改、删除操作。(11)商品折扣管理用户可以应用商品折扣管理程序进行商品折扣设置。(12)客户数据管理用户可以应用客户数据管理程序进行客户的创建、修改、删除。(13)客户信用管理用户可以应用客户信用管理程序进行客户的信用设置操作。 大连理工大学专业硕士学位论文(14)仓库数据管理用户可以应用仓库数据管理程序进行客户的创建、修改、删除。(15)会计科目管理用户可以应用会计科目管理程序进行会计科目创建、修改、删除。(16)报表用户可以应用报表管理程序显示会计科目余额表。(17)用户日志查看用户可以应用用户日志查看程序查看用户关键操作。图3.7基础信息模块总用户用例图Fi畔3.7UserC嬲eⅥewofB勰icIIlfl0衄ati∞进货模块用例图3.8,进货模块主要包括以下内容:(1)请购用户、订购用户和验收用户可以应用进货程序实现单据审批和进货操作。(2)订购用户、验收用户和现金管理用户可以用进货退货程序实现单据审批退货。(3)现金管理用户可以应用进货付款程序进行付款操作。(4)进货单查询用户可以应用应付帐款查询程序查询进货单。(5)现金日记账查看用户可以应用应付账款查询程序查询进货单。(6)会计可以用进货会计处理程序进行会计分录的创建、修改、撤销、和审核操作。(7)应付账款查询用户可以应用应付账款查询程序查询进货单。 长春天天手机销售管理系统的设计与实现图3.8进货模块总用户用例图Figure3.8UserCaseViewoflayinastockofmerchandise用户库存模块用例图3.9库存模块包括以下内容:(1)商品调出用户和商品验收用户可以应用库存调拨程序进行库存商品调拨操作。(2)商品调价用户可以用商品调价程序重新设置商品售价。(3)商品组合管理用户可以应用商品组合管理程序进行商品数量的拆分与组合。(4)库存盘点计数用户可以应用库存盘点计数程序记录盘点数据。(5)库存盘点核查用户可以应用库存盘点核查程序盘点核查数据。(6)库存商品查询用户可以应用库存商品查询程序查询库存商品。(7)库存单据查询用户可以应用库存商品查询程序查询库存单据。(8)库存警告管理用户可以应用库存警告管理程序设置查看库存警告。(9)会计可以用库存处理程序进行库存分录的创建、修改、撤销、恢复和审核工作。 大连理工大学专业硕士学位论文图3.9库存块总用户用例图Figure3.9UserCaseViewoflayinastockofmerchandise销售模块用例图3.10销售模块包括了以下的内容:(1)购物车功能模块。(2)销售收款用户可以应用销售收款程序进行收款操作。(3)前台销售用户、信用销售用户、销售收款用户可以应用销售退货程序进行单击审批和退货操作。(4)销售单查询用户可以应用应收账款查询程序进行应收账款查询。(5)应收账款查询用户可以应用应收账款查询程序进行应收账款查询操作。(6)销售会计用户可以应用销售会计处理程序进行销售会计分录的创建、修改、撤销、恢复和审核操作。 长春天天手机销售管理系统的设计与实现前售图3.10销售模块总用户用例图Figure3.10UserCaseViewofSale看用户会员管理模块用例图3.11会员管理模块包括以下功能:(1)管理员对申请会员卡的顾客(团体和个人)进行维护登记的客户信息和发卡操作以及制定相应的会员优惠政策。(2)用户还可通过管理员对会员的相关信息进行查询操作。(3)并且当会员卡中的积分累计到一定金额时,用户可享受使用积分换取相应礼品的优惠措施。(4)该会员卡管理系统可在顾客有需要时进行补卡、退卡操作。 大连理工大学专业硕士学位论文会赞图3.1l会员管理用例图Fig3.11MemberManageUserCaseView3.3.3购物车模块设计购物车模块主要要开发的页面及其所要实现功能如下所示:(1)商品管理主页面:完成商品列表显示和查询工作(2)增加商品页面:增加商品信息(3)删除商品信息页面:删除商品的有关信息(4)修改商品信息页面:主要用于修改商品信息以上所有页面主要实现MVC模式中的试图功能购物车系是网上商店最重要组成部分之一。在超级市场中,顾客可以推着自己的购物推车选购商品,将选中的商品放入推车里面,或者把推车里的商品取出来重新放到货架上,最后可以推着车去结帐。同样,在网上商店中,网上购物车就是将这种购物推车电子化,顾客在浏览商品目录的时候,既可以把他喜欢的商品一个个放到购物车里,也可以从购物车中取出或者改变所选商品的数量,直到最后付款。 长春天天手机销售管理系统的设计与实现是图3.12购物车模块流程图Figure3.12ShoppingCartflowchart一22— 大连理工大学专业硕士学位论文其中的购物车模块使用JSP+JavaBean+Servlet来实现。在购物过程中,为每个用户创建一个虚拟的购物车,并使用Vector类存储。接下来对Vector类进行简单介绍Vector是{ava.ufil包中的一个类,是一个可变长的对象数组,其大小可以动态增加或减少。以下简单介绍Vector类中几个常用的函数及其使用方法。addElement0:添加制定的对象到Vector矢量的末尾,Vector矢量的长度增加1.调用方法为:VectorObjectName.addElement0,VeetorObjectName是Vector类对象名称clear():删除Vector矢量中所有元素。调用方法为VectorObjectName.clearoelementAt0:返回Vector矢量中指定索引index处的对象。此方法返回Object类型的对象,因此在使用时要进行类型转换,调用方法为:VectorObjectName.elementAtoisEmpty():判断Vector矢量中是否含有对象,若Vector矢量为空,返回true,否则返回false。调用方法为VectorObjectName.isEmptyO。removeElementAtO:删除Vector矢量中index索引处的元素,次矢量的大小减1;调用方法为:VectorObjectName.removeElementAtOsizeO:返回Vector矢量中的长度,即返回矢量中对象的个数。调用方法为VectorObjectName.sizeO3.3数据库设计在数据库领域内,通常把使用数据库的各类信息系统都称为数据库应用系统。什么是数据库呢?狭义的说就是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统的一部分。数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要、求和数据操作要求。信息管理要求是指在数据库中应该存储和管理哪些数据对象;数据库操作要求是指对数据对象需要进行哪些操作。数据库设计的目的是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。高效率的运行环境包括:数据库的数据存取效率、数据库存储空间的利用率、数据库系统运行管理的效率都是高的。大型数据库的设计和开发是一项庞大的工程,是涉及多学科的综合性技术。数据库建设是指数据库应用系统从设计、实施到运用与维护的全过程。数据库建设和一般的软件系统的设计、开发和运行与维护有许多相同之处。为了使各种类型的数据库系统能够充分发挥它们的优越性,必须对数据库管理系统的使用提出一些明确的要求。1.建立数据库文件的要求(1)尽量减少数据的重复,使数据具有最小的冗余度。计算机早期应用中的文件管理系统,由于数据文件是用户各自建立的,几个用户即使有许多相同的数据也得放在各自的文件中,因而造成存储的数据大量重复,浪费存储空间。数据库技术正是为了克服 长春天天手机销售管理系统的设计与实现这一缺点而出现的,所以在组织数据的存储时应避免出现冗余。(2)提高数据的利用率,使众多用户都能共享数据资源。(3)注意保持数据的完整性。这对某些需要历史数据来进行预测特别重要。(4)注意同一数据描述方法的一致性,使数据操作不致发生混乱。(5)对于某些需要保密的数据,必须增设保密措施。(6)数据的查找率高,根据需要数据应能被及时维护。2.数据库文件的特征无论使用哪一种数据库管理系统,由它们所建立的数据库文件都可以看成是具有相同性质的记录的集合,因而这些数据库文件都有相同的特性:(1)文件的记录格式相同,长度相等。(2)不同的行是不同的记录,因而具有不同的内容。(3)不同的列表示不同的字段名,同一列中的数据的性质(属性)相同。(4)每行各列的内容是不能分割的,但行的顺序和列的顺序不影响文件内容的表达.“三分技术,七分管理,十二分基础数据”是数据库设计的特点之一。在数据库建设中,不仅设计技术,还涉及管理。要建设好一个数据库系统,开发技术固然重要,但是相比之下管理更重要。这里的管理不仅仅包括数据库建设作为一个大型项目本身的管理,而且包括该企业(即应用部门)的业务管理。企业的业务管理更加复杂,也更为重要。对数据库的结构设计有着直接的影响。这是因为数据库结构(即数据库模型模式)是企业中业务部门的数据以及各个业务部门之间数据联系的描述和抽象。业务部门数据以及各个业务部门之间数据的联系是和各个部门的职能、整个企业的管理模式密切相关的。人们在数据库建设的长期实践中深刻认识到一个企业数据库建设的过程是企业管理模式的改革和提高的过程。只有把企业的管理创新做好,才能实现技术创新,才能建设好一个数据库应用系统。十二分基础数据则强调了数据的收集、整理、组织和不断更新是数据库建设中的重要环节。人们往往忽视基础数据库在数据库建设中的重要地位和作用。数据库的收集、入库是数据库建立初期工作量最大、最繁琐、最为细致的工作。在以后的数据库运行过程中更需要不断地把新的数据加到数据库中,使数据库成为一个“活库”,否则就成为了一个“死库”。数据库一旦成了“死库"。系统也就失去了其应用的价值,原来的投资也就失败了。完整性直接影响到数据的质量,因此建立数据库首要的问题便是关注数据的完整性.表间关系是保证数据完整性的方法之一,它的建立是为了强制数据库中数据的参照完整性。【22】 大连理工大学专业硕士学位论文籀c函面鹰粕寥商培鞘擎固b园螂I墨列童霹翔豳西Gjeld翼{攀翘疆蝈印鳟誉I,荔●ONPROCESSserialIdSALEIDREMARKSAI.ETYPElinkScrialldN:lSERL~LIDdebitCredit..LrNKEDIDCUSToMERNAMEac宅otttltNaxneFILLERCoI仆丌ERUSERanlotintAUDl丁USERCREDITUSERnLLDATECASHUSERAUDITDATEADDRESS籀潼6a函皤函。喇蘑lFILLERDATE⋯’+7{《:l1DEUVERYDATE●l≤簿鞭$g嘲哆Gc(黟嘲耳固Q黟簿oNPRoCESSoRDERID:REMARKoRDERTY_PE●SUPPLIERNAMEC1.刀RRE_NTACCoU■r】1D1.SUBM江TUSERIDTKEDIDCo●曰皿TUSERDoCI小IENTTYPECHECKUSERAM01耶rr洚掣癣辫静秘卿孽CASHUSERRECEIVERNA垭ADDRESS-‘-DoCIm棚’NTFlLLER●WAREHoUSECASHUSERSALElDoRDERDATEnLLDATE.SERIALIDSToCKDATEP4yDA7君G00DSBARCoDEoN_PRoCESS1loNPRoCESSACTUAI.PRJCEREMARKRE~L叫RKQUANlrIrY强面啦蘸蠛●serialIdlinklddcbitC他ditfiller1.锄ount魏国幻勰臼每洒G色I≤簇fillDate:、’t一,,,'÷z}’缓麟缮鳓鳓鲻砸藐,:≥纂鬻I~^^#一薪SERIALID霉鬻:“;;=_9:90p多氅警;荔蕤●oRDERⅡ)●CATEGoRYlDGooDSBARCoDEGooDS玎)PARENTEDIDCoSTPRlCEGooDSNAN【EN:lCATEGoRYNA~正QUANTITYTyPEIDCATEGoRYDESCRIP耵oNUSEFIH,LIFEGooDSPRICEGooDSDISCoUNTGooDSDESCSUPPL皿RoTYISPREFERREDGooDSPICGooDSBARCoDECATEGoRⅥDGooDSNlCKNAMEGooDSASSISTANTNA砸GooDSPYNAMESPECIFlCATIoNPRoDUCERUPPERLIhⅡTLo、vERLI~ⅡT图3.12表关系Figure3.12OverallRelationshipofTabs该系统数据库有16个表。为了节省篇幅,以下给出部分表,其它表说明参见附录A。一25— 长春天天手机销售管理系统的设计与实现DUSERNAM匣PWDEmailREALNAM哐GENDERQUESTIoNANSWERPHO.NEⅣniPAGETOTALMoNEYSELFNTROSTOCKFUNCTIONSTORCKMANAGESAI.ERlNCTIOND盯CHARD汀CHARNOTMⅡ.I.NOTNULLNI几L套肌LNULLⅫⅡ.LMⅡ,LNt几L讯7I,LNOT讯Ⅱ.I,MⅡ。I.NO盯汛ⅡLNOTNULLN01]h兀7I.L用户编号用户姓名用户密码电子邮件真实姓名性别提示问题回答问题电话号码个人主页消费金额自我介绍进货模块用户权限库存模块用户权限销售模块用户权限CATEGoRⅥDPARENTEDIDCATEGoRYNAM瞳CATEGORYDESCI己口TIONMD汀CHARNTEXTNOn讯II,LNO田NULLNO,n汛Ⅱ.LNOn讯『I,序号父索引商品名称商品类别描述长春市天天手机的用户相关功能从下面凡方面来加强系统的安全性:(1)在MySQL中限制Web用户的权限:在一些对MySQL的攻击中,往往利用数据库登录账号具有较高的权限,对数据库的数据进行非法操作,因此,有必要在MySQL中限制用户登录账号的权限。MySQL中有三种类型的权限:对象权限、语句权限和隐含权限。一26— 大连理工大学专业硕士学位论文在该系统的Web服务器上,所有的数据库操作都以存储过程的形式编写,并为Web用户设定一个只能通过调用数据库服务器上的存储过程来执行一些特定的数据库操作的角色,不允许自接访问其他的数据库对象和语句。此时,在7SP网页中,也只需通过数据环境的Command对象调用存储过程就可以完成数据库操作,不必在ffSP网页中直接嵌入SQL语句,这样即使有人非法获得了JsP网页的源代码,也不会暴露数据库的表名、字段名等信息。(2)防止用户跳过登录页面:系统中很多网页的访问需要登录才能进行,这就需要保证用户必须先输入用户名和密码进行登录。为了防止用户直接在浏览器地址栏内输入网页地址或是其他方法绕过登录页面,对那些需要登录才能使用的页面,在服务器脚本的开始处先检查此页面的变量,如果是登录页面,才允许进入:否则将页面重定向到用户登录页面。将页面重定向到用户登录页面。另外,在服务器的Session对象中为每一个对话创建了一个变量,对于没有经过户名和密码验证的用户,此变量为NULL,只要检验这个变量,就可以知道用户是否通过了登录。结合使用以上两种方法,就可以防止用户跳过登录页面而自接进入受限制的页面。(3)由于是网上购物系统,安全是一个必不可少的课题,为了更好地保护数据的安全性,本系统采用MD5加密技术。在Password和Answer字段中,全部是以旧5值保存的,即使是系统管理员,也无法取得他人的密码,从而维护了用户的安全。用户登录的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,从而判定用户登录是否正确。 长春天天手机销售管理系统的设计与实现4系统的实现4.1系统开发环境系统开发环境如下所示:采用的操作系统:服务器采用windows2000以上操作系统;系统使用的WEB服务器:采用tomcat5.5.17以上版本作为web服务器;JAVA虚拟机采用JVM6。0:系统使用的数据库平台:采用MySQL;开发工具:Eclipse3.1.2以上版本:硬件配置:CPUI.7GHz以上,内存512MB以上:4,1,1ApacheTomcat服务器采用Apache1bmcat。支持J2EE平台的Web应用服务器有很多,本系统中采用符合J2EE规范标准和技术的W曲应用服务器产品ApacheTomcat,它为应用组件提供标准化开发模型和运行时环境。运用ApacheTomcat来部署业务逻辑有如下优势:(1)使J2EE开发切实可行,提高开发效率:ApacheTomcat使开发人员远离J2EE内在的复杂性,集中精力专注业务逻辑,无须操心单调乏味的基础结构代码。这种创新意味着,已被企业验证的J2EE的强大功能,最终被大多数不熟悉Java和J2EE的应用开发人员所掌握,从而使IT部门的工作效率提高一个数量级。可视化设计器以及直观的概念,如事件、属性和控件等,实现了基于事件的开发。ApacheTomcat简化的程序设计模型,使开发人员不必掌握复杂的J2EEAPl和面向对象的程序设计原理。所有开发人员,都可以共同工作在ApacheTomcatPlatform之上。ApacheTomcat的可视化开发环境,创建带有代码注释的标准Java文件,用来说明由运行时框架实施的企业级需求。J2EE和其他高级开发人员,借助功能强大的代码编辑功能,可以访问Java源代码,从而弥补了可视化设计器的不足。(2)构建企业级应用更灵活:通过在可伸缩、安全可靠的企业级架构上实施各种应用,ApacheTomcat大大降低了开发风险。而且,所有应用的创建都使用标准的J2EE组件,既保护了企业的技术投资,又保持了最大的灵活性。ApacheTomcat运行框架,是统一整个架构的汇聚层,使单一、简化的程序设计模型扩展到所有的ApacheTomcatPlatform应用类型。通过解释设计时创建的注释代码,运行时框架可以实现必要的J2EE组件,并且提取出与J2EE应用开发有关的所有底层细节。P3]ApacheTomcat,任何开发人员都能以最大的生产效率,构建各种Web服务、Wcb应用、门户和集成项目。Apache 大连理工大学专业硕士学位论文Tomcat能帮助客户接触和利用面向服务架构(SOA)的强大功能。ApacheTomcat极大简化了当前实际企业集成环境中企业级应用和服务的构建,并成为全面支持关键企业级应用(如异步、真正耦合和粗粒度消息传送等)的自然选择。4.1.2MySOL数据库服务器MySQL作为一种开放源码数据库,以其简单易用的特点广泛被广大用户采用,以下将着重介绍MySQL数据库的特点及使用入门。通过这篇文章,希望读者对MySQL有一个比较浅显的认识,达到基本操作的目的。更详细的信息请参考MySQL的相关手册。MySQL虽然是免费的,但同Oracle,Sybase,Informix,Db2等商业数据库一样,具有数据库系统的通用性:(1)数据库管理系统。我们知道,所谓的数据库就是一些结构化的数据的联合体,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个支撑系统,这就是数据库管理系统(DBMS),MySQL具有这方面的功能。(2)关系型数据库管理系统。在数据库的发展历程中,曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MySQL也是关系型的数据库系统,支持标准的结构化查询语言(StructuredQueryLanguage)。(3)开放源码数据库。同商业性的数据库相比,这是MySQL最大的特点。MySQL的源码是公开的,这就意味着任何人,只要遵守GPL的规则都可以对MySQL的源码使用、修改以符合自己特殊的需求。(4)技术特点。MySQL是C/S架构的服务器,服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如C、C++、Java、Perl、PHP、Tcl等,也提供了简单的管理工具,如mysqladmin,mysql等。正因为MySQL的源码是公开的,使得我们有机会从源码级,更深入的了解MySQL。从这一层面上可以探求、了解MySQL数据库的特性:(1)良好的内存管理机制,尤其是内存泄漏的管理,通过Purify的严格测试(2)支持多种平台,如AIX、Solaris、HP、FreeBSD、Tru64、SGI、Windows‘(3)提供多种形式的API,为我们开发工具的选择提供了便利(4)提供多种数据类型,如signed/unsignedinteger,double,blob等(5)所有的列都有缺省值,为我们的某些“粗心’’提供了方便(6)灵活、安全的权限密码系统,密码在传输中加密,允许主机验证密码(7)客户端可以通过TCP/IP、Unix套接字、命名管道(NT)连接到MySQL 长春天天手机销售管理系统的设计与实现MySQL有如此多的特点,由于其免费的特点,给许多的中小应用提供了不错的选择。尤其是对一些中小企业,无论是从降低成本,还是从性能方面,采用MySQL作为其数据支撑系统,都是一种可行的方案。但也应当注意,采用MySQL作为应用数据库,就意味着所有的问题都需要自己解决,要承担一定的风险。4.2天天手机销售管理系统实现4.2.1购物车实现页面长春市天天手机销售系统总图如图4.1所示磁薯盈重鞠{甄嵇蠢蠢蕴吞鼬盔壹曼墓《基g露l垒遂蚕露嚣l;蟹l越孀;;;蛰巍j盔盆蓍霍鎏盈星lg鞋塾鸯垂童鎏溪潞盈番14《鼬曩薹叠i酗《;鸯刮g墓{蔫麟蟊斛曩翼霎銎器互匿翳曩翟醒篁至霪一”r?蝴lt£古,哆E,u二^o碍口“i‘≈’fMt},‰㈨⋯fl’7H-Lm。lm”‘一,,‘;冉手轧年#L住*,手n⋯一,it正¨t自.!.-拌·。∞#·j且。.’。:二二二≤s一:j’三耋。垦爹i?霞萎1:。露主黧.。淼≥酱盛mi?陵篓“。一篓一用‘爹2蚕’攀薰巍鼎爹i篓露萎。篡;薹薹謇蓥”篡。翟蒌≥固。蔓篙=?篓篓璧霎黧蓬萋I嚣昼委雾誊翌鬟疆莲孤樱:曩“圈’篓“⋯固1篓三圜’至篓i量’磁浯豳舀豳邂匿鍪受强强豳圈麓戳出函蔷螽函函i萄i蔷函蠢圈函誓函涵磁函函磁豳磁磁函蔷磁函函蔷蔷逮匿歪主蠡图4.1销售系统实现图Fig4.1Ov盱aUChartoftheC址mg(加tiantianshoujiShoppingSystem长春市天天手机购物车模块是运用了Struts框架和Hibernate框架来进行设计与实现的。模块涉及到的界面及功能如表4.2所示。介绍一下购物车模块。为实现购物车模块的功能,开发了如表4.2中的功能界面。以下将要结合这些开发界面简要介绍一下购物车模块的实现方法。 大连理工大学专业硕士学位论文表4.2手机购物车模块的界面及功能Tab4.2PageandFunctionofShoppingcartSystem页面功能Goods_tist.jspgoods_show.jsppublicjspset_number.jspdel__success.jspconfirm.jspconfagain.jspcheck_outjsp显示手机列表界面显示购物车中的商品信息界面网上手机销售系统的公共函数界面用于设置用户购买商品数量的界面删除成功界面确认用户订单地址,收货人信息等的界面恭喜交易成功界面前台结账界面该模块中所用界面的操作方法如下:把商品表Goods封装在JavaBean值对象Goods.java中,新建一个类goods,文件名为Goods.Java把商品表Type封装在JavaBean值对象Type.java中,新建一个类Type,文件名为Type.Java把商品表Orders封装在JavaBean值对象Orders.java中,新建一个类Orders,文件名为Orders.Java把商品表Ordersdetail封装在JavaBean值对象Orders中,新建一个类.detail.javaOrdersdetail,文件名为Ordersdetail.Java为了简化开发,并提高代码的复用度,可以将商品表的数据库操作的功能封装起来。新建一个类DB_goods,文件名为DB_goods.java新建一个类DB_type,文件名为DB_type.java新建一个类DB_type,文件名为DB-type.java4.2.2购物车功能实现流程为了更详细的说明该购物车模块系统中各层是如何实现的。在goods_list.jsp页面中单击购买按钮,隐藏域中信息被发至setnumber.jsp页面在这个页面中,用户可以设置购买商品数量,还可以返回购物主页继续购物和查看购物车。在set_numberdsp文件中用到一个名为goods_cart的Servlet,用来处理客户发来的各项 —————————————二堕鲎煎垫笪堡篁里墨竺塑望盐量塞望请求,扮演着MVC模式中控制层角色。其处理客户的请求,并把处理结果派发给相应页面予以显示。在set_numbc,r.jsp页面中,客户单击提交数据按钮,处理结果派发给goods__show.jsp文件显示购物车页面如图4.3孕?两吧H硒=~⋯⋯⋯⋯’三,^^’e·‘蒈_#d_忡^脚p绺巩啉@-酽4t.^-,t,口z_口_日mEl日Ⅲ口∞m口_∞∞一·,^‘,.。。⋯~⋯⋯⋯。⋯⋯⋯⋯~_一⋯一一⋯一~⋯出一⋯~⋯一⋯⋯‘赫耐一谊料;..’。!二,三一羔:二j竺:二。曼:j!蛐幽蛾,’黜禽豪曩_蕾,器蟊r”.嚣激’”蹩骤掣瓣窨;E量¨*:卜—!,雕n五”蔷=袅嚣燃囊⋯獬黧搿戮辍豢簇盛亘雾”毋鬻。囊霉晷紧影蕊霸蕊绉繇翰嘲磁窿攫盈隧潞囱髓豳黼函蕊豳圈两豳豳函函磁玉注函磁溢图4.3购物车页面Figure4.3ShoppingCartPage单击下一步显示前台结账页面如图4.3雾竺帮吧t幽一:::=::::=二“乞+,t擀e+_誊“矗·伸-赫函-赫西I纠n5、.‘聃他一姐ql讨’~”,7“Ⅲ⋯“Ⅲ‰,4i:量r“!!誓‘j冀篓!!::竺⋯⋯,⋯.。。,⋯⋯⋯⋯⋯⋯曼二。、,”‘,壶薹薹m:·1二二竺竺=二..:二:二二=:_=_竺三:=:=一.竺竺二竺:=二二兰二.-,”。篡:~’拳■t-⋯“Ⅻ。"‘;z’‘‘‘:“⋯+4■■#⋯ju。“”:嚣;品㈨,.。,‘““‘棼!乙⋯。⋯,,"%:""M。{”*¨t:%m。%n;1,+}‰-。}_呻‘;t’*M“j¨}‘“㈣“州~r;嚣鬃瓣麓黧篓誓鎏纛雹黧塞≯端{稿毵然#,目,’m口蝴●●≈黜仁r啪静此n.B霸唧■_■·”⋯一~⋯’;《繇戳鼢躐涵幽勰濯豳戮※黼戳㈨滋潲戳勰豳瞪缓幽幽幽幽鞠二酝蹴爱≤妊磁磁.2五蠢远图4.3前台结账页面Figllre4.3paymentpage 大连理工大学专业硕士学位论文4.2.3会员管理功能实现流程系统的类设计是建立在系统模块划分和需求分析的基础上的,通过上面的分析,可以了解到会员制商场管理系统中的域主要包括商品、仓库、财务、会员、以供应商以及系统用户。商品类用来保存商品的基本信息以及销售、修改、删除、购进商品信息等操作:仓库类用来存储仓库的基本信息和商品入库,商品转存等操作;财务类用来保存财务的信息以及商品的销售财务收入结算、商品的购买支出结算、运输商品的费用结算等操作:会员类(CustomerBiz)用来保存会员基本信息以及更新、删除、添加、查询会员信息、制作会员卡等操作:供应商类用来保存供应商的基本信息以及添加、删除、编辑、查询供应商信息等操作:系统用户主要是用来保存系统用户以及添加、删除、编辑、查询用户信息、系统用户的登陆及注销等操作。如图4.4图4.4添加个人会员信息序列图Figure4.4AddPersonalInformationSequenceDi蓼am 长春天天手机销售管理系统的设计与实现.在添加会员信息中,活动者就是会员管理员。管理员成功登陆到系统中后,有添加会员信息的需求后,他首先向系统发消息,告知系统他的需求,即show0,系统接收到这个消息后,会显示相应的页面给用户,即CustomerAdd.jsp。看到界面之后,会员信息管理员则按照页面提示填写相关信息,即sctPageData0。用户填写完数据点击提交,即submitO,此时用户的请求会被提交控制器AtionServlet,控制器接收到请求之后,首先初始化CustomerMembcr持久化对象,即initialize0。然后控制器会将请求派发给Form,并通知其对页面数据进行验证,即validate0。Form收到消息之后,便会调用自己的validate()函,数对页面上的数据进行验证,其中验证规则定义在validation。xml文件中。Form将验证的结果反馈给控制器,如果验证不同过则根据struts.config.xml中定义的input属性将错误提示给用户,如果验证通过,则控制器便会选择该请求相应的Action(在此用例中为CustomerAddActiOn),并向其发消息,通知其执行请求的处理,即executeO。Action收到执行的消息之后,判断请求,并调用相应的业务逻辑处理。在添加个人会员信息中,Action会去发消息给MemberBiz,通知其进行添加会员信息的动作。CustomerBiz收到消息之后,在执行操作的过程当中,当需要跟数据库中的数据打交道时,又需要向DAO对象发送消息,由DAO负责完成对数据的存取操作。新个人会员信息被成功的添加到数据库中后,Action会根据操作的结果将请求派发到下一个页面。在该用例中,如果操作成功,Action最终将请求派发到sucCess.jsp,用来提示操作成功。至此,添加个人会员信息的操作就完成了。相关的其他操作,如查询、删除、修改以及修改个人信息等,其序列图都是同样的道理,都是由ActionServlet充当控制器,负责向相应的Action发送消息来处理请求,向相应的Form发送消息来处理验证,由Action调用相应的业务处理函数进行业务逻辑的处理,由Biz调用相应的DAO接口函数,来完成跟数据库的交互,并最后由Action根据操作结果派发不同的页面。为了更详细的说明会员制商场管理系统中各层是如何实现的,限于篇幅,下面将重点说明添加新个人会员信息这一子功能的具体实现。添加新会员。处理过程是:会员管理人员通过单击页面中的“添加个人会员’’按钮进入添加新个人会员信息的页面(customerAddjsp),该页面中显示出添加新个人会员信息的表单,会员管理人员在表单中输入个人会员的详细信息后单击页面中的“添加”按钮,此时该HTTP请求提交给AcfionServlet,ActionServlet会寻找相应地customerAddF01"111和customerAddAction,首先提交的request对象映射到customerAddForm中,进行请求数据的填充处理,然后eustomerAddForm传递给customerAddAction进行处理,customerAddAction收到customerAddForlil后,调用executeO方法,executeO调用业务层 大连理工大学专业硕士学位论文接口方法,实现与模型对象customerBiz的通信,eustomerBiz执行业务逻辑,通过Hibernate与数据库进行通信。把新添加的个人会员信息插入到数据库表customer中。然后由execute()方法返回一个forward给ActionServlet,最后由customerlnfo.jsp显示新添加个人会员信息。4.2.4构建会员管理视图层前面曾经提及,视图部分主要是由JSP页面结合Struts标签库TagLib实现的。从上图中可以看出,customerAdd.jsp、customerlnfo.jsp和JSP标签库构成了会员信息添加部分的视图。customerAdd.jsp是添加新个人会员信息的页面,会员管理员可以在该页面中表单对新个人会员的信息进行录入,录入完毕后,单击“提交”按钮完成向数据库表插入记录。而personMemberlnfo.jsp页面用于添加完新个人会员信息后显示个人会员信息页面。利用struts标签库,通过struts—config.xml配置的应用资源文件application.properties内的一些关键字.值对来构建JSP页面表单。下面以customerAdd.jsp页面为例说明Struts中JSP页面的设计。(1)使用客户化标签<%@tagliburi="/WEB-INF/tags/struts-bean.tld"prefix='’bean"%><%@tagliburi="/WEB-INF/tags/struts-logic.tld"prefix="logic"%><%@tagliburi="/WEB-INF/tags/struts-html.tld"prefix="html"%>这是文件开头的几行代码,用于声明和加载struts标签库,分别使用到了StrutsBean(用来在JSP页面中管理Bean)、htrrd(用来生成html标记)和Lo百c(用来在页中控制流程)标签库,这些标签库在web.xml中进行配置。这些客户化标签是联系视图组件和struts框架中其他组件的纽带,在JSP页面中使用他们,可以把JSP页面和Java程序分离,使JSP页面侧重于生成动态网页,而不涉及应用逻辑。(2)JSP页面风格为了确保系统中所有页面风格一致,定义了一个CSS样式表,在每个页面中以如下方式引入:在页面中引入该样式后,页面中需要用到样式表nes.CSS中样式的地方就可以直接使用。如:</td> 长春天天手机销售管理系统的设计与实现在这行代码中,其中class=”tdbuttomleff”就是引用的nes.CSS样式表中的一个样式,而是应用了StrutsBean标签库,该标记检索并输出一个国际化的消息字符串,消息的关键字/值对在资源文件application.properties中定义。如消息关键字key=”eustomerAdd.tide”在application.properties中的关键字.值为customerAdd.title=AddNewcustomer,运行时将输出消息文本”AddNewcustomer”。(3)使用消息资源文件实现国际化国际化是指在软件设计阶段,软件具有支持多种语言和地区的功能。当需要在应用中添加对一种新的语言和国家的支持时,不用对已有的软件返工,无需修改应用的程序代码,而是将局部元素的依赖性从应用程序中的源代码分离出来。由于会员制商场管理系统可能用于外企,因此就有现实语言上的国际化问题。我们使用消息资源文件可以很容易的实现Struts应用的国际化。可以通过以下步骤实现系统的国际化:①首先设置JSP文件的字符编码,将所有的JSP页面的字符编码统一设为"UTF.8"。JSP页面的开头有如下代码:<%@pagecontentType=”text/html;charset=-UTF一8”%>JSP页面中使用标签,如在页面中有代码。要想使得这段代码根据浏览器中语言选择的不同显示不同的文本,可以创建不同的消息资源文件。②在资源文件application.properties中添加相应的消息文本由于在页面中添加了标签,需要在默认的资源文件application.properties中添加相应的消息文本。customerAdd.title=AddNewcustomer。此时若浏览器的语言选择为“英语[删",则该标签处的消息文本显示为”AddNewcustomer'’。③创建中文资源文件applicationproperties首先根据默认的资源文件application.properties创建一个临时的中文资源文件application__temp.properties,将application.properties文件中的内容与中文一一对应。如application.properties文件中的customerAdd。tifle=AddNewcustomer要对应写为customerAdd.rifle=添加新个人会员。然后把临时资源文件application.temp.propertie中的汉字转换为对应的ASCII码,从中文转到ASCII码可以用jdk自带的工具实现,命令为native2ascii。如在DOS命令行中输入:native2asciiapplication_temp.propertiesapplication_zh.properties 大连理工大学专业硕士学位论文这样,对应的中文资源文件就生成了。如果浏览器的语言选择为“中文[zh.en]”则该标签的消息文本就显示为“添加新个人会员”。如果会员制管理系统需要支持日语,则可以用同样的方法创建一个资源文件application_ja.properties即可。④在struts.config.xml文件中注册资源文件(4)使用脚本代码编写的函数实现表单验证本系统表单的验证没有采用validator验证框架实现,而是通过iavascript脚本代码实现的。首先编写一个表单验证的脚本程序fcjs,然后在每个页面中用如下语句引用:</SCRIPT>引入后,就可以用fc.js中的校验函数check0]",如在页面中有如下代码段: