• 767.00 KB
  • 2022-04-29 14:09:45 发布

网上商城购物系统论文.doc

  • 44页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'从封皮到目录:页面设置上:1.95厘米下:2.4厘米左右:2厘米装订线:1.5厘米左备注:封皮无页眉、页脚、页码。从封皮到目录:页面设置上:1.95厘米下:2.4厘米左右:2厘米装订线:1.5厘米左备注:封皮无页眉、页脚、页码。本科生毕业论文(设计)题目:乐淘购物系统的设计与实现学院 / 系专业年级学号作者姓名指导教师2011年12月20日1 ┊┆┆┆本科生毕业论文(设计)摘要本次毕业论文题目为乐淘购物系统的设计与实现。随着信息化时代的到来,网上购物以其便捷,快速,安全的优势逐渐步入了我们的生活。人们对于互联网的要求已不单单是浏览下网页,收发电子邮件,日益忙碌的人们开始追求足不出户的利用互联网这一强大的平台来实现网上购物。近几年,随着网络数据库技术的进步发展,使得这一设想逐渐成为现实。本系统由两个大模块组成:前台用户界面的实现,后台管理员对乐淘购物系统的管理。前台用户界面主要是对本站所有商品的信息的展示,所以将内容细分为:游客及会员对商品的浏览,会员对商品的购买,购物生成订单,订单结算等模块。而后台主要是管理员对网站的支持和维护体现在三个模块:用户管理模块,商品管理模块,订单管理模块。在各个模块里都有相对应该的对其内容的新增,删除,修改,查询操作。由于各模块的相互独立又相互关联性使本系统较能适应目前市场需求。根据系统所需功能,决定以J2EE为开发平台,采用Oracle做后台数据库,选择功能强大的Eclipse为开发工具,利用软件工程思想和方法,总体上用结构化生命周期法进行系统分析和设计,采用快速原型法来实现,系统本系统界面友好,而且操作更加简单,减少了用户学习操作的额外负担。该系统使用了功能强大的JavaWeb开发技术,前台页面使用JSP。同时系统使用了基于MVC机制的Struts技术,添加了Hibernate组件。作为Web应用的一个比较成熟的开发模式——MVC模式把应用程序抽象为Mode(模型)、View(视图)、Controller(控制器)三个功能截然不同的部分,三者对于整个系统是相对独立的工作,但各部分之间又紧密联系,共同完成系统的各项功能。使操作方便,可维护性强。经过大量的测试,基本符合用户需求。关键字:乐淘购物网,Java,Struts,MVC,hibernate,Css,HtmlAbstractThethesistopicforhappyshoppingsystemdesignandimplementation.Withtheadventoftheinformationage,onlineshoppingwithitsconvenient,fast,secureadvantagesgraduallyenteredourlife.TheInternethasnotonlyunderthewebpagebrowsing,email,increasinglybusypeoplebegantopursuetheuseoftheInternetremainwithindoorsofthispowerfulplatformtorealizeonlineshopping.Inrecentyears,withthedevelopmentofnetworkdatabasetechnology,makingthisvisionisbecomingreality.Thesystemconsistsoftwomodules:theuserinterfaceimplementation,background37 ┊┆┆┆本科生毕业论文(设计)administratorforhappyshoppingmanagementsystem.Theuserinterfaceismainlyforallthecommoditiesinformationdisplay,sothecontentisdividedinto:visitorsandmemberstobrowsemerchandise,membersofthepurchaseofgoods,shoppingorder,ordersettlementmodule.Whilethebackgroundistheadministratorofthesitesupportandmaintenanceisembodiedinthreemodules:theusermanagementmodule,managementmoduleofgoods,ordermanagementmodule.Ineachmodulearerelativetoitscontentshouldbethenew,delete,modify,queryoperation.Becauseeachmoduleoftheindependentandinterrelatednatureofthissystemistoadapttothecurrentmarketdemand.Accordingtotherequiredfunction,decidedtotakeJ2EEasthedevelopmentplatform,usingOracledatabasetodothebackground,selectthepowerfulEclipseasdevelopmenttool,usingthesoftwareengineeringideasandmethods,generallyusingstructuredlifecyclemethodforsystemanalysisanddesign,usingrapidprototypingsystemtorealize,thesysteminterfaceisfriendly,andtheoperationismoresimpleuseroperation,reducestheadditionalburdenoflearning.ThesystemusesthepowerfulJavaWebdevelopmenttechnology,frontpageusingJSP.AtthesametimethesystemusingStrutstechnologybasedonMVCmechanism,addaHibernatecomponent.AsWebapplicationarelativelymaturedevelopmentmodel--MVCmodeapplicationAbstractMode(model),View(view),Controller(controller)threedifferentfunctionalparts,threeforthewholesystemisrelativelyindependentofthework,buttheportionbetweencloselylinkedtogether,thesystemofthefunction.Theoperationisconvenient,themaintainabilityisstrong.Afterextensivetesting,basicallymeettheneedsofusers.Keywords:HappyShopping,Java,Struts,MVC,Hibernate,CSS,HTML37 ┊┆┆┆本科生毕业论文(设计)目录1绪论11.1项目背景11.2研究意义11.3相关领域介绍11.4本系统概述12乐淘系统分析32.1系统需求分析337 ┊┆┆┆本科生毕业论文(设计)2.1.1功能需求32.1.2性能需求42.2系统可行性分析42.2.1技术及开发方法可行性42.2.2管理可行性42.2.3经济可行性42.3业务流程分析53乐淘网设计73.1系统物理环境配置73.2项目规划73.3系统概要设计83.4数据库设计103.4.1概念设计103.4.2逻辑设计123.4.3物理设计133.5系统详细设计143.5.1用户模块设计143.5.2管理员模块设计174乐淘网的实现204.1系统技术实现204.1.1JSP简介204.1.2B/S结构概述204.1.3Struts框架简介204.1.4Oracle简介214.2系统首页实现214.3会员注册模块实现224.4会员登录模块实现234.4.1会员登陆234.4.2会员密码找回2437 ┊┆┆┆本科生毕业论文(设计)4.4.3会员密码修改254.4.4生成订单264.5管理员模块的实现284.5.1管理员登录284.5.2所有商品查询功能284.5.3添加商品功能294.5.4修改商品信息功能304.5.5查询所有订单功能305系统测试315.1系统测试方法315.1.1系统测试计划315.1.2系统测试工具315.1.3系统测试方法和测试类型315.2系统测试的目的和原则325.3系统测试325.3.1系统登录测试要点325.3.2商品购买测试要点325.3.3操作权限测试要点325.3.4数据输入测试要点325.3.5数据删除测试要点335.4数据测试效果336结论356.1系统开发总结356.2存在问题及改进36致谢37参考文献3837 ┊┆┆┆本科生毕业论文(设计)37 ┊┆┆┆本科生毕业论文(设计)1绪论1.1项目背景电子商务作为一种新的商业模式,被认为是新知识经济时代和经济一体化趋势的产物,并且随着Internet技术的迅猛发展和Web的日益流行,它的应用也越来越广泛。尽管目前在国内这项技术的硬件基础设施和信息安全技术还不成熟,但可以预见,作为电子商务主要内容之一的网上购物,将成为未来人们主要购物方式之一[1]。本文首先比较了目前最流行的几种Web应用程序的开发性能,JSP因其良好的跨平台性和安全性,尤其适合应用于开发大型商务网站。1.2研究意义21世纪是一个以网络为核心的信息时代,数字化、网络化以信息化是21世纪的时代特征。电子商务作为信息时代的一种新的商贸形式,不仅对商务的运作过程和方法产生巨大的影响,实际上也带来了一场革命,其影响将远远超出商务的本身,将对社会的生成和管理,人们的生活和就业、政府职能、法律制度以及文化从多方面改变人类的观念、思维和相互交往的方式。1.3相关领域介绍在我国,网上购物从无到有也不过短短今年时间。我国第一家网上购物发生在1996年,燕莎友谊商场首次通过网上商城售出一个景泰蓝。虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。根据CNNIC的统计结果,截止2004年1月中国互联网用户7950万人,而又有40.7%以上的网民在过去一年里有过网购经历,这就说明中国有过网上购物的用户达到3235.7万人,并且这一数字还在以17%的速度增长,预计到2006年中国网上购物用户将达到6962万人,这说明在中国发展在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受[2]。1.4本系统概述乐淘购物网是开放式系统,其核心思想是提供一个以商品展示为主的界面,向用户和游客展示本网站的所有商品,并实现商品的订购,将极大满足了不远出户的用户需求。37 ┊┆┆┆本科生毕业论文(设计)本课题的开发工具可以使用Eclipse,开发语言可以是JSP/Java等开发语言,后台数据库可采用Oracle数据库。大乐淘吧购物网系统主要由前台用户登录系统,后台管理员管理系统两个部分组成。本课题主要功能详解如下:用户登录系统:各类商品展示模块,选择商品后的订购模块,商品结算模块。管理员管理系统:主要功能有用户管理模块,商品管理模块,订单管理模块等。2乐淘购物网系统分析2.1系统需求分析37 ┊┆┆┆本科生毕业论文(设计)系统分析方法来源于系统科学。系统科学是20世纪40年代以后迅速发展起来的一个横跨各个学科的新的科学部门,它从系统的着眼点或角度去考察和研究整个客观世界,为人类认识和改造世界提供了科学的理论和方法。它的产生和发展标志着人类的科学思维由主要以“实物为中心”逐渐过渡到以“系统为中心”,是科学思维的一个划时代突破[3]。 系统分析是咨询研究的最基本的方法,我们可以把一个复杂的咨询项目看成为系统工程,通过系统目标分析、系统要素分析、系统环境分析、系统资源分析和系统管理分析,可以准确地诊断问题,深刻地揭示问题起因,有效地提出解决方案和满足客户的需求。2.1.1功能需求具体功能描述如下。1.一般用户/会员(1)系统遵循开放模式,注册用户可以按照自己的需要查看商品和选购商品;未注册用户也可以任意查看,但在生成订单时要求正式登陆系统。(2)商品信息主要包括商品编号、商品名称、商品介绍、商品价格。(3)商品按类别展示。(4)用户可查看订单。2.管理员(1)管理员拥有最大权限,可以进入管理页面并配置系统信息。(2)管理员可以查询会员。(3)管理员可以随时更新产品信息,上传新产品,以及删除产品。(4)管理员查看订单状态,对订单进行删除。2.1.2性能需求可以分为以下几种。1.安全性要求:所有访问数据库的操作,必须尽量保证安全。2.美观性要求:要求界面美观,操作简便。37 ┊┆┆┆本科生毕业论文(设计)2.2系统可行性分析2.2.1技术及开发方法可行性本系统基于浏览器/服务器体系人们常说的B/S体系,系统安装维护简便。数据集中管理,便于分散用户使用,适应互连时代软件的发展趋势。开发技术主要包括JSP,Java,JavaBean,JDBC以及Web应用开发中常用的脚本语言JavaScript。Web服务器采用Tomcat,数据库采用Oracle数据库系统。由于本系统采用的是Java相关的技术具有“一处编译处处运行”的特性,所以系统可跨平台使用,可运行于Linux/Unix和Windows系列操作系统平台[4]。2.2.2管理可行性利用面向对象的机构化方法,面向对象方法以“对象”为中心,在分析对象、研究对象及对象的属性的过程中,根据其内在规律建立求解模型。基于这种方法建立的软件系统,不管外部环境或功能需求如何地变化,其对象的内在的规律是不变的,区别于传统方法的以“过程为中心”,以功能分解为基本方法,当功能需求发生变化时,将引起对软件整体结构的修改,导致系统不稳定[5]。因而,基于这种方法建立的软件系统是不会引起软件结构的整体变化,所以系统是稳定的,利用此方法可以充分达到系统管理可行性的目的。2.2.3经济可行性通过调查分析开发游戏网站所具备的能力及实现的方法,准确确定游戏网站的总体结构,利用Oracle数据库所具有的能力,以最简洁最容易的方法,使用JSP和Java使其达到快速开发的效果。当今世界正发生着巨大变化,管理信息系统的环境,目标,功能,内涵均随着时间的推移不断发生着变化。从环境上看,世界己变成“市场全球化,需求多元化,竞争激烈化,战略短期化”。一切事物的变化都在加快,企业不得不更加重视变化管理和战略管理。从目标上看,企业要在激烈的竞争中立于不败之地,首先产品和服务要适应市场的需要,其次企业要有效率[6]。2.3业务流程分析37 ┊┆┆┆本科生毕业论文(设计)业务流程分析可以帮助我们了解某项业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,修改和删除原系统的不合理部分,促成在新系统基础上有话业务处理流程。业务流程分析的目的是:形成合理、科学的业务流程。通过分析现有业务流程的基础上进行业务流程重组(BPR),产生新更为合理的业务流程。业务流程分析主要是定义项目的内容,即对现行的管理进行仔细地回顾和描述,从而认识项目的业务和技术上的具体要求,帮助确定流程工作与合作建模的基本要素,更好地分析理解其同其他要素的关系,例如业务目标、业务策略、面对的问题、产生的影响、组织机构参与者或者相关的企业架构。系统设计以前,要对系统需求进行归纳和分析,查找出所有的业务主角,然后在确定业务主角后,每个主角的相关活动及流程应清晰地制定出来,最终设计出逻辑视图、用户界面示意图[7]。 下面是对该系统业务流程的简单分析:任何游客都可以对首页的商品进行浏览,但不可购买商品。只有会员有购买的权限,如果游客不是会员则需要进行注册。注册后,在登录时用户名与密码验证通过就能做相关操作。如果用户名不存在或密码不正确,则提示重新登录。如果用户忘记密码,则可以点击忘记密码之后回答相关问题进行找回密码。密码找回后也可进行修改。用户成功登录之后,进入主页面,可随便购买商品。如果当前登录用户为管理员,则可以管理商品信息,查看所有商品信息,对商品进行添加,修改和删除。管理用户信息,查询所有用户的信息,无权对用户信息进行修改和删除。管理订单信息,查询所有订单,可以对订单进行删除。系统业务流程图如图2-1所示。登录失败重新登录首页浏览管理员登录用户游客订单找回失败重新找回找回成功密码找回忘记密码用户查看浏览商品查询商品查询,添加,修改。37 ┊┆┆┆本科生毕业论文(设计)查询购买用户登录未注册密码不附重新登录已注册注册失败重新注册用户注册登录成功成功商品浏览和购买生成订单安全退出图2-1系统业务流程3乐淘购物网设计3.1系统物理环境配置系统硬件平台的配置:1.CPU:P73502.00GHz。37 ┊┆┆┆本科生毕业论文(设计)2.内存:500M。3.硬盘:30GB。4.基本的输入、输出设备。系统软件平台的配置:如果说硬件是一个系统的身体,那么软件则是一个系统的灵魂,一个系统设计的好坏,不仅要有正确的软件开发思想,也应该有良好的软件开发工具[8],乐淘电子商务系统所采用的软件配置环境为:1.操作系统:WindowsXPProfessionalEditServicePack2。2.数据库软件:Oracle。3.系统开发软件:Java+JSP。3.2项目规划本系统的结构包括数据存储层、商务服务器组件及应用服务层。在应用服务层中主要采用Struts技术来构建动态网页来支持整个面向服务对象的应用。整个电子商务系统的网站设计是整个消费客户进行交互的页面,服务对象通过访问网站来获得所需要的信息,该网站的设计提供以下功能:1.各种功能的连接。包括注册,登录,浏览和订购。2.各种商品的分类展示、商品的详细信息。3.各种以往订单纪录的查询。3.3系统概要设计根据系统分析的结果数据流程图所描述的系统的逻辑模型,把数据流程图上各个处理模块进一步分解,确定系统的层次结构关系,把逻辑模型变为物理模型。在管理信息系统的设计过程中,系统划分的一般原则如下:37 ┊┆┆┆本科生毕业论文(设计)1.子系统要具有独立性。即应把相对独立的事务处理过程作为一个子系统。这样的子系统具有较高的内聚性,与其它的藕合较弱,便于软件开发、使用及日后系统维护。2.子系统的划分结果应使数据冗余度较小。应避免部分数据在多个子系统中出现,尤其是修改,以保证系统的安全性、可靠性和数据的一致性。3.子系统的划分应能满足目前和日后管理上的需要,功能应齐全,操作要方便且为今后发展留有接口。4.子系统的划分应以该单位的管理职能为依据。应尽量避免过分依赖于组织机构,以防止机构变更后为系统带来不必要的麻烦。从公司的组织结构上出发,把整个管理信息系统划分成多个子系统。每个子系统的功能相对独立,但是子系统之间有必要的数据联系。对电子商务系统的数据流图采用变换中心法和事务中心法进行分析,对其逐步进行功能分解,直到分解成为含义明确、功能单一的单元功能模块,从而得到系统的功能模块结构图,即系统的功能图。系统能模块结构图反映了电子购物商城的系统功能模块的划分,如图3-1所示。快乐淘吧网上购物系统管理员会员游客37 ┊┆┆┆本科生毕业论文(设计)浏览商品浏览商品生成订单核对订单管理订单管理商品管理用户图3-1系统功能模块结构图1.游客模块功能描述注意:游客没有购买商品的权限。(1)商品展台模块:商品分类浏览、商品详细信息。2.用户模块功能描述(1)商品展台模块:商品分类浏览、商品详细信息。(3)用户模块:注册新用户、登录、用户修改密码、用户找回密码。(4)订单模块:查询个人订单列表。3.管理模块功能描述(1)用户管理:登录;查询用户。(2)商品管理:添加、修改、删除商品信息。(3)订单管理:查看订单。3.4数据库设计3.4.1概念设计37 ┊┆┆┆本科生毕业论文(设计)概念结构设计是将分析得到的用户需求抽象为信息结构(即概念模型)的过程,它是整个数据库设计的关键。概念结构的主要特点是:1.能真实、充分地反映现实世界。2.易于理解。3.易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。4.易于向关系、网状、层次等各种数据模型转换。概念结构是各种数据模型共同基础,它比数据模型更独立于机器、抽象,更加稳定。为了把用户的数据要求清晰明确的表达出来,通常要建立一种面向问题的数据模型,按照用户的观点来对数据和信息建模。最常用的概念性数据模型就是E-R模型[9]。管理员属性图如图3-2所示。管理员姓名管理员账户管理员密码管理员信息图3-2管理员信息实体属性图用户属性图如图3-3所示。会员密码会员年龄会员姓名会员职业会员名称用户信息37 ┊┆┆┆本科生毕业论文(设计)图3-3用户信息实体属性图商品属性图如图3-4,3-5所示。大类别编号大类别名称大类别信息图3-4大类别商品信息实体属性图商品名称小类别编号商品介绍商品价格大类别编号商品信息图3-5小类别商品信息实体属性图订单属性图如图3-6所示。联系电话订货地址会员姓名会员名称订货编号运货方式商品信息37 ┊┆┆┆本科生毕业论文(设计)图3-6小类别商品信息实体属性图3.4.2逻辑设计数据库逻辑设计分为三个阶段,分别是:用户要求、建立E-R模型和数据库模式设计。数据库逻辑设计中的第一阶段收集和分析用户需求是按以下四步进行的:分析用户活动,确定系统范围,分析用户活动所涉及的数据和分析系统数据。逻辑设计第二阶段建立E-R模型分两步,首先应进行局部E-R模型设计,然后进行总体E-R模型的设计。逻辑设计第三阶段在数据库模式设计阶段分两步进行,第一步初步设计,把E-R图转换为关系模型,第二步优化设计,对模式进行调整和改善。我们所要进行研究的是逻辑设计的第三步即将E-R图像关系模型转化。下面把实体及实体间关系转换成为关系模型。实体转换出的关系模式:用户信息表{会员名称,会员密码,真实姓名,会员年龄,会员职业}管理员信息表{管理员账户,管理员密码,管理员名称}大类别商品信息表{大类别编号,大类别名称}小类别商品信息信息表{大类别编号,小类别编号,商品名称,商品价格,商品介绍}订单信息表{订货编号,会员名称,会员真实姓名,订货地址,联系电话,运送方式}3.4.3物理设计数据库物理设计包括:选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。主要解决选择文件存储结构和确定文件存取方法的问题。在数据库中访问数据的路径主要表现为如何建立索引。如要直接定位到所要查找的记录,应采用索引方法存取方法(索引表)。顺序表只能从起点进去向后一个个访问记录。在上面的实体以及实体之间关系模式的基础上,形成数据库中表以及各表之间关系。37 ┊┆┆┆本科生毕业论文(设计)在数据库中,索引就是表中数据和相应存储位置的列表。使用索引可以大大的减少数据查询的时间。但需要注意的是索引虽然能加速查询的速度,但是为数据库中的每张表都设置大量的索引并不是一个明智的做法。应根据系统的具体情况创建索引。用户信息表如表3-1所示。表3-1用户信息表字段名说明类型长度可否为空主键name会员名称varchar250否是password会员密码varchar250否否reallyname真实姓名varchar210否否age会员年龄int否否procession会员职业varchar250否否大类别商品信息表如表3-2所示。表3-2大类别商品信息表字段名说明类型长度可否为空主键bigId大类别编号number4否是bigName大类别名称varchar250否否小类别商品信息表如表3-3所示。表3-3小类别商品信息表字段名说明类型长度可否为空主键bigId大类别编号number4否是smallId小类别编号number4否否goodname商品名称varchar250否否introduce商品介绍varchar2200否否price商品价格number4否否管理员信息表如表3-4所示。表3-4管理员信息表字段名说明类型长度可否为空主键account管理员账户varchar2100否是password管理员密码varchar299否否name管理员名称varchar24000否否订单信息表如表3-5所示。37 ┊┆┆┆本科生毕业论文(设计)表3-5订单信息表字段名说明类型长度可否为空主键orderno订货编号varchar250否是name会员姓名varchar250否否reallyname真实姓名varchar250否否address订货地址varchar250否否tel联系电话varchar250否否post运送方式varchar250否否3.5系统详细设计乐淘网上购物系统根据业务内容分为管理员系统、用户登录系统。系统的模块设计是在需求规格说明和系统架构的基础上,通过精化架构、分析用例、设计模块来标识设计元素,发现设计元素的行为细节,精化设计元素的定义,以确保用例实现总是最新的。系统设计是以系统分析阶段的工作为依据,寻求新系统逻辑模型的实现方法,探求建立新系统的过程。系统设计给出了系统分析阶段建设的系统逻辑模型应如何去做和怎样去做的细节。其重点是把系统功能需求转化成系统设计说明。3.5.1用户模块设计用户模块主要是已注册的用户登录,密码找回;修改密码;网站信息浏览;购买商品;查看订单详情。下面对这些功能,挑选代表性功能进行详细叙述:1.会员登录及注册会员登录涉及的类,包括FormBean、ActionBean、数据访问类和持久化类,具体如图3-7所示。MemberLoginFormString:nameString:passwordLoginActionLogoutMemberDaogetMemberInfoByname()图3-7会员登录类图会员注册涉及的类,包括FormBean、Action37 ┊┆┆┆本科生毕业论文(设计)Bean、数据访问类和持久化类,具体如图3-8所示。LoginFormString:nameString:passwordString:reallynameString:professionString:questionString:anwserInt:ageMemberLoginActionMemberDaoaddMember()图3-8会员注册类图2.会员密码找回会员密码找回涉及的类,包括FormBean、ActionBean、数据访问类和持久化类,具体如图3-9所示。ChangeFormString:nameString:answerString:questionChangeActionMemberDaogetMemberInfoByname()图3-9会员密码找回类图会员密码修改涉及的类,包括FormBean、ActionBean、数据访问类和持久化类,具体如图3-10所示。Change_pwdFormString:nameString:passwordChange_pwdActionMemberDaoupdateMember()getMemberInfoByname()图3-10会员密码修改类图37 ┊┆┆┆本科生毕业论文(设计)(1)Change_pwdForm类Change_pwdForm是用户修改密码缓存用户信息的FormBean。(2)Change_pwdAction类Change_pwdAction调用MemberDao中的getMemberInfoByname()获取该用户信息,updateUser()更改用户密码。(3)MemberDao类MemberDao是用户修改信息涉及数据的访问接口,完成用户密码的修改。3.生成订单模块订单模块涉及的类,包括FormBean、ActionBean、数据访问类和持久化类,具体如图3-11所示。OrderInsertFormString:ordernoString:goodnameString:nameString:reallynameString:addressString:telString:postString:priceOrderInsertActionGoodOrderDaoaddGoodsOrder()图3-11订单模块类图3.5.2管理员模块设计管理员模块主要进行管理员登录;对用户信息的管理,查询用户信息功能;对商品信息的管理,即增加,删除,更改,查询功能;对订单的信息的管理,即删除,查询功能。下面对这些功能,挑选代表性功能进行详细叙述:1.登录功能37 ┊┆┆┆本科生毕业论文(设计)登录功能涉及的类,包括ManagerForm,ManagerLoginAction,ManagerDao。(1)ManagerForm类ManagerForm是缓存管理员输入数据的FormBean,其属性与表单中的属性相对应,并提供用于验证表单数据有效性的validate()方法,以及获取和设置属性值的Get()和Set()方法。登录的表单为验证用户名和密码的业务逻辑提供参数。(2)ManagerLoginAction类ManagerLoginAction是涉及的用户请求与业务逻辑之间的适配器,在建立用户请求与业务逻辑之间点对点映射关系的同时,将请求与业务逻辑分离。登录的业务逻辑包括验证用户名和密码。(3)ManagerDao类ManagerDao是涉及数据的访问的类,主要是完成连接数据库,与数据库进行操作,查询数据。2.查询商品信息功能查询用户信息功能涉及的类,包括InsertForm,ShowAllGoodsAction,GoodsDao。(1)InsertForm类LoginForm类从数据需求的角度对记录中用户基本信息进行抽象,属性与数据库中的字段一一对应,提供获取和设置属性值的Get和Set方法。一个实例对应于上述表中的一条记录。(2)ShowAllGoodsAction类ShowAllGoodsAction是涉及的请求与业务逻辑之间的适配器,它在建立用户请求与业务逻辑之间点对点映射关系,将请求与业务逻辑分离。主要调用GoodsDao中的getAllGoodsInfo()方法,对数据进行查询。(3)GoodsDao类GoodsDao是涉及数据的访问的类,主要是完成连接数据库,与数据库进行操作,查询数据。3.删除商品信息功能删除用户信息功能涉及的类,包括DeleteGoodsAction,GoodsDao。(1)DeleteGoodsAction类DeleteGoodsAction是在建立用户请求与业务逻辑之间点对点映射关系的同时,将请求与业务逻辑分离。主要调用GoodsDao中的方法,通过参数smallid对数据进行查询后删除。37 ┊┆┆┆本科生毕业论文(设计)(2)GoodsDao类GoodsDao主要是完成连接数据库,与数据库进行操作,查询数据后删除。4.增加商品信息功能增加商品功能涉及的类,包括InsertForm,InsertGoodsAction,GoodsDao。(1)InsertForm类InsertForm对记录中信息进行抽象,其属性与数据库中的字段一一对应。并提供获取和设置属性值的Get和Set方法及用于验证表单数据有效性的validate()方法。(2)InsertGoodsActon类InsertGoodsAction是在建立用户请求与业务逻辑之间点对点映射关系的同时,将请求与业务逻辑分离。主要调用GoodsDao中的insertGoods()方法,通过参数添加进数据库中进行存储。(3)GoodsDao类GoodsDao主要是完成连接数据库,对数据库进行操作,添加数据。5.修改商品信息功能修改商品信息功能的类,包括UpdateGoodsForm,UpdateGoodsAction,DoUpdateGoodsAction,GoodsDao。(1)UpdateGoodsForm类UpdateGoodsForm用户修改信息缓存用户信息的FormBean。(2)UpdateGoodsActionUpdateGoodsActionn是涉及的请求与业务逻辑之间的适配器,它在建立用户请求与业务逻辑之间点对点映射关系,将请求与业务逻辑分离。主要调用GoodsDao中的getGoodsInfoBysmallid()方法,通过smallid对一条数据进行查询,装入再调用GoodsDao中的updateGoods()进行数据更新。(3)GoodsDaoGoodsDao连接数据库,对数据库进行操作,对数据进数更新,或从数据库中将数据读取出来。37 ┊┆┆┆本科生毕业论文(设计)4乐淘网上购物系统的实现4.1系统技术实现4.1.1JSP简介JSP已发展了十几年了,几个方面都已经很成熟了,尤其是在B/S方面安全性上因为JSP用Java语言作服务器语言,Java最大优点之一就是安全,Java也把这种特点带到JSP上。JSP同样是实现动态网页的一个利器。由于他的脚本语言是Java,所以继承了Java诸多优点。运行速度、运行开销、运行平台、扩展性、安全性、函数支持、厂商支持、对XML的支持等等,ASP都不是JSP的对手。COM组件的复杂性实编程实现有一定的难度。而JavaBeans和Java的结合却是天衣无缝的。37 ┊┆┆┆本科生毕业论文(设计)4.1.2B/S结构概述相对于C/S结构,尽管C/S结构相对于更早的文件服务器来说,有了很大的进步,但与B/S相比,缺点和不足是很明显的。首先,B/S比C/S的维护工作量大大减少了。C/S结构的每一个客户端都必须安装和配置软件。假如一个企业共有50个客户站点使用一套C/S结构的软件,则当这套软件进行了哪怕很微小的改动后(比如增加某个功能),系统维护员都必须进行这样的维护;将服务器更新到最新版本;将客户端原有的软件卸载,再安装新的版本,然后进行设置,最为可怕的是客户端的维护工作必须不折不扣的进行50次。若其中有部分客户端是在另外一个地方,则系统维护员还必须跑到该地方再进行卸载、安装、设置的工作。若某个客户端,忘记进行这样的维护,则该客户端将会碰到版本不一致的问题而无法工作[10]。而B/S结构,客户端不必安装及维护。其他客户端,只要重新登录系统,使用的就已经是最新版本的软件了。其次,B/S相对C/S能够降低总体拥有成本,C/S软件一般是采用两层结构的。而龙特璐华软件采用的是三层结构。4.1.3Struts框架简介Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。其最初萌芽于CraigMcClanahan的构思,诞生至今也一年有余了。现在,Struts是Apache软件基金会旗下Jakarta项目组的一部分,由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注[11]。Struts把Servlet、JSP、自定义标签和信息资源(MessageResources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法Execute。在Struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,Struts这种事件方式称为ApplicationEvent,ApplicationEvent和ComponentEvent相比是一种粗粒度的事件。37 ┊┆┆┆本科生毕业论文(设计)4.1.4Oracle简介Oracle的关系数据库是世界第一个支持SQL语言的数据库。Oracle的目标定位于高端工作站以及作为服务器的小型计算机。Oracle的路线同Sun微系统公司类似,都提出了网络计算机的概念。Oracle宣称自己是世界上首家百分之百进行基于互联网的企业软件的软件公司。整个产品线包括:数据库、服务器、企业商务应用程序以及应用程序开发和决策支持工具。Oracle应用产品包括财务、供应链、制造、项目管理、人力资源和市场与销售等150多个模块,荣获多项世界大奖,现已被全球近7600多家企业所采用[12]。由于在电子商务方面的杰出表现,Oracle公司在美国MonganStanley公司最新公布的权威性全球企业1000强中,成为全球第二大独立软件公司和最大的电子商务解决方案供应商。4.2系统首页实现本页是浏览本站的首页面,在首页面中除了要考虑系统的功能,对于页的布局设计也行重要。在本页中,用户与管理员的登陆及退出的导航在上页,商品按大类别分类在左侧,以及管理员对相关用户,商品及订单的管理都在左侧,整体色调以红色为主。除了购买物品时需要用户注册登录才能使用外,其它的部分都可以供非注册用户查看。但游客及用户没有管理员的权限,不可进行对所有用户,商品,订单信息的管理。主页面如图4-1所示。图4-1酒店管理系统前台主页面37 ┊┆┆┆本科生毕业论文(设计)4.3会员注册模块的实现注册中心模块完成用户的注册功能,点击“注册”按钮调出用户注册页面,在此页面中,输入相关信息,如会员名称,真实姓名,用户密码,年龄,职业等,点击“注册”完成注册。用户注册页面设计如图4-2所示:图4-2用户注册页面设计核心代码如下:publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){LoginFormloginForm=(LoginForm)form;MemberDaodao=newMemberDao();Memberm=newMember();try{BeanUtils.copyProperties(m,loginForm);}catch(IllegalAccessExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();37 ┊┆┆┆本科生毕业论文(设计)}catch(InvocationTargetExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}dao.addMember(m);Stringname=m.getName();request.getSession().setAttribute("name",name);returnmapping.findForward("ok");}通过调用MemberDao中的addMember()方法,来对会员进行注册。4.4会员登陆模块的实现4.4.1会员登陆会员登陆模块实现用户登陆功能,它验证用户提交的用户名和密码是否被授权,并根据访问权限为用户提供相应的业务功能。会员登页面设计如图所示4-3所示。图4-3会员登陆界面37 ┊┆┆┆本科生毕业论文(设计)4.4.2会员密码找回会员密码找回模块实现用户的密码找回功能,当用户不记得自己的密码时,可以通过用户名及验证问题将密码找回。会员密码找回页面设计如图所示4-4,4-5所示。图4-4会员密码找回界面图4-5会员密码成功找回界面核心代码如下:publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ChangeFormchangeForm=(ChangeForm)form;//TODOAuto-generatedmethodstubMemberDaodao=newMemberDao();Stringname=changeForm.getName();Stringquestion=changeForm.getQuestion();Stringanswer=changeForm.getAnswer();Memberm=dao.getMemberInfoByname(name);37 ┊┆┆┆本科生毕业论文(设计)if(answer.equals(m.getAnswer())||question.equals(m.getQuestion())){Stringpwd=m.getPassword();request.getSession().setAttribute("name",name);request.setAttribute("pwd",pwd);returnmapping.findForward("change_success");}else{returnmapping.findForward("misstake");}}通过调用会员名称name到MemberDao中调用getMemberInfoByname()方法,将用户信息暂存在changForm中,然后通过问题和答案的比对,实现密码找回功能。4.4.3会员密码修改会员密码修改模块实现用户的密码修改功能,当用户将自己丢失的密码找回后,可以对现有的密码进行修改。会员密码修改页面设计如图所示4-6所示。图4-6会员密码修改界面核心代码如下:publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){Change_pwdFormchange_pwdForm=(Change_pwdForm)form;MemberDaodao=newMemberDao();37 ┊┆┆┆本科生毕业论文(设计)Memberm=dao.getMemberInfoByname(change_pwdForm.getName());m.setPassword(change_pwdForm.getPassword());dao.updateMember(m);returnmapping.findForward("chang_pwd_s");}将修改后的用户名及密码暂存在chang_pwdForm中,通过调用会员名称name到MemberDao中调用getMemberInfoByname()方法,修改会员密码后,在执行updateMember()方法进行更新。实现修改密码功能。4.4.4生成订单生成订单模块实现会员对商品的购买功能,用户成功登陆后,可以点击购买商品进行商品的购买,就需要生成订单。生成订单页面设计如图所示4-7所示。图4-7生成订单界面核心代码如下:publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){OrderInsertFormorderInsertForm=(OrderInsertForm)form;if(request.getSession().getAttribute("name")==null){37 ┊┆┆┆本科生毕业论文(设计)returnmapping.findForward("m_misstake");}else{GoodorderDaodao=newGoodorderDao();Goodorderu=newGoodorder();try{BeanUtils.copyProperties(u,orderInsertForm);}catch(IllegalAccessExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(InvocationTargetExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}Memberm=newMember();Stringname=(String)request.getSession().getAttribute("name");orderInsertForm.setName(name);m.setName(orderInsertForm.getName());u.setMember(m);dao.addGoodsOrder(u);returnmapping.findForward("ok");}}4.5管理员模块的实现4.5.1管理员登录此模块实现用户身份验证的功能。在登录模块中,输入用户名及密码,点击提交按钮完成用户身份验证的功能。本模块的页面设计如图4-8所示:37 ┊┆┆┆本科生毕业论文(设计)图4-8管理员登陆界面4.5.2所有商品查询功能此模块实现对所有商品的信息查询功能。管理员成功登录后,模块中,点击所有商品信息实现对所有商品的查询的功能。本模块的页面设计如图4-9所示:图4-9查询所有商品界面4.5.3添加商品功能此模块实现对商品的添加功能。管理员成功登录后,查看所有商品信息,点击添加商品信息实现对所有商品的添加的功能。本模块的页面设计如图4-10所示:37 ┊┆┆┆本科生毕业论文(设计)图4-10添加商品界面4.5.4修改商品信息功能此模块实现对商品信息的修改功能。管理员成功登录后,查看所有商品信息,点击添加商品信息实现对所有商品的添加的功能。本模块的页面设计如图4-11所示:图4-11修改商品信息界面4.5.5查询所有订单信息功能此模块实现对订单信息的查询功能。管理员成功登录后,查看所有订单信息,点击查看所有商品信息实现对所有商品信息的查询的功能。本模块的页面设计如图4-12所示:37 ┊┆┆┆本科生毕业论文(设计)图4-12查询所有订单信息5系统测试5.1系统测试方法5.1.1系统测试计划测试计划是指测试阶段的测试计划。现状:目前测试文档关于测试的内容主要是测试的时间计划。而这种时间划分也是非常粗略的,而且没有依据。为什么要花这么多时间?目前只是按照个人直观、经验等方法来判断测试时间。因此,这类测试计划的随意性太大,粒度太粗,不便于管理[13]。目前的测试是为了测试而测试,没有规划性。如果已经知道了产品已具有的功能,可以通过测试来检验是否每个功能都能正常使用。5.1.2系统测试工具目前的测试方法都是手工测试,手工测试的效率跟测试员的经验有很大关系,需要一定的技巧性。而有部分测试类型是可以用测试工具来实现的。比如:边界测试、非法测试、功能测试、性能测试等。但自动化测试并不能代替手工测试,它是一个补充。一般来讲,测试自动化在整个测试过程中只能占到30%左右。但测试人员对测试工具不熟悉,目前只能先以手工测试为主,继续探讨自动化测试的可操作性。(手头没有自动化测试工具)白盒测试:也称为结构测试,根据程序内部逻辑结构进行测试。5.1.3系统测试方法和测试类型37 ┊┆┆┆本科生毕业论文(设计)黑盒测试:黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因—果图、错误推测等,主要用于软件确认测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。白盒测试:白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证[14]。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。5.2系统测试的目的和原则在任何软件系统的开发过程中,尤其是在进行大型软件系统的开发中,任何一个编程人员都不可避免地会产生错误。为了尽可能地发现并改正系统设计中的错误,减少错误造成的损失,保证系统开发的质量,需要进行系统的测试。5.3系统测试5.3.1系统登录测试要点测试要点:用户名和密码。测试路径:用户名和密码是否为真。测试结果:为真,进入系统;为假,提示重新输入用户信息。5.3.2商品购买测试要点测试要点:用户的身份。测试路径:从浏览商品的页面直接进行商品购买是否能成功。37 ┊┆┆┆本科生毕业论文(设计)测试结果:无法成功购买,提示必须先进行会员登录,并自动跳转至登录页面。5.3.3操作权限测试要点测试要点:用户身份。测试路径:在首页能否对所有信息进行管理。测试结果:身份为管理员,可进行操作;不为管理员时,提示没有权限。5.3.4数据输入测试要点测试要点:数据录入类型、数据约束。测试路径:输入类型是否正确,是否允许为空。测试结果:输入类型正确,能写入数据库增加新记录,否则提示重新输入。输入空值,允许为空,则正常增加记录,否则提示不允许为空。当输入数据为数据表中限定的类型时,才能增加新的记录;若输入的数据类型不正确,则无法增加新的记录。5.3.5数据删除测试要点测试要点:数据点击即可直接无条件删除。测试路径:存在子记录或不存在子记录均点击删除。测试结果:存在子记录,提示无法成功直接删除,并返回至上一个页面;当不存在子记录时,可以直接删除成功。删除时又确认信息提示。5.4系统测试效果1.根据上面的数据输入测试用例,其测试效果。当用户名或其它相关信息为空时的时候,提示框显示,不能为空。如图5-1所示。37 ┊┆┆┆本科生毕业论文(设计)图5-1数据输入类型测试效果4.数据删除测试用例,其测试效果。当管理员要低商品信息或订单信息进行删除时,会跳出提示框,进行确认后再删除相关信息,其测试效果。如图5-2所示。图5-2数据删除类型测试效果37 ┊┆┆┆本科生毕业论文(设计)6结论6.1系统开发总结随着毕业设计的完成,工作也进入到了总结阶段。在毕业设计这三个多月的时间里,我感受到了一个真正程序员的艰辛,更加感受到如果自己将来想在这一条路走下去,所要学习的东西还有很多很多,我想这种感觉不仅仅是我一个人所感受到的,而是每一个即将面临毕业的大四学生都会感受到的。在过去的三个月里每天过的是那样的辛苦,但是现在当我看着自己三个月辛苦做出的毕业设计的时候,心中的那些疲劳的影子早已消失。经过这次毕业设计,可以说将我大学四年所学的知识进行了一次全面的总结,有些学过的知识忘记了,经过毕业设计我又从新复习了一遍,有些知识自己过去就不会但自己又不知道,经过这次毕业设计,又将这些不足的地方弥补了,最重要的是从毕业设计的过程中我又学到了更多新的知识。在毕业设计初期,我选择了JSP来编写这次的设计课题,开始的时候觉得自己根本无从下手,经过自己的自学过程,我慢慢开始进入了状态,JSP方面的知识开始逐渐的提高,我想这不仅仅使我的毕业设计取得了进展,同时也为我在将来的工作道路上增加了资本。尽管我所作的设计不能算是一个非常成功的软件,但是它终究是一个独立的软件,我在这个过程中了解到了一个软件的制作过程,并在独立思考,独立解决问题方面都大有所提高,为我以后的工作奠定了良好的基础。37 ┊┆┆┆本科生毕业论文(设计)总之,通过这次毕业设计,我在个人动手能力方面有了很大的提高,同时对JSP以及SQL数据库的知识有了进一步的认识,而且对大学四年所学的知识有了一个全面的回顾,这些都对我将来的工作生涯起到了至关重要的作用。6.2存在问题及改进在毕业设计的过程中,有很多技术是我目前无法领悟的,这为未来的学习提供了强大的动力。同时,在此次设计中,我也与其他同学,并与专业的设计人员沟通了关于程序开发方面的诸多问题,在我所完成设计的过程中,有令人非常满意的地方,也有令人遗憾的地方。满意的是这次设计成功完成,这充分锻炼了自己独立解决问题的能力。由于系统本人初次开发系统,有的地方想得不全面,系统也存在着一定的缺陷,这是令人遗憾的地方。由于时间有限,本次设计有很多想法还未能实现,对于本设计,如果要想其在应用过程中更具实用性,则需要引入成本控制,零基预算等先进的管理思想,系统是固定的,但思想是灵活的,系统只是管理思想的一个载体,只有充分理解先进的管理思想,设计才能跟得上科技的发展。37 ┊┆┆┆本科生毕业论文(设计)致谢本次毕业设计能够顺利完成离不开我的指导老师朱毅的指导和帮助,非常感谢我的指导教师,感谢老师在毕设各方面的指导。老师严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。老师还教导我们如何做学问和做人,其所教导的正是我所欠缺和不明白的,对我今后的人生旅途有莫大的启示。同时在老师的指导下,动手能力有所提高,相信这对马上要步入社会的毕业生是有很大的帮助的。同时在系统开发过程中许多同学都给了我很大的帮助,使我解决了不少的难点。另外,还要特别感谢大学四年学习过程中给我系统讲授专业课知识的各位老师,感谢全班每一位同学对我的无私帮助,使我得以顺利完成论文。我还要感谢一直以来对我默默支持的父母。论文参阅了大量的国内外有关文献,对文献的作者也表示由衷的感谢。时间的仓促及自身专业知识的不足,整篇论文肯定存在尚未发现的缺点和错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!37 ┊┆┆┆本科生毕业论文(设计)参考文献[1]阎宏.Java与模式[M],北京:电子工业出版社,2002.10.[2]中国互联网络信息中心http://www.cnnic.net,cn/,2007.09[3]EbbeEthmane,王建新.基于SQLServer2000的数据挖掘实现[J].计算机技术与自动化,2006.1[4]张建兵蔡长安.基于Java的B2C网上购物系统的设计与实现[J].2009.6[5]宗青.商场场现代化[J].2008.3[6]屈辉立,陈可明,石武信编著,JSP网站编程教程[M],北京希望电子出版社,2002.8[7]孙卫琴,李洪成.Tomcat与JavaWeb开发技术详解.北京:电子工业出版社,2004.4[8]BruceEckel.Java编程思想第3版.北京:机械工业出版社,2005.5[9]ChristianCrumlish,LucindaDykes.DreamweaverMX2004[M].SYBEX,2004.6[10]耿祥义.JSP实用教程.北京:清华大学出版社,2003.10[11]朱福喜编著,JAVA语言程序设计[M],清华大学出版社,2006.8[12]丁鹏.Struts技术解密及WEB开发实例[M].清华大学出版社,2004.2[13]杜江,沈应逵.Java2实例教程[M],北京:清华大学出版社,2003.5.[14]考德.E.F.数据库管理的关系模型[M].北京:人民邮电出版社,1996.737'