资源描述
. . 摘 要近年来随着计算机的日益普与和网络(特别是因特网)的迅速发展,在全球围形成了一种新的企业经营方式,他们把所有的商业活动和贸易往来电子化, 利用发达的网络环境进行快速有效的商业活动。这就是最近成为世界上最热门的话题:电子商务。凡是利用国际互联网进行商务活动的一种方式就是电子商务。电子商务以其高效率、低廉、高收益、全球化等传统经营方式所无法比拟的优点受到全球的关注。其过网上书店,人们可以足不出户就选购自己所需的图书。网上书店是根据公司的实际需求、应用动态网页技术开发而成。该系统主要是对图书商品进行的一系列操作;并具有占用系统资源少、信息量大的特点,并且可以克服传统图书销售中地域、广告宣传、人力资源不足等限制,能很好地适应网上销售需求。本设计中主要功能模块包括:交易系统采用 4 层结构,主要包括:表现层、控制层、业务层、持久层。表现层:主要是负责用户交互和结果显示。控制层:主要是负责系统的访问控制、数据加载和注销,它是系统的核心控制单元。控制层通过系统的描述来组织工作。业务层:实现了交易系统的主要业务逻辑,是系统的主要运算单元。持久层:实现静态数据和数据库数据的持久化管理,为业务层提供数据服务,是系统进行数据操作的统一界面。设计中使用的主要开发技术有Html,Javascript,JavaSE,JSP, Servlet, JDBC, MVC ,Struts。使用的数据库技术是Mysql。本文介绍了网上书店系统的开发模式和环境,并具体阐述了系统分析、总体设计、系统设计系统的实现与性能测试与分析等过程。关键词:网上书店;MySql数据库;JAVA;Struts技术;JDBC技术AbstractIn recent years, with the popularization of computer and network (especially on the Internet) the rapid development, the formation of a new mode of enterprise management in the global scope, they put all of the commercial activities and trade electronic, fast and effective business activities by using advanced network environment. This is the recently became the hot topic in the world: electronic commerce. Usually a way to carry out business activities by using the Internet is the electronic commerce. The advantages of electronic commerce with its high efficiency, low, high yield, globalization, the traditional management of unmatched global attention. The online bookstore, people can remain within doors will choose the books. Online bookstore is based on the actual demand, dynamic webpage technology development and application. The system is mainly a series of operation of commodity; and has the advantages of occupying less system resources, a large amount of information, and it can overcome the traditional book sales in the region, advertising, human resources lack of restrictions, can be well adapted to the needs of online sales.The main function modules of the design include: trading system by using 4 layer structure, mainly including: the presentation layer, control layer, business layer, persistence layer. Presentation layer: mainly responsible for user interaction and result display. The main access control layer: responsible for system control, data loading and cancellation, is the core of the system control unit. Control layer to organize work through the system description. Business layer: to achieve the main business logic transaction system and management system, is the main operational unit system. The persistence layer: realizing the persistence manager static data and database data, providing data services for the business layer, is a unified data interface of the operating system. The main development technology used in the design of Html, Javascript, JavaSE, JSP, Servlet, JDBC, MVC, Struts. Using the database is Mysql.This paper introduces the development of online bookstore system model and environment, and specifically on the system analysis, system design, system design, system implementation and performance testing and analysis process.Key:online bookstore;MySql Database;JAVA;Struts Technology;JDBC Technology31 / 38. . 目录摘要.IAbstract.II第1章绪论1第2章系统分析.22.1需求分析22.2 可行性分析2第3章总体设计.33.1项目规划33.2访问控制流程图33.3功能结构43.4用例描述5第4章系统设计134.1 设计目标134.2 开发与运行环境134.3 系统概要设计134.4 数据库设计14第5章系统的实现175.1 登录的实现175.2 会员注册界面185.3 菜单显示功能的实现195.4 商品浏览功能的实现215.5 热销图书等功能的实现215.6 购物车功能的实现215.7 订单的实现24第6章性能测试与分析276.1 测试环境276.2 测试流程276.3 测试数据的选择与研究29结论30参考文献31致32. . 第1章 绪 论随着经济的发展,经济逐步进入网络信息化时代。在信息时代来临之季,各企业都紧跟时代的脚步,转变着企业的经营模式、管理模式,从传统的人工管理体制,向信息自动化管理体制过渡。与此同时,企业的传统式的办公管理模式也在逐步向自动化办公管理模式转变。网上交易系统也随之兴盛,正在一步一步进入人们的生活。信息时代的到来让人们尝了“信息爆炸”的滋味,信息的大量拥入让企业在信息处理方便应接不暇,传统的办公模式、对信息的处理方法,早已不能满足企业对信息快速、准确的处理的要求。一个企业对信息数据的掌握程度、处理能力,表达了一个企业对市场的敏感程度,数据的真实性、准确性直接决定着企业的发展方向。从一个传统的面对面交易模式,转向了虚拟的购物场景,更大程序的解决了空间、时间、路程等一系列问题,极大了扩展的公司的业务围,扩展了客户量,并且同时也给了用户的更多的选择空间。当当网上书店在1999年11月成立,是全球最大的中文网上书店。当当是由美国IDG集团、卢森堡剑桥集团、日本软库(Softbank)和中国科文公司的共同投资,它的管理团队拥有很多年的图书出版、零售、信息技术与市场营销等经验。当当对全世界中文读者提供20多万种中文图书并且超过1万种的音像商品,它每天为成千上万的网上消费者们提供方便、快捷的服务,给网上购物者带来很大的方便和实惠。当当一直肩负的使命是以世界上最全的中文图书使得所有中文读者获得启迪,得到教育,享受娱乐!为什么要选择图书作为主力商品呢?在2000年出版的电子商务之父亚马逊网络书店传奇的第20页这样写道:电子商务之父全球的最大的网上商店亚马逊网络书店创办人贝佐斯在选择销售的产品时就进行调查,发现特别适合在网上销售商品,书籍市场的潜力是最大的。我们准备推出品牌的网上书店程序系统,给有志致力于电子商务的客户提供网上书店的解决方案。作为学习先进IT技术的科技人员,我被基于这样的灵感触发了开始开发网上书店的项目。从一开始的懵懵懂懂,经过逐步的调查、研究、了解,然后又通过在开发的过程中请教老师与同学,直到后期的顺利完成项目。这一路走来,自身的技术能力在很大程度上提高了,而且对自己以后的发展充满了无限的信心。第2章 系统分析2.1 需求分析通过调查,要求系统需要有以下功能:由于操作人员的计算机知识普遍较差,要求有良好的人机界面;管理系统用户,由于系统的使用对象多,要求有较好的权限管理;商品详细浏览信息服务;热销商品展示;最新上架商品展示;编辑推荐商品展示;菜单功能的实现;购物车功能的实现;可以对数据进行备份;在相应的权限下,删除数据方便简单,数据稳定性好;对购物车里的信息进行用户的限制;2.2 可行性分析1、经济性经济可行性分析视该系统的应用围而定,如果应用于某一个城市,则可以使用单个程序服务器加一个或几个数据库服务器,加起来不过数万元,这对于一个国有企业公司来说,完全没有问题。该系统成本主要是集中在系统开发上。当系统进入运行后,即可实现网上卖书功能,所带来的效益远远大于系统软件开发的成本。在经济上是完全可行。2、技术性本系统拟采用B/S架构,用Jsp+struts2+Tomcat,这些技术已经相当成熟稳定,同时,需要考虑大量用户同时查询时的系统负载情况,所以系统反应速度与数据库查询优化必不可少。此网上书店系统可以运行在Windows xp,Windows server 2000/2003,Windows vista操作系统。对计算机硬件配置没有太高的要求,现在的个人电脑完全可以满足。数据库运用MYSQL来实现。在设计方面,运用HTML、JSP等知识,利用PhotoShop图像处理工具与Dreamweaver CS5制作出合理的网页。3、 操作性界面设计充分考虑到浏览用户的习惯,图书信息浏览、会员注册登录、查看购物车等功能操作很方便。而且所有网页设计的比较清新、简洁、合理,不会让用户感到视觉疲劳,可操作性很强。. . . . 第3章 总体设计3.1 项目规划网上商城电子购物系统是一个典型的数据库开发应用程序,由商品浏览模块、用户管理模块、订单管理模块组成,规划系统功能模块如下:1.商品浏览模块:该模块主要包括:编辑推荐、最新上架、热销图书、最新上架热卖、图书详细信息浏览、购物车。2.用户管理模块:该模块主要包括:用户注册、用户登陆、验证。3.订单模块:订单信息显示、添加订单信息、生成订单。3.2 访问控制流程图本系统的大体框架使用MVC模式,由控制层Action去掉用service的方法,再由service方法去掉dao里面的方法,由dao来实现对数据库的访问,实现对程序的控制,使用这种方法的好处是,程序便于修改和维护,可插拔性增强。其访问控制流程如以下图(3-1)所示:图3-1 访问控制流程3.3 功能结构程序结构使用分模块管理,实现了功能的主体分工,但各个模块都有相互关联,这些关联关系总体构成此应用程序。以下为整个系统的功能模块图3-2:商品预览商品明细分类检索购物车管理添加商品删除列表恢复列表数量修改清空购物车结算GWAP通用WEB应用平台商品展示我的订单订单确认订单列表删除订单查询明细用户管理登入/登出用户注册图3-2 系统功能模块图3.4 用例描述本节对系统的主要功能模块(商品浏览、购物车实现、订单交易实现、用户管理)的各个子功能的用例分析进行了详细的描述,包括用例名称、功能简述、前置条件、基本流程、分支与异常、后置条件、备注。其中:前置条件:是一个条件列表的集合,可以是一个,也可以是多个,表示在要进行此功能之前,所要达到的一种条件或者状态。后置条件:是一个条件列表的集合,可以是一个,也可以是多个,表示在要此功能完毕之后,后续所对应所达到的条件。基本流程:主要是在用例中所要遵循的逻辑关系。它控制着该过程的工作流程以与跳转情况。分支与异常:在用例中,不同的业务逻辑关系,需要遵循不同的流程,所以它控制着程序的不同逻辑关系之间的流程。若在流程控制中,出现对于不符合主要业务逻辑关系的情况,称之为异常。JAVA运行机制中,异常主要为可恢复性异常和不可恢复性异常,也称之为普通异常和系统异常。对于异常的处理,给用户以友好的界面提示,在本程序的设计实现中,对于异常的处理,可恢复性异常,用捕捉进行人工处理,给用户以友好的提示,而不可恢复性异常,如数据库服务没有启动等,这类异常信息,处理方式为配置异常界面,进行显示,解决用户体验度问题。 商品展示 商品预览:用例描述其实现功能,在访问请示地址时,可以实现商品信息的查看,是交易系统的首页面,交易所选商品的必要入口,以与交易功能进行时的必要步骤。表3-1 商品预览的用例描述Table 3-1 Use case description of goods preview用例名称商品预览功能简述交易系统首页面交易功能入口前置条件应用程序部署完成Tomcat服务器正常启动基本流商品展示浏览器访问应用程序(localhost:8080/dandang/main/main.action)显示系统首页面(商品浏览、交易功能入口)分支与异常无后置条件无备注无 商品明细: 对于感兴趣的商品进行详细的信息查看,显示出商品的细节信息。此功能的实现,是商品浏览中的最后一个模块,把商品的所有详细信息查询出来。表3-2 商品明细的用例描述Table 3-2 Use case description of goods detail用例名称商品明细功能简述对感兴趣的商品信息进行详细查看前置条件进入交易系统首页面基本流 通过商品分类,来快速查找商品信息选择感兴趣商品显示商品明细分支与异常无后置条件无备注无 分类检索: 不同商品信息有不同的分类,就是按照不同的类别进行查看。在查看商品信息的同时,还对商品的提供分类统计个数、分页、商品检索等功能。类别分一级总类别和二级子类类别。表3-3 分类检索的用例描述Table 3-3 Classification retrieval use case descriptions用例名称分类检索功能简述按照类别显示商品提供分类统计、分页、检索功能前置条件已经发布了多种类别以上的商品进入交易系统首页面基本流选择感兴趣的一级类别显示类别二级类别和统计、显示类别下所有商品对商品进行分页显示、回到主类别分支与异常无后置条件无备注无 购物车管理 添加商品:把对于感兴趣的商品加入购物车,以继续查看商品信息时保留感兴趣的商品。表3-4 添加商品的用例描述Table 3-4 Add the use case description of goods用例名称添加商品功能简述添加商品到购物车添加完成自动显示购物车界面前置条件已经发布了多种类别以上的商品进入交易系统首页面基本流感兴趣商品已经选择用户已经登录分支与异常未登录用户,点击“购买”后,进入登录页面后置条件无备注只有登录的注册用户才可以使用购物车 删除列表: 把选择的商品从购物车中放入待删除区域,可以恢复。表3-5 删除列表的用例描述Table 3-5 Delete the list of use case descriptions用例名称删除订单列表功能简述删除订单中订单列表删除后重新统计订单金额前置条件用户已经登陆购物车不为空基本流购物车中存在1条以上订单列表选择删除重新统计订单金额分支与异常删除后,购物车中如果没有订单,不能显示“结算”按钮后置条件无备注无 恢复列表: 从待删除商品中,把想要购买的商品恢复到购物车中。表3-6 恢复列表的用例描述Table 3-6 Return a list of use case descriptions用例名称恢复删除的订单列表功能简述恢复删除的订单中的订单列表恢复后重新统计订单金额前置条件用户已经登陆购物车中有已经删除得订单列表基本流购物车中存在不少于1条的商品信息选择“恢复”重新统计订单金额分支与异常无后置条件无备注无 修改数量: 对于感兴趣的商品可以一次性购买多个。表3-7 修改数量的用例描述Table 3-7 Modify the number of the use case description用例名称修改数量功能简述修订订单列表中商品数量自动统计订单价格前置条件用户已经登陆购物车中至少有1条以上的数据基本流输入新的数量点击修改后,重新计算订单订单总额如果为零,订单不能“结算”分支与异常订单总额为零,不能结算后置条件无备注无 清空购物车: 把购物车里面的商品列表信息清空。若购物车中没有商品信息,则不能清空购物车,对于购物车的清空操作,前提是已经登录的用户,用于区分哪个是哪用户清空的,避免了清空出错。表3-8 清空购物车的用例描述Table 3-8 Empty shopping cart use case descriptions用例名称清空购物车中商品功能简述 清空购物车中所有商品清空后回到首页面前置条件用户已经登陆购物车中有订单列表基本流首页选择“购物车”选择“清空购物车”返回首页面,再次选择“购物车”,显示选购为空分支与异常无后置条件无备注无 结算:对于心经登录的用户,已经确认购买的商品,进行价格结算与支付。点击结算后,会生成一个订单确认,并且订单的金额必须大于零。表3-9 结算商品的用例描述Table 3-9 Goods to the settlement of the use case description用例名称购物车中商品结算功能简述购物车中商品结算前置条件用户已经登陆购物车中有订单列表,金额总计大于零基本流进入购物车(确保购物车中订单金额大于零)点击“结算”分支与异常无后置条件无备注无 我的订单 订单确认: 系统会依照购物车生成一个订单,由用户确认订单是否有误。在这里,用户是不能够进行修改订单信息的,只可以核对订单信息是否正确。核对正确无误后,进行下一步生成订单,并且反馈订单信息给用户。表3-10 订单确认的用例描述Table 3-10 Use case description of order confirmation用例名称订单确认功能简述订单信息确认售货信息确认修改前置条件订单已经“结算”基本流进入“订单确认”页面修改“送货地址”生成订单分支与异常没有登陆的用户,到登陆页面以与收获信息输入异常后置条件无备注无 订单列表: 显示已经有购买的订单信息。显示订单的详细信息,如总价、个数、商品信息,可以对已经支付过的订单进行操作,操作为删除、统计等。订单的维护,可以查看以往的购买情况,对以往的历史记录进行详细信息的查询。表3-11 订单列表的用例描述Table 3-11 The use case description of the order list用例名称订单列表功能简述显示订单列表信息计算总价,显示个数等信息前置条件已经有购物记录基本流进入“我的当当”页面分支与异常无后置条件无备注无 订单删除: 对于已经确认的订单可以进行删除。删除订单必须先登录,并且有购物记录,对于不满足条件的进行信息提示。在删除前,要对用户进行确认提示,提示是否进行删除,删除后无法恢复。以免误删记录。表3-12 订单删除的用例描述Table 3-12 Order to remove the use case description用例名称订单删除功能简述删除购物订单信息前置条件已经有购物记录基本流进入“我的当当”页面在要删除订单上,选择“删除”分支与异常无后置条件无备注无 查询明细: 查询订单的商品列表详细信息。对以往的购买记录进行详细查询,查看以往的当当价、商品定价,以与优惠情况。以方便用户在购买同样的商品时,对以往价收货地址等有一个详细的了解。在明细中,最好是有图表进行统计显示,让用户查看的更明显直观,由于时间等原因,在程序设计的时候,没有进行设计,在以后的相关学习开发中,引入此功能,进一步完善程序,提高其实用价值。表3-13 添加商品的用例描述Table 3-13 Add the use case description of goods用例名称订单列表功能简述显示订单列表信息提供订单删除入口前置条件已经有购物记录基本流进入“我的当当”页面分支与异常无后置条件无备注无 用户管理 登入/登出:用户登陆系统和退出系统的功能实现。表3-14用户登入登出的用例描述Table 3-14 User login logout the use case description用例名称登入/登出功能简述已经注册并且通过验证的用户登入已经登陆用户登出前置条件用户已经注册并且通过验证基本流由登陆页面登陆功能进入未登陆用户“详细信息”页面登入登入后页头提示分支与异常未注册用户提示注册后置条件登入页头提示(欢迎信息),登出页头提示(登出入口)备注无 用户注册:对于有兴趣在此上购物的用户提供注册功能。表3-14 用户登入登出的用例描述Table 3-14 User login logout the use case description用例名称用户注册功能简述用户注册Email验证前置条件系统不存在的用户基本流进入注册页面,填写基本信息验证用户名是否重复提交确认Email信息输入验证码注册分支与异常用户已经不存在不选择Email验证后置条件无备注无. . 第4章 系统设计4.1 设计目标 本系统主要实现以下目标:1、系统采用人机交互方式,界面清晰,信息传输灵活方便。2、键盘操作,快速灵活3、商品详细浏览信息服务4、热销商品展示5、最新上架商品展示6、编辑推荐商品展示7、购物车功能的实现8、系统运行稳定,能有一定的基本的容错能力4.2 开发与运行环境1、硬件平台:lenovoB4602、软件环境:操作系统:windows7数据库:mysql浏览器:IE8.0与以上、fixFoxTomcat-5.5.28分辨率:1024*7683、所用技术:Struts2+jQuery+JDBC+JSP 采用MVC编程思想进行设计4.3 系统概要设计总体系统架构如下:交易系统采用 4 层结构,主要包括:表现层、控制层、业务层、持久层。表现层:主要负责用户交互和结果显示,交易系统和管理系统有不同的 URL 入口界面,详细设计参考“GWAP DEMO”。控制层:主要负责系统的访问控制、数据加载和注销,是系统的核心控制单元。控制层通过系统描述来组织工作。业务层:实现了交易系统和管理系统的主要业务逻辑,是系统主要的运算单元。持久层:实现了静态数据和数据库数据的持久化管理,为业务层提供数据服务,是系统进行数据操作的统一界面。总体系统架构图,如图4-1所示:图 4-1 总体系统架构图根据系统功能模块,可以设计出能满足用户需求的各种实体,以与它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含和种具体信息,通过之间的步入形成数据的流动。从需求分析可得出系统有如下实体:商品实体、用户实体、商品详细信息实体、订单实体,订单详细信息实体,收货人地址实体,购物车实体,购物车明细实体。4.4 数据库设计(1)根据以上对系统的分析,对数据库进行如以下图(4-2)E-R数据库设计模型设计:图4-2 数据表关系图(2)E-R数据库设计模型说明:d_user表:是用户信息表(表4-1)表4-1 用户信息表Table 4-1 The user information tableid主键,自动生成email用户的email,注册的用户名,唯一nickname用户妮称password密码user_integral用户等级,比如会员啊,超级会员等is_email_verify是否进行验证Y/Nemail_verify_code验证码,系统生成的UUID码用于验证last_login_time最后一次登录时间last_login_ip最后一次登录IPd_receive_address表:用户的地址表(表4-2)表4-2 用户的地址表Table 4-2 The users address tableid主键,自动生成user_id用户的id,与user表进行关连receive_address收货地址full_address收获详细地址postal_code邮政编码mobile手机phone固定d_category表:商品类别表,分类显示商品(表4-3)表4-3 商品类别表Talbe 4-3 Product category tableid主键turn排序字段en_name英文名字name名称description描述parent_id父类的id表之前的联,用于第一级类和二级类d_product表:商品信息表,存储商品信息(表4-4)表4-4 商品信息表Table 4-4 Commodity information tableid主键product_name商品名称add_time上架时间fixed_pric定价dang_price当当价keywords关键字,用于检索has_deleted是否删除product_pic商品图片d_category_product表:类别表和商品信息表间的维护关连关系的表(表4-5)表4-5 类别和商品关系表Table 4-5 Category and merchandise relational tablesId 主键Cat_id类别的主键Product_id商品信息主键d_order表:用户订单表(表4-6)表4-6 用户订单表Table 4-6 The user order formid主键user_id用户IDstatus订单状态order_time下订单时间order_desc订单描述total_price总价receive_name收货名称full_address收货详细地址postal_codemobile手机phoned_item表:订单明细表(表4-7)表4-7 订单明细表Table 4-7 Schedule of the orderid主键order_id订单编号product_id商品IDproduct_name商品名称dang_price当当价product_num商品个数amount总价d_book表:图书表(表4-8)表4-8 图书表Table 4-8 Book tableid主键author作者publishingpublish_time出版时间word_number字数which_ediion版次total_page总页数print_number出版量author_summary作者简介catalogue图书简介. . 第5章 系统的实现5.1 登录的实现登录界面如图5-1所示:图5-1 登陆界面登录功能的实现:/用于接收页面通过Struts2传过来的用户名和密码private String email;private String password;/返回给用户用户名错误的信息private String nameerrorMsg;/返回给用户密码错误的信息private String pwderrorMsg;private UserDao dao = new UserDaoImpl();public String execute()throws Exception/调用登陆方法,查询User对象User user = dao.login(email);/对用户和密码进行验证,判断是否输入正确if(user!=null)if(MD5.getString(password).equals(user.getPassword()Map session = super.session;. . /登陆成功之后,把用户对象绑定至session中,session来自于继承的BaseActionsession.put(user, user);returnsuccess;elsepwderrorMsg = 密码错误;returnlogin;elsenameerrorMsg = 用户名错误;returnlogin;5.2 会员注册界面会员注册界面如图5-2所示:图5-2 会员注册页面在页面中对数据格式的校验,以用户名为例子实现:/验证开始$(#txtEmail).blur(function()$(#email.info).html();var email=$(this).val();var reg=/b(_A-Za-z0-9-+(._A-Za-z0-9-+)*(A-Za-z0-9-)+(.A-Za-z0-9-+)*(.A-Za-z0-92,)|(.A-Za-z0-92,.A-Za-z0-92,)$)b/;if(email.trim().length=0)$(#email.info).html(不能为空);return;if(!reg.test(email)$(#email.info).html(格式不正确);return;/接收通过ajax异步发请求,向服务器验证是否存在用户名$.ajax(url:verify,type:post,data:email=+email,dataType:text,success:function(data)if(data=true)$(#email.info).html(可以使用);else$(#email.info).html(名已经存在);return;););/验证完毕5.3 菜单显示功能的实现菜单显示界面如图5-3:图5-3 分类浏览菜单显示的功能实现:通过数据表d_category,发现数据存储的方式有parent_id和id有对应关系,在菜单实体类下新增用于存放菜单的List集合,使用联查询就可以查询一级和二级菜单项目,然后在JSP页面进行迭代就可以显示出信息数据查询代码如下:Select * from d_category c inner join d_category d on c.id=d.parent_id然后再JSP页面中进行迭代就可以显示:代码如下:5.4 商品浏览功能的实现以最新上架图书为例,程序运行结果如图5-4所示:图5-4 最新上架图书栏目实现思路如下: news.action-NewsAction(获取最新上架图书信息)-new.jsp 1.根据需求找到涉与的数据表,了解数据表结构 2.根据需求了解对数据表做什么操作,编写DAO实现 3.编写Action实现 4.编写JSP标签 5.输入action请求测试 6.将news.action响应容引入到main.jsp中部分代码实现如下:dao的实现部分定义: public List getProductRecommand() throws Exception通过 select * from d_product p join d_bokk on p.id=d.id where p.hasdeleted=0 order by rand() limit 0,2;查出数据,并返回一个集合,在页面中进行迭代实现5.5 热销图书等功能的实现这些功能实现方法与商品浏览功能的实现方法基本一样,在这里不作详细阐述5.6 购物车功能的实现运行结果如图5-5所示:图5-5 购物车中的商品实现思路:1.根据购物车列表条目编写CartItem2.以购买为例,编写Action和action配置(ajax)buy.action-BuyAction-Cart-DAO-d_product3.编写JSP端的标签和js脚本代码实现:购物车实体分为:Cart实体类和CartItem实体类、CartItem类:商品名细实体类,存放商品信息和每件商品的个数,总体形成Cart类,便于对购物车的管理。实体类代码如图:图5-6图5-6 CartItem实体类Cart实体类:购物车类,存放CartItem商品名细以与对购物车增删改查的操作的方法,部分代码如图5-7图5-7 购物车的操作Action的部分代码实现,实现过程中对于购物车的删改是通过两个集合实现的,从另一个集合删除增加到另一个集合,对list集体的add,remove同时操作两个集合,就把对购物车的操作转化为了对集合的操作,方便了对购物车的管理,更好的实现对购物车的增删改查。如图5-8:图5-8 Action的部分代码对result结果集的选择说明:通过Action控制层的返回值,来判断是哪一个result,也就是说,result的name属性的值为Action的返回值,通过result的默认type的值dispcher来进行转发的控制。具体Action的配置如图5-9:图5-9 Action的配置5.7 订单的实现确认订单运行结果如图5-10所示:图5-10 确认订单生成订单运行结果:如图5-11图5-11 填写送货地址设计实现思路 1、用户填写送货地址信息后,当单击下一步按钮执行下面处理 (1)先向d_order表写入一条记录. (2)然后向d_item表写入若干条记录(购物车有多少个购买的Item对象) (3)如果选择地址项为填写新地址,将表单信息,还要向d_receive_address表写入一份. (4)清空购物车信息 2、当用户选择地址下拉单项选择项时,执行下面处理 (1)采用ajax方式根据选项去d_receive_address表查找以前用过的地址,将地址信息以json格式返回 (2)将地址信息填充到表单中各个输入框中. (3)如果选择的是填写新地址,将表单各输入框清空部分代码实现:设计实现思路:首先从页面判断是否是使用的新地址(addressInfo的值,0为新的地址,其它不为新的),如果是新的地址,往收货人信息表里面写入新的地址数据,若不为新的地址,则直接写order和item的信息。Item表的信息从购物车中获取订单的详细信息,然后封装成一个item对象,写入数据库。Order信息由收货人信息和订单的信息,这此信息从页面中传入,然后封装成一个order对象,写入数据库。具体代码实现,如图5-12:图5-12 业务控制代码. . 第6章 性能测试与分析6.1 测试环境硬件环境:处理器:I5;存:2GB;硬盘空间:500GB;显卡: NVIDIA GeForce 310M。软件环境:Windows7和linux;数据库:mysql,tomcat 6.x,浏览器:IE6.2 测试流程登录控制流程:在登陆界面user/login_form.jsp页面输入用户名与密码,先在JSP页面中检查格式是否正确,然后,首先判断是否已经进行了验证,若没有验证,则进行验证,若进行验证,则进入正常的登陆流程。如图6-1:开始Y判断是否验证正常登录,查看商品信息进行验证N图6-1 用户登录流程商品浏览与订单测试流程:首先访问应用程序的主页面main/main,进入分类浏览图书商品,若要购物图书,首先判断图书是否已经购买,若购买,提示已经购买,若没有购买,提示购买成功,加入购物车。然后进入结算流程,首先判断是否登陆,若没有登陆,则进行登陆流程,在登录的过程中,有一个用户名和密码验证,若通过验证,则成功登录,登录的时候,还要判断是从哪里登录的,登录成功后的跳转界面,若在主页上登录,则登录成功到主页面显示,若是在点击结算的时候,进行的登录,登录成功之后跳转到结算。在登录的时候。若没有登录成功,则对用户进行提示。若已经成功登陆,进行订单商品信息流程,经商品信息确认无误后,则进入收货填写流程,当收货地址填写信息无误(符合数据规)后,进入提交的确认订单流程,把商品信息与收货人地址信息存入数据库,生成一个订单编号和商品的总价,显示给用户。如图6-2所示:. . 已经登录访问 main/main分类浏览图书商品点购买,购买书没有购买过加入购物车提示已经购买,返回结算,是否登录没有登录登录界面订单商品信息确认登录判断登录成功登录失败填写收货地址信息提交确认订单已经购买图 6-2 整个购物流程6.3 测试数据的选择与研究对本系统进行测试,采用黑盒测试法进行测试,对于一些测试,采用一些边界测试,对其验证的功能,有一定的数据进行测试。表 6-1验证信息Table 6-1 Email authentication information用户名密码结果空空用户名不能为空#x163.空密码不能为空#X1111失败,用户名格式不对#x163.1111成功对于没有验证的用户,登陆的时候会跳转到验证界面。对于用户的注册、订单地址的填写、购物车的增删改查等,都是用同样的方法进行测试,这里不做太多说明。. . 结论本系统是在MyEclipse10开发工具和MySQL数据库软件基础上,经过两个多月的时间设计完成的。但是仍有一些未实现的功能,如网上支付、注册成功之后的发送功能等。但是通过本次网上书店系统的设计与完成,获得了许多技术的提高和系统化运用知识。本系统的设计实现中,主要有以下技术亮点:介绍了表现层、控制层与业务逻辑访问层的MVC三层设计结构。购物车模块,不仅仅是一个Cart购物车类,而是一个CartItem类,购物车明细类,方便对于购物车的管理。在购物车模块中,对于准删除的商品信息操作,是用了两个集合,一个是商品信息的有效集合,一个是待删除集合,这样就把对购物车的操作转换为对集合的操作。本系统实现了用户注册、登录、购物车管理、订单管理等功能,这些功能是网上购物系统中不可缺少的部分。参考文献1 清宏计算机工作室.JSP编程技巧
展开阅读全文