网上商城系统-学位论文_第1页
网上商城系统-学位论文_第2页
网上商城系统-学位论文_第3页
网上商城系统-学位论文_第4页
网上商城系统-学位论文_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

网上商城系统用户子功能模块软件工程学院:软件工程专业:指导教师: 2014年6月网上商城系统摘要网上购物系统又称为网上商城、网络商城、网上商城、网上开店平台、网店管理系统、网店程序、网上购物系统、网上商城系统等。无论是开设个人网上购物商店还是企业网上商城商城,一套好用的网上购物系统都是必须的。网上购物系统拥有完整规范的商流和金流,整合了几十家国内知名的支付网关,并且内置了多套精美模版,同时还提供灵活强大的模版编辑功能。商家可以根据自己的喜好对网上商店(网上购物系统)的前台页面做个性化设置;同时,网上购物系统还拥有强大的商城功能,如店铺推荐和搜索,商品推荐和展示等等。运营商可以给商家提供全方位的广告宣传和推广。顾客也可以方便的找到自己心仪的商品和商店;通过网上购物系统的建设以实现对商业零售企业提供信息化管理。建立了B2C的网络销售系统。本毕业设计的内容是设计并且实现一个基于web技术的网上购物系统,故而系统主要以j2EE作为开发基础,主要使用了struts2+spring+hibernate等多种框架的结合使用,用myeclipse作为开发工具,以MySQL作为数据库,以Macromedia公司的Dreamweaver作为界面美化工具,使用JAVA语言开发,页面采取JSP动态页面开发技术。该系统界面简单、操作方便,容易维护。着重论述了系统功能与实现、数据流程及存储,包括商品目录、用户注册、网上订货与购物、库存查询、后台数据库管理等。关键词:购物商城,S.S.H(Struts,Hibernate,Spring),JAVA,JSP,MySQLOnlineShoppingSystemAbstractOnlineshoppingsystemisalsocalledtheonlinemall,onlineshoppingmall,onlineshopping,onlineshop,shop,shopplatformmanagementsystemprocedures,theonlineshoppingsystem,onlineshoppingsystem.Inboththeopeninpersonalonlineshoppingstoreoronlineshoppingmall,agooduseoftheonlineshoppingsystemisamust.onlineshoppingsystemhaveacompletespecificationofbusinessflowandcapitalflow,theintegrationofdozensofwell-knowndomesticpaymentgateway,andbuiltmanybeautifultemplate,alsoprovidesaflexibleandpowerfultemplateeditingfunction.Companycanaccordingtotheirownpreferencestoshoponline(onlineshoppingsystems)frontpagedopersonalizedsettings;Atthesametime,onlineshoppingsystemhastheformidableMallfeatures,suchasshoprecommendationandsearch,recommendationanddisplayetc..Theoperatorcangivebusinessestoprovideadvertisingandpromotionofthefullrangeof.Customerscaneasilyfindtheirfavoritegoodsandshops;Realizesthroughtheon-lineshoppingsystemconstructiontoprovidetheinformationmanagementofcommercialretailenterprises.ThecontentsofthisgraduationprojectistodesignandimplementasystemofonlineshoppingbasedonWebtechnology,thissystemmainlyusesj2EEasthebasisofdevelopment,themainuseofthecombineduseofstruts2+spring+hibernateandotherframeworks,MyEclipseasadevelopmenttool,MYSQLasthedatabase,usingMacromedia'sDreamweaverastheinterfacelandscapingtools,theuseofJAVAlanguagedevelopmenttake,pagedevelopmenttechnologyofJSPdynamicpages.Thesystemhasasimpleinterface,easyoperation,easymaintenance.Emphaticallyelaboratedthesystemfunctionandtherealization,thedataflowandstorage,includingcatalog,userregistration,onlineorderingandshopping,stockinquiry,backstagedatabasemanagementetc..Keywords:Shoppingmall,Struts,Hibernate,Spring,JAVA,JSP第Ⅰ页共Ⅱ页目录1引言 页共32页1引言1.1课题研究的背景电子商务,就是在网上开展商务活动。它是以电子交易为手段,完成金融、物品、服务、信息等价值的交换,是快速而有效地进行各种商务活动的最新方法。电子商务的出现,改变了传统的一手交钱一手交货的模式,使得商业模式发生了很大的变化。随着信息技术的不断发展和Internet互联网技术的日益普及,人们越来越意识到电子商务对国家经济、企业管理和个人生活所带来的巨大影响。它满足企业、商人和消费者对提高产品和服务的质量、加快服务速度、降低费用等方面的需求,也帮助企业和个人通过网络查询和信息检索为企业下一步的发展方向提供支持。借助电子商务,企业和个人,企业和企业可以通过网络进行交易和全过程的服务。电子商务代表着未来贸易方式的发展方向,其应用和推广将给社会和经济带来极大的效益。具有强大生命力的现代电子交易手段己越来越被人们所认识,发达国家在这方面有很多年的发展历史,发展中国家也正在加紧制定总体发展战略,大力促进电子商务在国民经济各个领域的应用,力争在越来越激烈的国际竞争中占据有利的地位。因此,对于网上购物技术的研究和实现,以及搭建一个实用的网上商店是很重要的。无论在国内还是在国外,电子商务都还处于起步阶段。最近几年电子商务得到了迅速的发展。尽管各个国家具体情况不同,但是基于对国家经济发展的预测,各国政府都很重视电子商务,并且积极地发展电子商务。在发达国家,电子商务的发展非常迅速,通过Internet进行交易己成为一种潮流。基于电子商务所连带出的商品交易方案、电子结账方案和信息安全方案等,已逐步成为国际信息技术市场竞争的焦点。随着电子商务的日益发展,产生了虚拟银行、网络营销、网上购物、网络广告等新兴信息产业,从侧面反应了电子商务正在对社会和经济产生着深刻的影响。在电子商务过程中,通过人与电子通讯方式的结合,极大地提高了商务活动的效率,减少了不必要的中间环节。同时,电子商务的发展也将转变政府的行为。在电子商务逐渐变的流行的时代里,当企业应用电子商务进行经营,银行实现金融电子化,以及消费者实现网上消费的同时,也将对政府管理行为提出新的要求,国外在这方面有很好的法律法规加以约束,防止商业欺诈行为。国内在这方面做的就没有国外的好,没有一定的规范加以约束,我们经常可以看到一些消费者在网上购买的东西和实际不一样,发现上当后我们也无能为力。在国外,XML技术已经在电子商务领域里得到广泛应用。由于它具有自描述性、内容与显示相分离、独立于平台等特点,并且提供了一套跨平台、跨网络、跨程序语言的数据描述方式,已逐渐成为科学与业务应用中数据表示及Web应用中数据交换的标准格式。1.2课题研究的意义首先,对于消费者来说:第一,可以在家“逛商店”,订货不受时间的限制;第二,获得较大量的商品信息,可以买到当地没有的商品;第三,网上支付较传统拿现金支付更加安全,可避免现金丢失或遭到抢劫;第四,从订货、买货到货物上门无需亲临现场,既省时又省力;由于网上商品省去租店面、召雇员及储存保管等一系列费用,商场的同类商品更便宜。其次,对于商家来说,由于网上销售没有库存压力、经营成本低、经营规模不受场地限制等,在将来会有更多的企业选择网上销售,通过互联网对市场信息的及时反馈适时调整经营战略,以此提高企业的经济效益和参与国际竞争的能力。再次,对于整个市场经济来说,这种新型的购物模式可在更大的范围内、高的效率实现资源配置。综上可以看出,网上购物突破了传统商务的障碍,无论对消费者、企业还是市场都有着巨大的吸引力和影响力,在新经济时期无疑是达到“”效果的理想模式。2系统的开发环境2.1MyEclipse简介在开发本平台中所用到的开发工具就是是知名的java项目开发工具MyEclipse。MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的一种扩展,利用MyEclipse,我们可以在数据库和J2EE的开发、发布,以及在应用程序服务器的整合当中极大地提高系统的工作效率。MyEclipse是一个功能非常丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。2.2TomcatTomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML(标准通用标记语言下的一个应用。)页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。这里的诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。2.3MySQL数据库数据库使用的是MySQL开源数据库。MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。系统特性:(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。(2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。(4)支持多线程,充分利用CPU资源。(5)优化的SQL查询算法,有效地提高查询速度。(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。(8)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。(9)提供用于管理、检查、优化数据库操作的管理工具。(10)支持大型的数据库。可以处理拥有上千万条记录的大型数据库。(11)支持多种存储引擎。(12)Mysql是开源的,所以你不需要支付额外的费用。(13)MySQL使用标准的SQL数据语言形式。(14)Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。(15)Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。3系统开发的思想与技术3.1JSP技术与MVC本系统采用jsp技术,基于MVC模式开发,使用SSH框架(struts2、spring、hibernate)来增加系统的开发速度。所谓的MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。程序就是用struts2和hibernate这两个框架来实现模型层和控制器这两层,jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,jsp页面请求先到action,再到dao,再回到action,回到jsp页面,action主要处理来自页面的请求,dao主要是和数据库的交互,struts2主要用在action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在dao,包括对数据库的增、删、改、查的操作,spring控制程序的流程。3.2S.S.H框架S.S.H框架是J2EE应用中struts2+spring+hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,它由以下3个框架构成:Struts2框架:Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Customtaglibrary。Spring框架:Spring的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(InversionofControl)容器、非侵入性(Nointrusive)的框架,并提供AOP(Aspect-orientedprogramming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVCWeb框架的实现,并对一些常用的企业服务API(ApplicationInterface)提供一致的模型封装,是一个全方位的应用程序框架(Applicationframework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate等),Spring也提供了与它们相整合的方案。Hibernate框架:Hibernate是一个开放源码的ORM持久层框架。作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。4系统分析4.1系统需求分析开发一个网上购物商城系统前,首先需要考虑用户的需求是什么,即该网站应该实现的主要功能。通过相关调查发现,在编写网上购物商城系统时,应将登陆者分为两种角色,即注册会员和后台管理员。会员在登陆进入该网上购物商城后,不仅可以查看其各种服务条款,还可以选择查看各种商品的详细信息并选择购买。此外,会员还能查看自己的详细订货信息。管理员登陆后,不仅可以查看商品销售情况,还可以管理会员、商品、仓库和其自身的信息。管理员可以根据实际情况添加其他管理员以维护该网上购物商城的购物环境和安全。4.1.1用户功能需求用户的主要功能:注册登录功能、商品浏览功能包括使用排行榜、搜索功能、分类别功能、购物车功能、订单管理、用户信息管理、商品评价管理、收货信息管理。(1)登录功能。如果是网上商城的用户,购买前需填写用户名、密码即可享受商城服务。(2)注册功能。顾客首先要注册为网上商城的用户。注册后,用户可继续如实填写详细个人信息及收货人信息,同时可修改密码、查看购物车、修改详细信息。(3)选择商品功能。顾客浏览网上商城,将自己需求的商品放入到购物车中(可在网上商城首页、商品分类、搜索商品详细信息页面进行该操作),可连续添加商品。(4)管理购物车。顾客选择完商品后可进入购物车页面,查看自己要购买的商品,可修改某一商品数量、取消购买某商品和清空整个购物车。(5)处理订单。对应客户购买商品信息的需求,在确定了所购商品的价格、数量等信息后,用户需要填写其收货地址、联系电话,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货的处理。(6)商品评价管理。用户购买成功后,可查看自己的订单,确认收货。然后对商品进行评价,填写评价信息。4.1.2管理员功能需求系统管理员的主要功能:商品分类管理、商品管理、订单管理、商品评价管理、注册用户管理、订单统计、商品销售统计。(1)管理订单功能。管理员可以查询订单,根据用户是否确认、是否付款、是否发货将订单分类并进行管理。(2)管理商品功能。管理员可以添加、查询、修改、删除商品。(3)会员管理功能。管理员可以查看管理员和用户信息并进行添加、删除、修改。(4)系统管理功能。管理员可以上传,删除相关图片。(5)用户评价管理。管理员可以实现查看、删除用户评价的具体信息。4.1.3性能需求数据精确度:价格单位保留到分。适应性:购物流程要简单明了,产品图片要清楚,产品信息描述准确。4.2可行性分析4.2.1经济可行性由于开发本系统所需的硬件和软件环境,市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对用户不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少商家的工作强度,提高工作效率,而且方便了用户的购买,打破了传统的销售模式,极大限度的方便了用户,也为系统的进一步推广创造了条件,此外,系统开发的周期较短,人员经济支出不大,从经济方面来说开发此系统是可行的。4.2.2技术可行性本系统基于B/S架构和MVC模式,主要包括前端系统界面的开发以及后台数据库的建立以及维护两个方面。对于前者要求应具备功能完备、易于使用等特点,而对后者则要求能建立数据一致性和完整性强的数据库。本系统采用MyEclipse和MySQL分别作为前端和后端的开发工具。这两种工具能与WindowsXP和win7系统很好的兼容,因此该系统在技术上是可行的。4.2.3操作可行性本系统是一个基于B/S模式,使用户无论身处何地,都能在浏览器中浏览商品信息,自由选择商品,购买商品,在操作使用上十分方便。而管理员也可以通过浏览器对商品数据库进行增删查改,并处理用户购买的信息。从以上的分析可以得出该系统可以满足操作方便可行的需求。5系统详细设计与实现5.1设计目标对于典型的数据库管理系统,尤其是网上购物商城这样数据流量比较大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应该满足以下几个目标:(1)界面设计美观友好,信息查询灵活、方便、快捷、准确,数据存储安全可靠。全面展示商城内所有商品,并可以展示最新商品。(2)实现网上购物。(3)商品销售排行,方便顾客了解本商城内的热销商品及帮助企业领导者做出相应的决策。(4)查看商城内的帮助信息。(5)系统最大限度地实现易维护性和易操作性。(6)系统运行稳定、安全可靠。5.2系统总功能图系统管理员系统管理员用户商品分类管理商品管理订单管理商品评价管理用户管理商品销售统计订单统计用户信息订单管理购物车商品浏览注册登录商品评价收货信息管理图5.1系统功能图5.3系统用例图对用户需求做以下分分析,从用户的角度看到的或需要的系统功能,在本系统的UML建模中,可以创建以下的参与者:用户,管理员。从用户角度可以有以下一些操作:注册、登录、查询商品信息,搜索商品,购买商品,查看自己的购物车,用户还可以进行评价,查询自己的订单(包括订单是否发货、查询订单详情、删除订单、修改订单等)。从管理员角度管理员有以下操作:维护用户信息、查询商品、购买商品、维护订单、维护信息、处理订单。商品分类商品分类购物车注册用户商品评价用户信息用户系统管理员销售注册登录订单用户信息图5.2系统用例图5.4程序流程图数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。接下来通过数据流图来表示数据流。数据流图(DataFlowDiagram)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。是结构化系统分析的基本工具。用户流程图如下:购物商城购物商城会员注册登陆购物分类检索热销产品精品推荐挑选商品购物车继续购物修改购物车会员登陆填写或修改用户信息结账送货方式付款完成订单收货特价商品图5.3用户流程图图5.4用户注册流程图图5.5用户登录流程图5.5系统和数据库的配置系统按通用的B/S(浏览器、服务器)模式进行设计。浏览器浏览器Web服务器数据库图5.6B/S结构数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。5.6概念模型设计概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。注册用户管理员注册用户管理员销售管理统计管理管理管理管理商品分类商品订单评价注册登录用户信息管理管理管理管理管理购物车用户收货信息管理管理nn 1 1nn.111nn111n1n1图5.7系统E-R图5.7数据库表结构根据平台的需求分析和功能模块的划分,所涉及的实体有商品分类、订单、订单条目、购物车、评价、商品、收货信息、用户、商品统计、订单统计。因此系统的定义数据库主要包含10张表:订单表t_dingdan,订单条目表t_dingdanitem,订单统计表t_tongjidj,购物表t_gouwuche,评价表t_pingjia,商品分类表t_cate,收货信息表t_shouhuo,商品表t_product,商品统计表t_tongjiproduct,用户表t_user。表5.1订单表名称类型空默认值备注idint(11)noauto_increment主键addressvarchar(255)yes空收件人地址beizhuvarchar(255)yes空备注createtimedatetimeyes空添加时间deleteststusint(11)no0订单是否删除orderedvarchar(255)yes空订单号phonevarchar(255)yes空收件人手机sjnamevarchar(255)yes空收件人姓名statusvarchar(255)yes空订单状态xiangqingvarchar(255)yes空订单详情zongjiadoubleyes空总价useridint(11)yes空关联用户的ID表5.2订单条目表名称类型空默认值备注idint(11)noauto_increment主键jiagedoubleyes空价格shuliangint(11)no0数量dingdanidint(11)yes空关联订单的IDproductidint(11)yes空关联商品的ID表5.3订单统计表名称类型空默认值备注idint(11)noauto_increment主键chenggongint(11)no0成功的订单数dayvarchar(255)yes空日期quxiaoint(11)no0取消的订单数shengchengint(11)no0生成的订单数表5.4购物车名称类型空默认值备注idint(11)noauto_increment主键createtimevarchar(255)yes空添加时间slint(11)no0数量productidint(11)yes空关联商品的IDuseridint(11)yes空关联用户的ID表5.5评价表名称类型空默认值备注idint(11)noauto_increment主键createtimevarchar(255)yes空添加时间orderedvarchar(255)yes空订单IDpingjiavarchar(255)yes空评价pingyuvarchar(255)yes空评语productidint(11)yes空关联商品的IDuseridint(11)yes空关联用户的ID表5.6商品表名称类型空默认值备注idint(11)noauto_increment主键chapingint(11)no0差评createtimevarchar(255)yes空添加时间deleteststusint(11)no0删除状态haopingint(11)no0好评impathvarchar(255)yes空图片infotextyes空简介kucunint(11)no0库存数量pnamevarchar(255)yes空商品名price1doubleyes空原价price2doubleyes空促销价tuijianvarchar(255)yes空推荐xiaoliangint(11)no0销量zhongpingint(11)no0中评cateidint(11)yes空关联分类的ID表5.7商品分类表名称类型空默认值备注idint(11)noauto_increment主键catenamevarchar(255)yes空商品分类名deletestatusint(11)no0是否删除状态表5.8商品统计表名称类型空默认值备注idint(11)noauto_increment主键xiaoliangint(11)no0销量xiaoshoudoubleyes空销售额productidint(11)yes空关联商品的ID表5.9收货信息表名称类型空默认值备注idint(11)noauto_increment主键addressvarchar(255)yes空收货地址phonevarchar(255)yes空联系电话truenamevarchar(255)yes空收货人姓名useridint(11)yes空关联用户的ID表5.10用户表名称类型空默认值备注idint(11)noauto_increment主键addressvarchar(255)yes空地址createtimevarchar(255)yes空注册时间deletestatusint(11)no00表示正常1表示锁定passwordvarchar(255)yes空密码phonevarchar(255)yes空电话roleint(11)no01表示管理员2表示购物…truenamevarchar(255)yes空姓名usernamevarchar(255)yes空用户名5.8系统功能实现的主要框架5.8.1SSH框架SSH框架就是struts2,spring,hibernate的简称,运用3个框架的集成协作使用,可以有效的提高代码编写的效率,从而有效的降低程序开发的周期。5.8.2hibernate配置文件<hibernate-configuration> <session-factory> <!--Databaseconnectionsettings--> <propertyname="proxool.pool_alias">DBPool</property> <propertyname="proxool.xml">proxool.xml</property> <propertyname="vider_class"> org.hibernate.connection.ProxoolConnectionProvider </property> <!--EchoallexecutedSQLtostdout--><propertyname="show_sql">true</property><propertyname="format_sql">true</property> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <!--EnableHibernate'sautomaticsessioncontextmanagement--><propertyname="current_session_context_class">thread</property> <propertyname="hibernate.hbm2ddl.auto">update</property> <mappingclass="shop.model.User"/> <mappingclass="shop.model.Category"/> <mappingclass="shop.model.Product"/> <mappingclass="shop.model.Shouhuo"/> <mappingclass="shop.model.Gouwuche"/> <mappingclass="shop.model.Dingdan"/> <mappingclass="shop.model.Pingjia"/> <mappingclass="shop.model.Tongjidj"/> <mappingclass="shop.model.Tongjiproduct"/> <mappingclass="shop.model.Dingdanitem"/> </session-factory></hibernate-configuration>这是Hibernate的配置文件,在该文件中<propertyname="proxool.xml">proxool.xml</property>首先加载了连接池的一个配置,就是加载了数据库的连接信息,<propertyname="show_sql">true</property><propertyname="format_sql">true</property>表示控制台打印SQL语句,并格式化SQL语句<propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>表示当前数据库的语言是MYSQL。 <mappingclass="shop.model.User"/> <mappingclass="shop.model.Category"/> <mappingclass="shop.model.Product"/> <mappingclass="shop.model.Shouhuo"/> <mappingclass="shop.model.Gouwuche"/> <mappingclass="shop.model.Dingdan"/> <mappingclass="shop.model.Pingjia"/> <mappingclass="shop.model.Tongjidj"/> <mappingclass="shop.model.Tongjiproduct"/> <mappingclass="shop.model.Dingdanitem"/>都表示当前数据库建立起来的表和类之间的映射关系,比如:<mappingclass="model.User"/>表示User类和t_user表之间的建立起来的对应关系,其他也都类似。5.8.3struts配置文件<struts> <constantname="struts.objectFactory"value="spring"/> <constantname="struts.i18n.encoding"value="UTF-8"/> <packagename="index"namespace="/"extends="struts-default"> <actionname="index"method="index"class="indexAction"> <resultname="success">index.jsp</result></action> <actionname="indexmethod"class="indexAction"><resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result></action> <actionname="method"class="manageAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action></package></struts>这是struts的配置文件,该文件的作用主要起到来自JSP的请求的跳转分配的作用。该struts配置文件是个总的配置文件。5.8.4spring配置文件Spring在本项目中主要用到了IOC的功能,就是把对象实例化。<!--daos--> <beanid="userDao"class="shop.dao.impl.UserDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="categoryDao"class="shop.dao.impl.CategoryDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="productDao"class="shop.dao.impl.ProductDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="shouhuoDao"class="shop.dao.impl.ShouhuoDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="gouwucheDao"class="shop.dao.impl.GouwucheDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="dingdanDao"class="shop.dao.impl.DingdanDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="pingjiaDao"class="shop.dao.impl.PingjiaDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="tongjidjDao"class="shop.dao.impl.TongjidjDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="tongjiproductDao"class="shop.dao.impl.TongjiproductDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="dingdanitemDao"class="shop.dao.impl.DingdanitemDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> 本段代码是把DAO实例化的代码,通过spring的IOC模式。 <beanid="manageAction"class="shop.action.ManageAction"scope="prototype"> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="categoryDao"><refbean="categoryDao"/></property> <propertyname="productDao"><refbean="productDao"/></property> <propertyname="dingdanDao"><refbean="dingdanDao"/></property> <propertyname="pingjiaDao"><refbean="pingjiaDao"/></property> <propertyname="tongjidjDao"><refbean="tongjidjDao"/></property> <propertyname="tongjiproductDao"><refbean="tongjiproductDao"/></property> <propertyname="dingdanitemDao"><refbean="dingdanitemDao"/></property> </bean>上面这段代码是把ManageAction实例化的代码,原理也是spring的IOC模式。<beanid="indexAction"class="shop.action.IndexAction"scope="prototype"> <propertyname="productDao"><refbean="productDao"/></property> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="shouhuoDao"><refbean="shouhuoDao"/></property> <propertyname="gouwucheDao"><refbean="gouwucheDao"/></property> <propertyname="dingdanDao"><refbean="dingdanDao"/></property> <propertyname="pingjiaDao"><refbean="pingjiaDao"/></property> <propertyname="tongjidjDao"><refbean="tongjidjDao"/></property> <propertyname="dingdanitemDao"><refbean="dingdanitemDao"/></property> </bean>上面这段代码是把IndexAction实例化的代码,原理也是spring的IOC模式。5.9系统功能实现的主要模块5.9.1网站页面本页面主要实现用户浏览搜索所要购买的商品以及其注册成为会员,并可以登录进入系统,并且我们还设计了精品推荐、销量排行和新品上架等内容供用户选择购物。如图:图5.8首页代码://网站首页 publicStringindex()throwsException{ HttpServletRequestrequest=ServletActionContext.getRequest(); StringBuffersb=newStringBuffer(); sb.append("where"); sb.append("deletestatus=0orderbytuijian,iddesc"); Stringwhere=sb.toString(); inttotal=0; total=productDao.selectBeanCount(where.replaceAll("orderbytuijian,iddesc","")); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } request.setAttribute("list",productDao.selectBeanList((current1) *pagesize,pagesize,where)); request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize, currentpage,"index.action","共有"+total+"条记录")); return"success"; }本段代码是主页面代码,通过productDao.selectBeanList方法从数据库中取出各种商品的信息,同时提供搜索菜单等功能,最后通过return"success";返回到struts.xml对应的JSP文件。5.9.2用户注册页面用户可以点击系统的“用户注册”按钮,进入注册页面,填写用户名、密码、电话号码等信息。如图:图5.9注册//注册代码:publicvoidregister()throwsException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); response.setCharacterEncoding("gbk"); response.setContentType("text/html;charset=gbk"); Stringusername=request.getParameter("username"); Userbean=userDao.selectBean("whereusername='"+username+"'"); if(bean!=null){ response .getWriter() .print( "<scriptlanguage=javascript>alert('该用户名已经存在,注册失败');window.location.href='register.jsp';</script>"); return; } bean=newUser(); Stringpassword=request.getParameter("password"); Stringtruename=request.getParameter("truename"); Stringaddress=request.getParameter("address"); Stringphone=request.getParameter("phone");bean.setAddress(address); bean.setCreatetime(Util.getTime()); bean.setPassword(password); bean.setPhone(phone); bean.setRole(2); bean.setTruename(truename); bean.setUsername(username); userDao.insertBean(bean); Shouhuosh=newShouhuo(); sh.setAddress(address); sh.setPhone(phone); sh.setTruename(truename); sh.setUser(bean); shouhuoDao.insertBean(sh); response .getWriter() .print( "<scriptlanguage=javascript>alert('注册成功');window.location.href='login.jsp';</script>"); }本段代码是程序的注册代码,首先从获取从页面获取注册的信息,同时新建一个User对象,把该条记录写入数据库,如果该条记录存在,则返回到注册页面,同时提醒用户“该用户名已经存在,请重新注册!”。5.9.3用户购物页面用户浏览过商品的详细信息后,决定购买某商品时,可将此商品放入购物车,若想继续选择其他商品,可返回商品页面或首页,继续查看其他想购买的商品信息,并可将其放入购物车。如图:图5.10用户购物5.9.4购物车页面查询完毕后,用户需填写联系电话、联系地址等信息,确认无误后下订单。还可以更正购物车的信息,比如删除商品选项。如图:图5.11购物车6系统的调试与测试6.1软件测试的目的软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。四、质量也代

温馨提示

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

评论

0/150

提交评论