版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
┊┆┆┆题目基于JavaWeb的易卖购物网站——注册登陆在线聊天功能商品管理模块系别数学与信息工程系专业年级2012级计算机科学与技术(移动互联网方向)
基于JavaWeb的易卖购物网站──浏览模块订单管理模块会员管理模块摘要:在如今竞争激烈的社会,物质生活水平提高不能完全满足现代人的欲望,该网站的创立既能满足网上冲浪的乐趣,更能为你省下出去逛街话费的不必要时间,网上商城的开辟不仅节省店铺的租赁费用,而且也为交通缓解了不必要的压力。完成此项目还能增强我们的创新意识,端正我们的求实科学作风,更能培养我们刻苦专研的能力。关键词:购物网站、Struts2+Hibernate+Spring、
JSPMySql、Tomcat、MyEclipsePickto:intoday'scompetitivesociety,materiallifelevelisnotfullysatisfythemodernpeople'sdesire,thesiteofbothcansatisfythefunofsurfingtheInternet,canhelpyousavetheunnecessarytimetogooutshoppingcallsonlinemallopeningupnotonlysavethestorerentalfee,butalsofortransportationalleviatesunnecessarystress.Completionoftheprojectalsocanenhanceourinnovationconsciousness,correctourrealisticscientificattitude,tocultivateourabilitytostudyhard.Keywords:shoppingwebsite,Struts2+Spring+Hibernate,JSP,MySql,Tomcat,MyEclipse目录1绪论 11.1网站开发背景 11.2系统开发工具概述 11.2.1MyEclipse简介 21.2.2Tomcat简介 31.2.3JSP简介 31.2.4JSP的优势 31.2.5JSP的弱势 31.2.6MySql简介 31.2.7Struts2+Hibernate+Spring简介 31.3B/S结构概述 31.4Struts框架简介 31.4.1Struts简介 31.5Oracle简介 32需求分析 42.1电子商务的产生和发展情况 42.2电子产品在线销售系统的需求分析 52.3数据流图 63总体设计与实现 73.1会员注册模块 73.2会员模块实现 83.2.1用户登陆模块 83.2.2购买商品模块 83.2.3生成订单模块 83.3订单信息管理模块 83.3.1订单的设计与实现 83.3.2查看订单模块的设计与实现 83.4 浏览模块 164系统测试与性能分析 174.1 软件测试 174.2 前台首页的测试 194.3购物车模块的测试 194.4用户注册模块的测试 204.5本章小结 245参考文献 25结论 43致谢 441绪论1.1网站开发背景早在70年代,电子数据交换(EDI:ElectronicDataInterchange)和电子资金转移(EFT:electronicfundtransfer)作为电子商务应用的雏形就开始出现。90年代初,随着Internet技术的发展,商业机构开始介入Internet,发现它在通讯、客户服务等方面的巨大潜力,便开始应用Internet开展贸易活动,于是电子商务(ElectroricCommerce)率先在美国、加拿大等国家正式出现。电子商务的发展是伴随着Internet用户的急剧增加而呈几何级数增长的。至1998年底,Internet已与世界上180个国家和地区连通,用户达到1.13亿户,电子商务交易值达到430亿美元。从我国的情况看,Internet用户发展速度也相当快。到1999年6月底,我国上网人数达到400万人。据预测,到2005年,中国将拥有全球第二大Internet用户群。电子商务活动一般分为以下几种:(1)通过Internet进行的交易,如联机商店(OnlineShop)和网上直销(InternetDirectSale);(2)通过Internet进行商务活动,如联机服务(OnlineService)和网上广告(InternetAdv.)等;(3)通过增值网络(Value-addednetwork)进行的电子交易和服务,如通过EDI进行采购和报关等;(4)通过连接企业或机构的计算机网络发生的交易和服务。1.2系统开发工具概述1.2.1MyEclipse简介MyEclipse,是基于Eclipse开发的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发。据官方介绍,诸如三星、IBM、戴尔、惠普、花旗集团、西门子、斯坦福大学、波音公司等知名机构均使用MyEclipse进行Java、JavaEE开发,80%以上的全球财富100强企业均是MyEclipse的用户。MyEclipse提供了对UML、Ajax、Web、WebServices、J2EE、JSP、XML、Struts、JSF、JavaPersistence、EJB、扩展数据库以及各种应用服务器的集成支持。MyEclipse也全面支持各种主流的第三方框架,让你能够快速高效地进行开发工作。此外,MyEclipse还全面支持各种基于Eclipse平台的插件,允许你自由定制或扩展个性化功能。MyEclipse全面支持Eclipse开源平台的所有功能特性,如果你熟悉Eclipse,那么你能够轻松地上手MyEclipse,包括熟悉的Eclipse快捷键,而且使用MyEclipse完成某项任务往往要比使用Eclipse更加快速、简单。1.2.2Tomcat简介Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。这里的诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为8.0.28。1.2.3JSP简介JSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。它实现了Html语法中的java扩张(以<%,%>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。1.2.4JSP的优势(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。1.2.5JSP的弱势(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。1.2.6MySql简介MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。1.2.7Struts2+Hibernate+Spring简介Struts2:Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2的变化很小。Hibernate:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Spring:Spring是一个开源框架,它由RodJohnson创建。这是为了解决企业应用开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,任何Java应用都可以从Spring中受益。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。1.3B/S结构概述相对于C/S结构,尽管C/S结构相对于更早的文件服务器来说,有了很大的进步,但与B/S相比,缺点和不足是很明显的。首先,B/S比C/S的维护工作量大大减少了。C/S结构的每一个客户端都必须安装和配置软件。假如一个企业共有50个客户站点使用一套C/S结构的软件,则当这套软件进行了哪怕很微小的改动后(比如增加某个功能),系统维护员都必须进行这样的维护;将服务器更新到最新版本;将客户端原有的软件卸载,再安装新的版本,然后进行设置,最为可怕的是客户端的维护工作必须不折不扣的进行50次。若其中有部分客户端是在另外一个地方,则系统维护员还必须跑到该地方再进行卸载、安装、设置的工作。若某个客户端,忘记进行这样的维护,则该客户端将会碰到版本不一致的问题而无法工作。而B/S结构,客户端不必安装及维护。其他客户端,只要重新登录系统,使用的就已经是最新版本的软件了[8]。其次,B/S相对C/S能够降低总体拥有成本,C/S软件一般是采用两层结构的。而龙特璐华软件采用的是三层结构。1.4Struts框架简介Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。其最初萌芽于CraigMcClanahan的构思,诞生至今也一年有余了。现在,Struts是Apache软件基金会旗下Jakarta项目组的一部分,由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(MessageResources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间[9]。首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法Execute。在Struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,Struts这种事件方式称为ApplicationEvent,ApplicationEvent和ComponentEvent相比是一种粗粒度的事件。1.4.1Struts简介Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的Model-View-Controller(MVC)设计模式的应用框架(WebFramework),是MVC经典设计模式中的一个经典产品。MVC结构在Struts中,已经由一个名为ActionServlet的Servlet充当控制器(Controller)的角色,根据描述模型、视图、控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。在MVC的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应Struts里的ActionForm与Action两个需要继承实现超类。在这里,Struts可以与各种标准的数据访问技术结合在一起,包括EnterpriseJavaBeans(EJB),JDBC与JNDI。在Struts的视图(View)端,除了使用标准的JavaServerPages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如VelocityTemplates,XSLT等。通过应用Struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与映射关系的配置文件(struts-config.xml)中。发展历程在JavaEE的Web应用发展的初期,除了使用Servlet技术以外,普遍是在JavaServerPages(JSP)的源代码中,采用HTML与Java代码混合的方式进行开发。因为这两种方式不可避免的要把表现与业务逻辑代码混合在一起,都给前期开发与后期维护带来巨大的复杂度。为了摆脱上述的约束与局限,把业务逻辑代码从表现层中清晰的分离出来,2000年,CraigMcClanahan采用了MVC的设计模式开发Struts。后来该框架产品一度被认为是最广泛、最流行JAVA的WEB应用框架。2006年,WebWork与Struts这两个优秀的JavaEEWeb框架(WebFramework)的团体,决定合作共同开发一个新的,整合了WebWork与Struts优点,并且更加优雅、扩展性更强的框架,命名为“Struts2”,原Struts的1.x版本产品称为”Struts1”。至此,Struts项目并行提供与维护两个主要版本的框架产品——Struts1与Struts2。充满竞争的MVC框架虽然Struts的是成熟的和流行的框架,建设前端Java应用,它正面临新的挑战,从较新的”轻量”的MVC框架,如Spring的MVC,Stripes和Tapestry。新的XForms标准和框架,也可能是另一种选择,以建立复杂的Web窗体验证与Struts的未来。在WebWork框架脱离Apache的Struts的几年前,以提供改进和完善,同时保持了相同的一般建筑的原始Struts框架。然而,它在2005年12月宣布,该框架将重新合并WebWork。WebWork2.2已获得通过,成为Apache的Struts的2,达到了第一个完整的版本于2007年2月。Sun公司最近提出了一项新的除了Java平台,所谓的JavaServer界面(SF)。除了原有的框架下,Apache的Struts的项目还提供了一个JSF的为基础的框架,所谓的页岩。其他的MVC框架,并不是基于J2EE的包括RubyonRails的,WebObjects,Django,Catalyst,TurboGears,CakePHP,Symfony(对于PHP),Zend公司,大展ATK公司,并CodeIgnite(对于PHP)。Struts4php是一个Struts框架的PHP的web脚本语言版本。Girders是微软.NET基于C#的Struts框架的一部分。1.5Oracle简介OracleDatabase,又名OracleRDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。劳伦斯·埃里森和他的朋友,之前的同事BobMiner和EdOates在1977年建立了软件开发实验室咨询公司(SDL,SoftwareDevelopmentLaboratoriesORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统。作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。2需求分析2.1电子商务的产生和发展情况中国电子商务始于1997年。中国商品订货系统(CGOS)、中国商品交易中心(CCEC)、虚拟“广交会”等大型电子商务项目也在1997年相继推出,拉开了中国电子商务的序幕。1998年“首都电子商务工程”的展开和1999年“8848网上超市”的出现,标志着中国电子商务开始进入快速发展时期,中国电子商务由此正式启动。据统计,目前全国已有4万家商业网站,其中网上商店700余家。电子商务项目大量推出,几乎每天都有各类电子商务咨询网站、网上商店、网上商城、网上专卖店、网上拍卖等诞生。电子商务应用与发展的地域也由北京、上海、深圳等极少数城市,开始向各大中城市发展。据IDC预测,2000年中国大陆网上交易额将达4000万美元,到2003年将达38亿美元。可以说,中国电子商务已经由表及里、从虚到实,从宣传、启蒙和推广阶段进入到了务实的发展实施阶段。1.政府推进环境改善我国政府正全面、积极、稳妥地推进中国电子商务的发展。1998年以来,政府对电子商务的支持与协调力度明显增加。我国电子商务发展的总体框架(包括整体战略、发展规划、发展措施、技术体制标准以及相关法律法规)的推出,将会使电子商务有一个更加规范有序的应用与发展环境。不少地方政府也都对电子商务给予了前所未有的关注与支持,开始将电子商务作为重要的产业发展方向。2.制约瓶颈开始突破网上支付、实物配送和信用等作为电子商务系统工程中的重要环节,被视为制约中国电子商务应用与发展的瓶颈。1999年以来,网上支付的瓶颈正在迅速得到解决。在这方面较为成功的,有“8848”网上超市提供的包括网上支付在内的多元化支付方式,有首都电子商城电子商务支付平台等。3.应用模式日趋多元在BtoC模式中,网上书店和网上商场在增加网上支付功能、完善各项服务后以更大的势头发展;网上拍卖、网上商城、网上邮购等面向消费者的电子商务网站大量推出。不少电子商务企业和工商企业开始酝酿企业间电子商务。证券电子商务也有所发展,网上炒股对于有些股民已经成为现实。网络是一片独特的天空,中国国情又有其特殊性。怎样将结合Internet和中国国情,充分发挥电子商务的优越性,实现极富意义的电子商务技术和商务模式的创新,是摆在中国电子商务业界人士面前的一大课题。4.内外融合渐成大势具有外资背景的电子商务企业和项目日益增加。其表现的形式是双向的:既有海外风险投资直接进入国内的电子商务企业,也有国内企业通过海外上市吸收海外资金。在不少电子商务企业内,外籍或具有外资企业背景的高级管理人员显著增加。与此同时,海外电子商务企业开始直接进入中国市场。随着中国加入世界贸易组织的前景日趋明朗,基于超越国界的Internet的电子商务不可逆转地走上了世界经济一体化的道路。2.2电子产品在线销售系统的需求分析经过对各大电子产品购物网站及实际数码产品企业销售过程的考察、分析,要求本系统具有以下功能(1)统一友好的操作界面,保证系统的易用性,方便用户的操作;(2)具备电子产品信息的展示功能,方便浏览者对电子产品信息进行浏览与比较;(3)规范的电子产品分类,方便浏览者分类查找电子产品;(4)完善的购物车功能与用户结账功能;(5)设置网站公告信息模块,使浏览者能够及时了解网站的各项动态变化,及销售的新品、特价活动等信息;电子产品销售排行功能;订单信息查询功能、数码产品信息查询功能;(8)全面的后台管理功能,以方便管理员对网站信息进行更新与管理。2.3数据流图1.系统总数据流图如图2-1所示图2-1系统总数据数据流图订单管理数据流图如图2-2所示。图2-2订单管理数据流图基本信息维护数据流图如图2-3所示。图2-3基本信息维护数据流图数据流图2.数据字典数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。它主要是对数据流图中的数据流、处理逻辑、外部实体、数据存储和数据项等方面进行具体的定义。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。(1)数据项定义如表2-1所示。表2-1系统数据项定义序号名称别名类型长度(字符)I01-01goods_id商品号Int4I01-02goods_name商品名varchar50I01-03goods_miaoshu商品描述varchar5000续表3-1I01-04goods_pic存放商品图片Varchar50I01-05goods_yanse商品颜色Varchar50I01-06goods_shichangjia商品市场价int4I01-07goods_tejia商品特价int4I01-08goods_isnottejia普通商品varchar50I01-09goods_catelog_id商品种类号int4I01-10catelog_id种类编号Int4I01-11catelog_name种类名称Varchar50I01-12catelog_miaoshu种类描述Varchar5000I01-13order_id订单IDInt4I01-14order_bianhao订单编号Varchar50I01-15order_date订单生成日期varchar50I01-16order_zhuangtai订单状态varchar50I01-17order_jine总的消费金额Int4I01-18order_songhuodizhi送货地址Varchar50I01-19order_fukuangfangshi付款方式Varchar50I01-20order_user_id用户IDInt4I01-21orderItem_id订单明细编号Int4I01-22order_id订单编号Int4I01-23goods_id商品编号Int4I01-24goods_quantity购买数量Int4I01-25user_id用户IDInt4I01-26user_name用户名Varchar50I01-27user_pw用户密码Varchar50I01-28user_realname真实姓名Varchar50I01-29user_address住址Varchar50I01-30user_sex性别Varchar50I01-31user_tel联系电话Varchar50I01-32user_email用户邮箱Varchar50续表2-1I01-33user_qq用户QQVarchar50I01-34userId管理员IDint4I01-35userName管理员名称Varchar50I01-36userPw管理员密码Varchar50I01-37gonggao_id公告编号Int4I01-38gonggao_title公告标题Varchar50I01-39gonggao_content公告内容Varchar5000I01-40gonggao_data公告创建时间Varchar50I01-41gonggao_fabuzhe发布人Varchar50I01-42liuyan_id留言idInt4I01-43liuyan_title留言标题Varchar50I01-44liuyan_content留言内容Varchar5000I01-45liuyan_date留言时间Varchar50I01-46liuyan_user留言客户Varchar503总体设计与实现3.1会员注册模块此模块完成用户的注册功能,点击“注册”按钮调出用户注册页面,在此页面中,输入相关信息,如用户帐户,用户密码,姓名等,点击“注册”完成注册。用户注册页面设计如图3-1所示:图3-1用户注册页面设计核心代码如下:publicActionForwarduserReg(ActionMappingam,ActionFormaf,HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTime()); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringname=req.getParameter("name"); Stringdel="no"; Strings=liuService.panduan_zhanghao(loginname); if(s.equals("yizhan")) { req.setAttribute("message","账号已被占用,请输入其他账号"); req.setAttribute("path","site/userreg/userreg.jsp"); returnam.findForward("success"); } else { Stringsql="insertintot_uservalues(?,?,?,?,?)"; Object[]params={id,loginname,loginpw,name,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","注册成功,请登录"); req.setAttribute("path","site/default.jsp"); returnam.findForward("success");}3.2会员模块实现3.2.1用户登陆模块用户登陆模块实现用户登陆功能,它验证用户提交的用户名和密码是否被授权,并根据访问权限为用户提供相应的业务功能。用户登页面设计如图所示3-2所示。图3-2用户登陆界面3.2.2购买商品模块用户注册账号并成功登录商城后,通过主页的家具展示或按家具类别找到想要购买的家具,点击家具图片,打开家具详细信息界面,浏览家具的具体信息,如果想要购买该家具,输入购买数量,点击购买按钮,完成家具购买操作。“家具购买”设计页面如图3-3所示:图3-3家具购买页面3.2.3生成订单模块用户选定好家具信息后,暂时存放到购物车里,如果不想再购买,可以进行结账操作,从而生成订单。订单模块页面设计如图3-4所示:图3-4订单模块页面3.3订单信息管理模块3.3.1订单的设计与实现1.点击订单信息管理后,右侧显示所有订单信息。点击“订单明细”,系统弹出明细对话框,可以查看到订单的详细信息。订单信息管理的窗口设计如图3-5所示:图3-5订单管理窗口3.3.2查看订单模块的设计与实现1.实现目标用户填写完订单并提交成功后可以通过查看订单按钮看到自己的订单及详细信息。界面的设计如图5-10所示。图5-10查看订单模块2.实现过程所属页面名:myOrder.jsp具体代码://根据用户查询订单 { Mapsession=ServletActionContext.getContext().getSession(); TUseruser=(TUser)session.get("user"); //获取用户 Stringsql="fromTOrderwhereorderUserId="+user.getUserId(); ListorderList=orderDAO.getHibernateTemplate().find(sql); //调用orderDAO中的find方法,执行sql语句 Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("orderList",orderList); returnActionSupport.SUCCESS; } publicStringorderMana() //订单管理 { Stringsql="fromTOrderorderbyorderUserId"; ListorderList=orderDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("orderList",orderList); returnActionSupport.SUCCESS; } publicStringorderDel()//用户自己删除订单 { TOrderorder=orderDAO.findById(orderId); orderDAO.delete(order); Mapsession=ServletActionContext.getContext().getSession(); TUseruser=(TUser)session.get("user"); this.setMessage("删除成功"); this.setPath("myOrder.action?userId="+user.getUserId());//跳转到myOrder.action return"succeed"; } publicStringorderDelByAd()//管理员删除订单 { TOrderorder=orderDAO.findById(orderId); orderDAO.delete(order); Stringsql="deletefromTOrderItemwhereorderId="+orderId; orderItemDAO.getHibernateTemplate().bulkUpdate(sql); this.setMessage("删除成功"); this.setPath("orderMana.action"); return"succeed"; } publicStringorderShouli() //对订单进行受理 { TOrderorder=orderDAO.findById(orderId); order.setOrderZhuangtai("yes");//已经受理订单 orderDAO.attachDirty(order); this.setMessage("受理订单成功"); this.setPath("orderMana.action"); return"succeed"; } publicStringorderDetail()//订单明细 { Stringsql="fromTOrderItemwhereorderId="+orderId; ListorderItemList=orderItemDAO.getHibernateTemplate().find(sql); for(inti=0;i<orderItemList.size();i++) { TOrderItemorderItem=(TOrderItem)orderItemList.get(i); orderItem.setGoods(goodsDAO.findById(orderItem.getGoodsId())); }//取出订单里的商品 Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("orderItemList",orderItemList); returnActionSupport.SUCCESS; } 在cart.java中packagecom.util;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importcom.model.TGoods;importcom.model.TOrderItem;publicclassCart//定义购物车类{ protectedMap<Integer,TOrderItem>items; publicCart()//定义构造方法 { if(items==null) { items=newHashMap<Integer,TOrderItem>(); } } publicvoidaddGoods(IntegergoodsId,TOrderItemorderItem) //添加购物车 { if(items.containsKey(goodsId)) { TOrderItem_orderitem=items.get(goodsId); _orderitem.setGoodsQuantity(_orderitem.getGoodsQuantity()+orderItem.getGoodsQuantity());//如果购买商品重复,则加上数量 items.put(goodsId,_orderitem); }else { items.put(goodsId,orderItem); } } publicvoiddelGoods(IntegergoodsId)//删除购物车 { items.remove(goodsId); } publicvoidupdateCart(IntegergoodsId,intquantity) //更新购物车的数量 { TOrderItemorderItem=items.get(goodsId); orderItem.setGoodsQuantity(quantity); items.put(goodsId,orderItem); } publicintgetTotalPrice() //计算总的价格 { inttotalPrice=0; for(Iteratorit=items.values().iterator();it.hasNext();) { TOrderItemorderItem=(TOrderItem)it.next(); TGoodsgoods=orderItem.getGoods(); intquantity=orderItem.getGoodsQuantity(); totalPrice+=goods.getGoodsTejia()*quantity;//单价乘以数量 } returntotalPrice; } }。3.4浏览模块1.实现目标为了方便顾客选购电子产品,本系统采用了两种展示产品的方式。一种是以类别查询为基础查看电子产品,另外一种是新品上架、特价产品和销售排行的展台。以销售排行查看数码产品为例,顾客在首页的的销售排行即可查看销售排行,方便顾客查看畅销的数码产品相关信息及详细信息。界面的设计如图5-6所示。图3-6销售排行模块2.实现过程所属页面名:index.jsp通过查询t_orderItem表中按销售额字段goods_quantity降序排列实现。系统测试与性能分析4.1软件测试经过需求分析、设计和编码等阶段的开发后,得到了源程序,开始进入到软件测试阶段。然而,在测试之前的各阶段中都可能在软件产品中遗留下许多错误和缺陷,如果不及时找出这些错误和缺陷,并将其改正,这个软件产品就不能正常使用,甚至会导致巨大的损失。目前,程序的正确性证明尚未得到根本的解决,因此软件测试仍是发现软件中错误和缺陷的主要手段。系统整体测试步骤:1.单元测试单元测试是整体测试中的第一步,通常在编码阶段进行。在源程序代码经过编译、评审、确认没有语法错误之后,便可开始进行单元测试。2.集成测试集成测试在单元测试完成之后,将所有的模块概要设计要求组装成系统时进行的测试,主要目标是发现与接口有关的问题。3.确认
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国联通博士后工作站校园招聘启动笔试历年参考题库附带答案详解
- 2025中国建筑股份有限公司岗位招聘1人笔试历年参考题库附带答案详解
- 2026版《金版教程》高考总复习历史教材版新第一部分 训练15 辛亥革命
- 颈深部脓肿诊断与治疗专家共识
- 2026陕西延安市甘泉县人民政府办公室开展大学生到政府机关见习工作30人笔试备考试题及答案详解
- 丰城市林业局公开招聘专职护林员18名考试备考题库及答案详解
- 中国标签条码打印机市场应用现状与项目投资建议研究报告
- 2026中国科学院上海生命科学研究院分子细胞卓越中心柏东生组助理研究员和博士后招聘笔试备考题库及答案详解
- 2026四川宜宾市屏山县市场监管局第三批招聘1人笔试参考题库及答案详解
- 成都陆港智汇科技服务有限公司面向社会公开招聘成都市青白江区四级城乡社区工作者的笔试参考试题及答案详解
- 2026交银金融科技有限公司人才招聘备考题库及参考答案详解一套
- 2026年全国低压电工作业证理论考试题库含参考答案
- 2026上海市闵行区七宝文来学校编外教师和实习教师招聘备考题库及1套参考答案详解
- 《脓毒症和脓毒性休克管理国际指南2026》深度解读课件
- 2026年江苏省自考13702国际经济法考点重点
- 2026年安全生产月安全宣传咨询日主题课件
- 2025年广东省中山市初二地生会考真题试卷+答案
- 2023-2024学年福建省泉州市高一(下)期末化学试卷(教学质检)
- 中小型水库运营方案
- 2026年7月n2试题答案
- 2026年电信智慧家庭工程师三级认证考试题及答案
评论
0/150
提交评论