毕业论文-观自在书店网上销售系统_第1页
毕业论文-观自在书店网上销售系统_第2页
毕业论文-观自在书店网上销售系统_第3页
毕业论文-观自在书店网上销售系统_第4页
毕业论文-观自在书店网上销售系统_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

摘要本毕业设计就是设计并实现一个基于JSP技术的网上书店商场系统。本次设计的这个网上书店商城系统主要使用的JavaEE技术,同时使用了Struts+Spring+Hibernate框架。本设计使用的主要开发工具为MyEclipse10.0,而数据库使用的则是Oracle公司的MySQL。网站上主要是实现了用户的注销、登录与注册,图书的浏览、图书的购买、以及后台管理等功能。本网上书店系统就是一套完整的网上图书浏览购买系统,它相当于是一个可以有无限存储空间的书店。用户可以像在书店浏览图书一样在商城中选择自己喜欢的图书,同时也可以直接购买。这种系统可以直接提升用户的购买量。本系统还提供了管理员板块,管理员可以更加方便的管理图书、订单和销量信息。本系统的成功应用可以极高的推动网上支付、邮政等服务业的发展。本论文主要从以下几个方面对系统的设计进行了描述:首先,本文主要先描述了网上书店销售系统的市场需求。在市场需求中,我们主要介绍了网上书店的发展现状和可行性分析。然后,本文介绍了开发系统主要使用的框架和技术。最后,本文详细描述了“观自在书店”网上销售系统的详细设计和测试过程。关键词:S2SH;JSP;网上书店。ABSTRACTWiththerapiddevelopmentofnetworktechnology,electroniccommerce-gooddancethisnewoperatingstylecameintobeing.ElectronicMallisthedevelopmentofelectroniccommercecomesanewwaytoshoponline.Shoponlinebookstoreisabookstoreonlinesalesplatform.Userscandirectlyusetheonlinebookstoreonlinestoretobrowseandbuybooks.ThegraduationprojectistodesignandimplementaJSP-basedonlinebookstoremallsystem.JavaEEtechnologyThedesignofthisonlinebookstorestoresystemismainlyused,whiletheuseofStruts+Spring+HibernateFramework.ThemaindevelopmenttooldesignedforuseMyEclipse10.0,whiletheuseofthedatabaseisOracle'sMySQL.Themainpageistoachieveauserregistrationlogbookstobrowse,buybooks,backstagemanagement.Theonlinebookstoresystemisacompleteonlinebookbrowsingpurchasingsystem,itisequivalenttoacanhaveunlimitedstoragespacebookstores.Userscanbrowsethebookinabookstoreliketochoosetheirfavoritebooks,likeinthemall,butcanalsobepurchaseddirectly.Suchasystemcandirectlyimprovetheuser'spurchases.Thesystemalsoprovidesadministratorsplate,administratorscanmoreeasilymanagethebooks,ordersandsalesinformation.Thesuccessfulapplicationofthesystemcanpromotethedevelopmentofhighonlinepaymentandpostalservices.Thispapermainlyfromthefollowingaspectsofthedesignofthesystemaredescribed:Finally,thispaperdescribesindetailthedesignandtestingprocess,"Avalokitesvarabookstore,"onlinesalessystem.

Keywords:onlinebookstore,;S2SH;目录1绪论 11.1课题背景 11.2课题目的 11.3课题意义 11.4主要开发技术 22系统的开发环境及技术简介 32.1系统开发环境 32.1.1MyEclipse 32.1.2数据库简介 32.1.3Tomcat 42.2系统开发的思想与技术 42.2.1JSP技术与MVC模式 42.2.2JDBC 53系统分析 63.1系统可行性分析 63.1.1市场定位分析 63.1.2系统可行性分析 63.1.3技术可行性分析 63.1.4操作可行性分析 73.1.5经济可行性分析 73.2系统需求分析 73.2.1图书查询及图书高级查询模块 83.2.2注册登录功能模块 83.2.3订单管理功能模块 93.2.4个人信息管理模块 93.2.5图书分类管理模块 93.3业务流程图 93.4系统结构设计 114系统概要设计 124.1系统目标 124.2系统的主要功能 124.2.1E-R图 134.3数据库设计 184.3.1数据库表结构 184.4数据库概念结构设计 214.4.1数据库概念设计 214.4.2数据库表结构 215系统详细设计和功能实现 245.1程序对各功能DAO类的实现 245.1.1以用户注册登录功能的实现为例进行讲解 245.2JDBC数据库的实现 275.3系统主要功能模块的实现 335.3.1网站页面 335.3.2用户登陆页面 345.3.3用户注册页面 375.3.4高级搜索页面 395.3.5订单管理页面的实现 405.3.6账户基本信息 416系统的调试与测试 436.1软件测试的目的 436.2软件测试的任务 436.3测试内容 436.4测试环境 436.5配置测试环境 446.5.1配置tomcat 446.5.2添加项目的tomcat部署 456.5.3tomcat的运行 456.6测试结果 466.6.1用户登陆注册功能测试 466.6.2图书订单功能测试 476.6.3用户信息修改功能测试 476.6.4图书信息修改功能测试 48结束语 50致谢 51参考文献 52观自在书店网上销售系统1绪论1.1课题背景图书一直都是人们最好的传播知识的方式之一,购买图书是人们从孩提开始就已经学会的技能。书店是从古时开始就一直存在下来的人们必不可少的商店之一,书店在现在社会中也是作为一种地标式的建筑存在于城市中。但是由于图书本身的原因,实体书店存在着许多不便捷的地方,即查询麻烦、存储空间不足等。所以网上电子商城应运而生。网上电子商城市一种高质量、方便、快捷的购书商城。用户只用在网上就可以浏览图书,更加方便的查询自己想要阅读的图书,而无需去当地的图书馆耗费时间查询。同时,在查询到自己喜欢的图书时,用户只需直接在线购买图书,图书将以快递的方式直接邮寄到用户的住所。网上书店还有一大好处就是用户可以直接在网上看到最新出版的图书,而无需等待。由于网络的快速传播的特性,新的图书的信息上传成功后,用户便可即时浏览。1.2课题目的观自在书店网上销售系统是一套功能完整,实用性强的网上图书销售系统。该网上图书销售系统将分为针对用户使用的前台和针对管理员使用的后台两个部分。前台部分我们将主要实现用户注销、登陆与注册,图书分类浏览和图书购买以及图书试读等功能;后台部分我们将实现管理员的相关功能,管理员可以对系统中的会员信息图书信息和系统相关信息进行销售系统的维护与更新。1.3课题意义“观自在书店”网上图书销售系统的实现将很大的改变现有的图书销售模式。相对于传统的书店销售模式,网上图书销售模式将更好的节约人们买书的时间,使人们可以更方便的买到自己想要的图书。同时,网上书店的建立也将减少书店的占用面积,节约书店的成本。读者通过网上图书商城将可以更快的阅读到最新出版的图书,同时,出版商也将可以更快的将图书发布到网上商店。1.4主要开发技术本系统主要使用的是S2SHI(Struts2+Spring+Hibernate)框架,使用的是JSP(JavaScript)技术.本设计旨在建立一个满足基本功能需要的网上图书销售系统。采用的是B2C的运营模式,B2C即为商家对顾客的交易模式。用户可以直接在网站上浏览商家出售的图书,也可以注册会员并登陆后购买自己喜欢图书。2系统的开发环境及技术简介2.1系统开发环境2.1.1MyEclipse本网上书店销售系统主要使用的是JSP技术,而支撑之一技术的开发工具就是Myeclipse。Myeclipse是一个功能强大丰富的开发工具。Myeclipse本质上是eclipseIDE的一种扩展,它相对Eclipse来说更加功能强大和稳定。通过合理的配置这个工具,我们可以很简单轻松的实现数据库的连接,JavaEE的开发和Tomcat服务器的整合。Myeclipse工具里包含了完整的编码、调试和发布等功能,完美支持我们常见的HTML、SSH、JSP、CSS等。Myeclipse相对与其他的开发工具来说可以极大的提高我们的工作效率。2.1.2数据库简介数据库使用的是MySQL开源数据库。MySQL是最常用的关系型数据库之一。是著名的Oracle公司的产品。MySQL作为关联型数据库管理系统之一,其主要的实现原理是将数据合理的存储在数据库中早已经被定义好的不同的表中,而不是像其他数据库那样存储在一个大的文件夹中。这样做的好处就是数据的存储更加的符合逻辑需求,在用户管理数据的时候也可以极大的提高数据的灵活性,同时,系统的稳定性也得到了显著的提高。占用的体积相对较小,运行时速快是MySQL的最大特点。再加上MySQL是一个开源的系统软件,使得很多中小型企业使用其作为自己的基本数据库。数据库管理软件使用的是Navicat。Navicat是一个可以极大的简化数据库代码操作的可视化数据库管理软件。其软件的主要目的就是用图形化界面来代替SQL语句的输入,可以节省大量的数据库维护时间。同时由于其对数据库语句的要求不高,所有也很大的程度上降低了数据库的使用门槛,使得更多的人可以更加方便的维护自己的数据库。2.1.3TomcatTomcat是一个被广泛运用的一个Apache服务器的扩展。由于其开源、体积小和可独立运行的性质,Tomcat被广泛运用于中小型企业网站的轻量级的网页应用服务器中。我们使用的Myeclipse本身就集成了Tomcat,我们可以直接使用Myeclipse中的Tomcat,或者自己搭建更高版本的Tomcat。2.2系统开发的思想与技术2.2.1JSP技术与MVC模式系统采用的是JSP技术,即JavaScript。JSP是一种高效稳定的技术,它相对于ASP有着更多的优势和更广的应用。同时,我们网站采用B/S结构,即Browser/Server结构。B/S结构是一种新型的技术。它是基于原有的C/S结构进行的一种功能上的完善。而后,逐渐形成了我们非常熟悉的MVC模式。Web浏览器Web服务器数据库服务器B/S模式的特点是:用户可以直接使用计算机上的浏览器来访问互联网上的文本、数据等,而不必去使用客户端来实现必要操作。B/S模式的就是通过web服务器与数据库的数据相连接。网页上并不需要存储这些数据,管理员只需要将数据存储在数据库中,系统所使用的JSP语言会在必要的时候对数据库中的数据进行更新。用户只需要在web服务器端发出指令,web服务器将通过JSP对数据库本身进行操作,通过运行内置的SQLWeb浏览器Web服务器数据库服务器图2-1B/S模式从上图可以看出,这种结构的特点就是,用户可以不使用客户端来对系统进行操作。本系统采用的是jsp技术。网页技术迅猛发展的今天,其本质就是HTML语言和JAVA等语言技术的发展和革新。JSP其实是在HTML技术基础上,使用脚本的语言对相关网页进行编程处理。JSP的发展速度之快使它已经变为了现在形势下以网页为基础的系统所不可或缺的技术之一。JSP在安全性和易用性上都相对于ASP来说有着绝对的优势。ASP对于实用性系统来说功能较简单,并不太适用于大型的网站。网上书店销售系统有着很强的实用性,我选择JSP来开发这套系统就是因为有着很大的功能易用性且操作简单。2.2.2JDBCJDBC(JavaDatabaseConnectivity,Java数据库连接)定义了如何使用Java代码与数据库进行交互。具体的做法就是在文件目录中添加Java.sql包和javax.sql包,并定义JDBC类和API。以这些操作来编写程序连接数据库。其具体步骤为:java程序想要访问数据库必须使用JDBCAPI的方法,当对JDBC发出指令以后,API会调用JDBC的驱动程序,向其提交查询申请。JDBC将查询申请转换成数据库可以识别的语言,一般为SQL语句。在进行查询操作结束以后,JDBC的驱动程序会从数据库得到用户想要得到的数据,然后将结果保存到java程序中通过JSP返回到用户界面。

3系统分析3.1系统可行性分析3.1.1市场定位分析随着社会的进步,知识的丰富,书籍的种类变得越来越多。传统的实体书店已经完全无法满足人们的正常生活需要。我们在选购自己想要的图书的时候要经过繁杂的搜索查询过程,十分的浪费时间。所以网上书店的成立是一种必然的社会发展趋势,它极大的顺应了现代人们的生活习惯。网上书店销售系统是一个面向广大消费者的网上购物商城。和一般的网上商城类似,用户可以使用网页自带的搜索功能快速的找到自己想要购买的图书,并完成下单付款等一系列的操作。网上图书销售系统还提供了完整的管理员功能,省去了一般图书馆管理员低效率的工作方式,取而代之的是科学系统的图书和订单管理。将查询和购买图书变成一种快速方便的行为是网上书店销售系统建立的根本目的。3.1.2系统可行性分析网上书店销售系统针对系统的技术可实行方面,操作可实行方面和系统的经济可实行等几个方面来验证。通过以下验证我们可以有力的说明系统的实现是绝对安全可实行的。3.1.3技术可行性分析本系统主要基于JSP技术开发,运用S2SH框架优化的完整的网上书店销售系统。基于JSP开发的系统具有极高的可靠性、可扩展性和可重用性。本系统与一般的网上购物商城类似,同样采用的是MVC模式开发,同时也是使用较为传统的B2C模式,即商店对客户的交易模式。用户可以使用PC自带的浏览器,输入相关网址,即可以打开网页来浏览书店上图书的种类,同时也可以通过注册账户,设置密码的方式创建会员。使用会员账号在网上商城上购买自己喜爱的书籍。3.1.4操作可行性分析伴随着现在科技的迅速发展,计算机早已经成为的人们生活不可获取的一部分,操作计算机这一项技能也早已成为了人们从出生开始就学会的技能之一。在这个大背景下,人们学习如何使用网上商城的成本大大降低,这使得网上商城得以迅速发展。本系统主要面向的对象是一般消费者和系统管理员。系统和一般的网上商城类似,这样做也是为了降低用户们的学习成本,使用户可以更加快速的习惯系统的操作模式。同时,系统也为管理员页面做了极大的优化,使管理员可以方便快速的管理图书。3.1.5经济可行性分析实体书店的投资成本一般比较大,这主要是因为其店面要存储大量图书的原因,同时大量的图书还需要投入更多的管理人员成本。但是网上书店商城则不需要考虑这些问题,相对于实体书店,网上书店所投入的硬件成本是很低的,我们只需要支付少量的软件费用管理人员费用和服务器租赁费用,同时还节省了大量的空间和时间。所以网上书店拥有这更大的存储空间,更方便的操作方式却有着极低的成本。通过对上述技术可行性,操作可行性,经济可行性的分析充分证明的本系统的可行性。3.2系统需求分析系统的需求分析主要是从用户的实际要求当中分析系统具有那些可用性的功能。为了方便书城的管理,我们将观自在书店网上销售系统分为两个功能单元:用户和管理员。在这当中系统用户的主要权利是图书搜索及图书高端搜索、注册账户以及使用账户登录功能、订单查询功能、商品预览、购物车、本人资料管理;管理员的主要功能有图书资料管理、图书种类管理、会员资料管理、管理员资料管理。用户不可以对图书资料、图书种类信息和管理员资料进行修改。系统用例图如下:注册登录注册登录信息添加删除除用户信息管理员信息图书信息查询分类信息管理员管理购物车收货信息管理员用户图3-1系统用例图3.2.1图书查询及图书高级查询模块图书查询及图书高级查询模块可以帮助商城用户更加快速的查询到自己想要购买的图书。用户在网页的右上角的搜索栏输入自己想要的书名即可完成对图书的搜索。如果用户不知道图书的名字,用户便可以使用网页左侧的图书高级查询功能,在这个功能中,用户只需要输入一些图书的基本信息便可以完成对图书的查询。3.2.2注册登录功能模块注册登录模块可以分为两个两个部分:用户和管理员。在用户部分中,用户可以在网页上注册自己的账户,然后便可以使用首页的登录功能登录自己的账户并完成后续操作。在管理员模块中,管理员是不可以实现注册功能的,因为网站的管理员的账号信息全部是直接在数据库中添加而成。管理员在登录自己的账户以后便可以进入后台管理页面,在这个管理页面中,管理员便可以完成一些操作。3.2.3订单管理功能模块订单管理功能模块主要分两个方面:管理员和用户。在用户方面,用户在登录自己的账户后,便可以对自己的订单进行查询与支付。在管理员部分中,管理员在登录账户以后,便可以对系统的订单信息进行查询和修改。3.2.4个人信息管理模块个人信息管理模块是整个网上书店销售系统中最关键的模块,在该模块中分为两个方面:用户和管理员。在用户中,用户可以登录到自己的账户中对自己的个人信息情况进行修改。在管理员部分中,管理员可以在管理员模块中,使用他的管理权限对自己的信息进行增、删、改。也可以对用户的个人信息进行增、删、改等操作。3.2.5图书分类管理模块图书分类管理模块中,管理员通过自己的管理员账户登录到后台的管理界面以后,管理员可以使用针对管理员才有的功能中的图书分类管理模块来对该书城中的图书种类类信息进行增、删、改。3.3业务流程图用户注册流程图:图3-2用户注册流程图用户登录流程图图3-3用户登录流程图3.4系统结构设计系统分为管理员和用户两个用户组。系统管理员的主要权力为:用户资料管理、管理员资料管理、图书资料管理、图书种类信息管理等功能;用户的主要权力有图书资料查询、用户资料修改、注销、登录、注册、添加到购物车、收获地址编写等功能。

4系统概要设计4.1系统目标在计算机网络快速发展的今天,人们对于互联网的需求越来越高。随着网上商城的快速发展,各种各样的实体商店也有了自己的网上商城。我们的网上书店销售系统就是有着完善的人机交互页面的网上图书购物系统。用户通过可以使用这个系统完成图书浏览下单和购买的一系列操作。4.2系统的主要功能网上书店销售系统需要实现的主要功能有:图书查询:用户可以通过网页页面上到的所有功能来直接查询自己想要购买的图书,或者亦可以使用高级查询来根据详细信息查询自己想要购买的图书。购买:注册为用户后,登录即可实现图书的购买等功能。用户信息修改:用户可以修改自己的个人信息。管理员模块:管理员可以通过系统对图书资料、会员资料、管理员资料进行增、删、改。总功能如下图4-1所示系统系统用户管理员管管理员信息会会员信息管理图图书分类管理图图书信息管理个个人信息管理购购物车商商品浏览订书单管理功能注注册登录功能图图书高级查询图4-1系统模块图4.2.1E-R图E-R模型是对系统中所涉及的现实世界的实体属性的一种抽象模型。从该系统中可以获知如下实体:图书分类实体,图书实体,管理员实体,定单实体,订单列表实体,用户实体。实体之间总E-R图:管理员管理员订单列表订单用户图书图书分类购书11mn1NN1图4-2实体之间E-R图1.用户实体包括用户名、账户和密码。实体属性图如下:用户名用户名账户密码用户 图4-3用户实体2.管理员实体包括账号、密码和管理员名。实体属性图如下:账号账号用户名密码管理员名管理员图4-4管理员实体3.图书实体包括图书编号、书名、作者、发行日期、出版社、出版日期、类型、描述、图书封面、原价和现价。实体属性图如下:图书编号图书编号书名作者发行日期出版社类型描述图书封面原价和现价出版日期图书图4-5图书实体4.订单实体包括订单号、总价、接收人、手机号、收件地址、邮政编码、送达时间、付款类型、订单状态、创建时间。订单号订单号订单接收人手机号收件地址邮政编码送达时间付款类型订单状态创建时间总价图4-6订单实体5.图书分类实体包括分类编号、分类名称。图书分类图书分类分类编号分类名称图4-7图书分类实体6.订单列表实体包括订单号、用户名、购书数量、图书编号。订单列表订单列表用户名订单号图书编号购书数量图4-8订单列表实体4.3数据库设计4.3.1数据库表结构在设计整个系统是,我总共使用五张表,分别为管理员表t_user、图书信息表books、图书销售表order_details、订单信息表orders、用户信息表accounds。管理员表 表4-1管理员表名类型长度小数点空idint110NouserNamevarchar2000YespassWordvarchar1000Yesemailvarchar1000Yesaddressvarchar2000yes图书信息表表4-2图书信息表名类型长度小数点空idint110NoTitlevarchar2550NoAuthorvarchar2550NoPublishervarchar2550Notypechar10NoDescriptionText00NoimageURLVarchar2550NoPriceDecimal82NoorgPriceDecimal80YesPublishedInt10yespublishedDateDatetime00yes(3)图书销售表表4-3图书销售表名类型长度小数点空IdInt110Noorder_idInt110NoBook_idInt110NoQuantityInt110NoUnit_pricedecimal82No订单信息表表4-4订单信息表名类型长度小数点空idint110NoTitlevarchar2550NoAuthorvarchar2550NoPublishervarchar2550Notypechar10NoDescriptionText00NoimageURLVarchar2550NoPriceDecimal82NoorgPriceDecimal80YesPublishedInt10yespublishedDateDatetime00yes(4)用户信息表表4-5用户信息表名类型长度小数点空idInt110NoUsernamevarchar500NoPasswordvarchar500NoEmailvarchar2550NoTruenameVarchar500YesSexChar10YesMobileVarchar300YesAddressVarchar2552YesZipcodeChar60YesQuestionVarchar2550YesanswerVarchar2550YesRoleChar10Yesavailablechar10yes4.4数据库概念结构设计4.4.1数据库概念设计图4-8数据库概念设计图图为系统的关系模型。在设计整个系统是,我总共使用五张表,分别为管理员表t_user、图书信息表books、图书销售表order_details、订单信息表orders、用户信息表accounds。4.4.2数据库表结构(1)管理员表图4-9管理员图(2)图书信息表图4-10图书信息图(3)图书销售表图4-11图书销售图(4)订单信息表图4-12订单信息图(5)用户信息表图4-13用户信息图5系统详细设计和功能实现5.1程序对各功能DAO类的实现5.1.1以用户注册登录功能的实现为例进行讲解publicclassUserDAOextendsBaseDAO{privatestaticUserDAOuserDAO;//用单例模式privateUserDAO(){ super("t_user");//数据库对应的表名称 } publicstaticUserDAOgetInstance(){ if(userDAO==null){ userDAO=newUserDAO(); } returnuserDAO; /*用户登录*/ publicUserlogin(Useruser){ Stringsql="select*fromt_userwhereusername=?andpassword=?"; List<Object>values=newArrayList<Object>(); values.add(user.getUserName()); values.add(user.getPassword()); UsertempUser=mappingUser(JDBCUtil.queryObject(sql,values)); returntempUser; } /***更新密码 */ publicbooleanupdatePass(Useruser,StringnewPass){ Stringsql="updatet_usersetpassword=?whereid=?"; List<Object>values=newArrayList<Object>(); values.add(newPass); values.add(user.getId()); returnJDBCUtil.updateOrSave(sql,values); } publicUserloadUser(intid){ Stringsql="select*fromt_userwhereid=?"; returnmappingUser(JDBCUtil.queryObject(sql,id)); } /*根据用户名查用户 *@paramuserName */ publicUserqueryUser(StringuserName){ Stringsql="select*fromt_userwhereuserName=?"; returnmappingUser(JDBCUtil.queryObject(sql,userName)); } /** *分页查询user对象 *@parambeginIndex *@parampageSize */ publicPaginationqueryUser(intpage,intpageSize){ Paginationpagination=newPagination();//分页对象 List<User>users=newArrayList<User>(); List<Object>values=newArrayList<Object>(); Stringsql="SELECT*fromt_userorderbyiddesclimit?,?"; StringcountSql="selectcount(id)fromt_user"; Object[]obj=JDBCUtil.queryObject(countSql,values); if(obj[0]!=null){ pagination.setCount(Integer.parseInt(obj[0].toString()));//总条数 } pagination.setTotalPage((int)Math.ceil(pagination.getCount()*1.0/pageSize));//计算总页数 pagination.setPageSize(pageSize); pagination.initPage(page); values.add(pageSize); List<Object[]>objs=JDBCUtil.queryObjectList(sql,values); for(inti=0;i<objs.size();i++){ obj=objs.get(i); users.add(mappingUser(obj)); } pagination.setResult(users);//设置结果集 returnpagination; } privateUsermappingUser(Object[]objs){ if(objs==null){ returnnull;图书信息管理功能DAO类的实现、图书销售信息的DAO类的实现、订单信息表的DAO类、JDBC数据库的实现与上述代码类似。5.2JDBC数据库的实现利用JDBC连接数据库的时候的主要代码实现如下: publicstaticintIDentity; publicstaticConnectiongetConnection()throwsSQLException{ returnDriverManager.getConnection(Url,User,Password);} publicstaticConnectiongetConnection(booleanautoCommit)throws publicstaticvoidclose(ResultSetrs){ if(rs!=null){ try{ rs.close(); }catch(SQLExceptione){ e.printStackTrace(); } publicstaticvoidclose(Statementstmt){ if(stmt!=null){ try{ stmt.close(); }catch(SQLExceptione){ e.printStackTrace(); } publicstaticvoidclose(Connectionconn){ if(conn!=null){ try{ conn.close(); }catch(SQLExceptione) publicstaticvoidclose(Statementstmt,Connectionconn){ close(stmt); close(conn); } publicstaticvoidclose(ResultSetrs,Statementstmt,Connectionconn){ close(rs); close(stmt,conn); } publicstaticbooleanupdateOrSave(StringsqlStr,List<Object>values){ System.out.println("JDBCUtilSQL:"+sqlStr); publicstaticList<Object[]>queryObjectList{System.out.println("JDBCUtilSQL:"+sqlStr); List<Object[]>objs=newArrayList<Object[]>(); publicstaticList<Object[]>queryObjectList(StringsqlStr,Objectvalue){List<Object>values=newArrayList<Object>(); values.add(value); returnqueryObjectList(sqlStr,values);} publicstaticList<Object[]>queryObjectList(StringsqlStr){List<Object>values=newArrayList<Object>(); returnqueryObjectList(sqlStr,values);} publicstaticObject[]queryObject(StringsqlStr,List<Object>values){ System.out.println("JDBCUtilSQL:"+sqlStr); Object[]objs=null; publicstaticObject[]queryObject(StringsqlStr,Objectvalue){ List<Object>values=newArrayList<Object>(); values.add(value); returnqueryObject(sqlStr,values);} publicstaticObject[]queryObject(StringsqlStr){ List<Object>values=newArrayList<Object>(); returnqueryObject(sqlStr,values); } 5.3系统主要功能模块的实现5.3.1网站页面图5-1“观自在书店“商城首页此页面为用户在直接打开网上后的页面。在这个页面中,用户可以查看位于网页首页上的新品图书推荐,还可以查看本期图书的热卖情况,并查看系统的公告栏。在网页的上方,用户还可以选择登陆和注册用户。当用户注册为网站的会员以后,用户便可以使用购物车等功能来对自己想要购买的图书进行购买等操作。在网站的右上角,用户也可以使用搜索功能来对自己的喜欢的图书进行名称搜索。在点击网页顶部的全部图书以后,用户可以看到网站商城现在正在出售的全部图书,并对所有图书进行高级搜索。代码:publicclassHomeServletextendsBaseServlet{ privatestaticfinallongserialVersionUID=7422910046866929397L; privateBookServicebookService=newBookServiceImpl(); protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ List<Book>books=bookService.getHotBooks(); request.setAttribute(Constants.HOT_BOOKS_KEY,books); forward(request,response,"/home.jsp");}5.3.2用户登陆页面图5-2用户登陆页面该页面为注册用户的登陆界面,使用struts框架来实现登陆功能。系统将用户名和密码与数据库中得已经存在的用户名和密码进行比对,从而实现用户的登陆功能。同时在用户的登陆界面中,没有注册的用户也可以页面的右侧选择注册新会员,然后填写自己的个人信息来完成用户的注册。主要代码为: protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ if(loggedIn(request)){ redirectToHome(request,response); }else{ forward(request,response,"/accounts/login.jsp"); } } protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); StringrememberMe=request.getParameter("remember_me"); Accountaccount=accountService.login(username,password); if(account!=null){ if("true".equals(rememberMe)){ rememberMe(response,username,password); } getSessionContainer(request).setAccount(account); HttpSessionsession=request.getSession(); StringreturnTo=(String)session .getAttribute(Constants.RETURN_PATH); if(StringUtils.isNotEmpty(returnTo)){ session.removeAttribute(Constants.RETURN_PATH); response.sendRedirect(returnTo); }else{ redirectToHome(request,response); } }else{ request.setAttribute(Constants.LOGIN_MSG_KEY,"用户名和密码不匹配"); forward(request,response,"/accounts/login.jsp"); } } privatevoidrememberMe(HttpServletResponseresponse,Stringusername, Stringpassword){ Cookiecookie=newCookie(Constants.REMEMBER_ME_KEY,username +Constants.REMEMBER_ME_SEPERATOR+password); cookie.setPath("/"); cookie.setMaxAge(60*60*24*7*2);//2周内不用登录 response.addCookie(cookie); }5.3.3用户注册页面图5-3用户注册页面用户注册页面的是用户成为网站会员的必经之路。用户将自己的基本信息输入进系统中,系统会将用户信息存储在用户的数据库之中。在数据库中存在用户信息以后,用户点击网页中的登陆按钮,输入自己的用户名和密码之后,便可以成功登陆系统。基本代码为:protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ forward(request,response,"/accounts/register.jsp"); } protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringusername=request.getParameter("username"); Stringtruename=request.getParameter("truename"); Stringpassword=request.getParameter("password"); Stringemail=request.getParameter("email"); Stringsex=request.getParameter("sex"); Stringzipcode=request.getParameter("zipcode"); Stringmobile=request.getParameter("mobile"); Stringaddress=request.getParameter("address"); Stringquestion=request.getParameter("question"); Stringanswer=request.getParameter("answer"); Accountaccount=newAccount(); account.setUsername(username); account.setPassword(password); account.setEmail(email); account.setTruename(truename); account.setSex(sex); account.setMobile(mobile); account.setAddress(address); account.setZipcode(zipcode); account.setQuestion(question); account.setAnswer(answer); accountService.register(account); //注册成功后马上登陆 getSessionContainer(request).setAccount(account); redirect(request,response,"/accounts/register/success");5.3.4高级搜索页面图5-4高级搜索页面高级搜索页面可以帮助用户查找自己不清数书名的图书。在高级搜索界面中,用户可以用不同的信息来对书进行搜索。当用户将想要搜索的信息填入高级搜索中时,系统将直接调取数据库中与之相匹配的信息并显示在系统页面上。高级搜索基本实现的代码为:protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ Stringkeyword=request.getParameter("keyword"); //System.out.println("k:"+keyword); intpageNo=1; try{ pageNo=Integer.parseInt(request.getParameter("pageNo")); }catch(NumberFormatExceptione){} Pagepage=bookService.search(keyword,pageNo); page.setUrl(request.getRequestURL().toString()); request.setAttribute(Constants.DATA_PAGE_KEY,page); forward(request,response,"/books/list.jsp");5.3.5订单管理页面的实现图5-5订单管理页面在这个页面中,用户可以查看自己的订单信息,但前提是用户必须已经登陆了自己的账户并且购买了商品。在订单管理页面中,用户可以查询自己的全部订单,同时可以对自己的订单进行修改删除等操作。当用户已经决定购买这个商品时,用户可以在订单管理页面直接点击确认订单,并进行购买操作。代码为: protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Integerid=Integer.parseInt(request.getParameter("id")); Orderorder=orderService.getOrder(id); order.setDetails(orderService.getOrderDetails(order.getId())); request.setAttribute(Constants.ORDER_KEY,order); forward(request,response,"/orders/details.jsp"); }5.3.6账户基本信息图5-6管理员页面管理员管理页面是管理员使用自己的管理员账号登陆系统后,系统将将换到管理员后台页面。在后台的管理员界面中,管理员可以对管理员自己的信息进行增加,删除与修改,同时也可以做到添加系统的管理员。在管理员页面中,管理员可以对图书资料进行修改,可以做到增加未有的图书,也可以删除已存在的图书,也可以对已存在的图书信息进行修改更新。代码: protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ forward(request,response,"/accounts/my.jsp");6系统的调试与测试6.1软件测试的目的软件测试的最基本目的就是确保软件在交付给用户后,在其使用的过程中可以正常的运行。所以软件的测试是非常重要的工作,它可以确保软件的质量。用户看到测试报告后可以更加放心的使用该软件,而不会再出现bug导致无法正常的使用。6.2软件测试的任务1.寻找运行时出现的bug;2.确保软件质量;3.尽量避免软件在使用过程中可能出现的质量问题;6.3测试内容在系统测试中,我们将从以下几个方面对系统的基本功能进行测试。(1)用户注册登陆功能测试(2)图书订单功能测试(3)用户信息修改功能测试(4)图书信息修改功能测试6.4测试环境使用tomcat作为本网上书店销售系统的web服务器,而使用的tomcat的版本为6.0。将网页的缺省域名值设置为localhost,然后myeclipse中将系统通过tomcat6.0运行。再打开浏览器,输入网址:http://localhost:8080/ebook在浏览器根据url打开网页以后,我们就可以看到最终的效果了。6.5配置测试环境6.5.1配置tomcat配置过程如图所示:图6-1tomcat配置在路径中选择tomcat6.0,点击ok,就配置成功了。6.5.2添加项目的tomcat部署图6-2部署tomcat将自己的项目添加到tomcat6.0中。上图为添加成功。6.5.3tomcat的运行图6-3tomcat运行点击图所示的run按钮,对项目进行运行。图6-4运行成功上图即为运行成功。6.6测试结果6.6.1用户登陆注册功能测试我们将分为管理员和用户两个部分对功能模块进行测试。首先,我们使用预先在数据库中添加好的管理员账号进行登陆,查看是否可以成功

温馨提示

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

最新文档

评论

0/150

提交评论