基于JavaWeb的网上购物系统的设计与实现

摘 要

随着现代现代信息网络技术的不断发展,互联网市场正在以无法想象的速度和空前的规模迅猛发展,电子商务成为人们关注的焦点,各企业认识到建立企业级的电子商务平台不仅可以拓宽销售渠道,还能提升形象和品牌效应,对企业的发展有着重要的战略意义。在此背景下,网络购物作为新兴的商业模式逐步浮出水面,并在发展过程中备受瞩目。

网络购物巨大的市场规模和美好的发展前景不容小视。但是网络购物的繁荣需要时间,需要业界的投入,需要网络的发展。相信中国电子商务在一段时间后会达到国际化水平。

网上购物系统,是在网络上建立一个虚拟的购物商场,使您的购物过程变得轻松、快捷、方便,很适合现代人快节奏的生活;同时又有效的控制“商场”运营的成本,开辟了一个新的销售渠道。

本系统利用现代化的电子及网络技术,为消费者和企业搭建一个良好的互动平台。让用户享受快捷的购物方式,为企业提供不同于传统销售的崭新的销售模式。 该购物系统是一个中小型的电子商务系统,可以为各类用户提供方便的在线购物环境。用户可以在系统中实现注册、登录、修改个人信息、分类查询商品信息、购物、管理购物车、结账等功能。管理员可以通过后台管理模块实现对商品、物流、订单等后台管理功能。本系统采用servlet和jsp技术,以MySQL为系统数据库开发,整个系统操作简便、界面友好、灵活实用。

关键词: 电子商务;网上购物;jsp;servlet

The design and implementation of the JavaWeb based Shopping online System

Abstract

With the development of modern information and network technology, the Internet market is unimaginable speed and on an unprecedented scale rapid development, electronic commerce become attention focus of each enterprise understanding to build enterprise class e-commerce platform can not only broaden the sales channels, but also enhance the image and brand effect, to the enterprise development the important strategic significance. In this context, online shopping as a new business model gradually surfaced, and in the development process has been the focus of attention.

Online shopping market scale and good prospect not allow to ignore.But the network shopping’s prosperity needs time,need industry input and the development of the network.I believe that E1ectronic Commerce in China will reach the international level over a period of time.Key words:network shopping,traditional shopping,integrity,policy,security Development.Online shopping system, is in the network established a virtual shopping malls, make your shopping process easy, fast and convenient, it is suitable for the fast pace of modern life; and effective control "the market" operation cost, opened the new sales channels.

The system uses modern electronic and network technology, to build a good interactive platform for consumers and enterprises. Allow users to enjoy a quick way of shopping, for the enterprise to provide a new sales model is different from the traditional sales. The shopping system is a small and medium-sized e-commerce system, can provide users with convenient online shopping environment. Users can achieve registration, login, modify personal information, classification and query product information, shopping, management shopping cart, checkout and other functions in the system. Administrators can achieve through the background management module of goods, logistics, orders and other background management functions.The system uses Eclipse/ASP.NET development environment, with Oracle as the database development system. The system has the advantages of simple operation, friendly interface, flexible and practical.

Keywords: E-commerce;online shopping;jsp;servlet

目 录

1 绪论

1.1 系统的开发背景以及意义

1.2 系统的国内外研究现状

1.3 论文主要工作和结构安排

1.4 相关技术及工具介绍

1.5 本章小结

2 系统需求分析

2.1 系统设计目标

2.2 业务流程分析

2.3 系统功能需求

2.4 性能需求

2.5 本章小结

3 系统设计

3.1 系统总体功能设计

3.2 注册登录管理模块的设计

3.2.1 注册登录管理的界面设计

3.2.2 注册登录管理的功能设计

3.3 商品分类管理模块的设计

3.3.1 分类管理模块界面设计

3.3.2 分类管理模块界面的功能设计

3.4 订单管理模块的设计

3.4.1 前台订单管理模块的界面设计

3.4.2 前台订单管理模块的功能设计

3.4.3 后台订单管理模块的界面设计

3.4.4 后台订单管理模块的功能设计

3.5 数据库设计

3.5.1 数据库概念结构设计

3.5.2 数据库逻辑结构设计

3.5.3 数据库的实现

4 系统实现

4.1 登录注册管理模块的实现

4.1.1 前台登录注册的实现

4.1.2 后台用户权限管理的实现

4.2 商品分类管理模块的实现

4.2.1 前台商品分类管理模块的实现

4.2.2 后台商品管理的实现

4.3 订单管理模块的实现

4.3.1 前台订单管理的实现

4.3.2 后台订单管理的实现

5  系统测试

5.1 系统测试目的

5.2 系统测试工作

5.3 系统测试用例

5.4系统测试结果

6 结束语

6.1 总结

6.2 展望

1 绪论

当前,世界经济正在开始新一轮的增长,经济全球化趋势不断增强,如有电子经济、网络经济、信息经济等说,但是各界已经一致认为近期的重点是建立在互联网基础上的电子商务新经济。电子商务对传统的商务活动带来了巨大的冲击,它突出的标志就是增加贸易机会,降低贸易成本,简化贸易流程,提高贸易效率。电子商务极大地改变了商务模式。带动了经济结构的变革。在发达国家,电子商务发展空前繁荣,通过互联网进行交易已成潮流。

1.1 系统的开发背景以及意义

电子商务对传统的商务活动带来了巨大的冲击,它突出的标志就是增加贸易机会,降低贸易成本,简化贸易流程,提高贸易效率。在发达国家,电子商务发展空前繁荣,通过互联网进行交易已成潮流。如今,中国进入了互联网信息时代,生活方式和工作节奏都随着信息传递速度的加快而改变。从信件传递发展成EMAIL,一切原本属于现实生活中的行为方式慢慢地向网络转移,传统的购物方式也正在转向网络方面发展,出现了“网购”这种越来越受欢迎的新型消费方式,网上购物系统应运而生。

本课题的目的开发一个网上购物系统,其主要功能有用户注册、登录验证、浏览商品、查询商品、订购商品、购物车、分页处理、用户维护、商品管理、用户管理、订单管理、后台管理等。主要解决的问题是建立网站以及自己的数据库,使得所需商品信息可以及时的保存、更新、可以更好的及时了解商品买卖的情况。卖家通过购物系统,直接在网页上搜寻到自己所需要的商品,然后通过购物车功能下单,购买。使传统的商品交易电子化,使网民可以足不出户就能购买到自己心仪的产品。使管理员从繁琐的手工操作中解脱出来,并提高了办公效率。使用户可以足不出户,就能将心仪的商品搬回家。降低了销售商的成本,也大大节约了用户宝贵的时间。

1.2 系统的国内外研究现状

虽然现在也有了一些网上商店,但因在资金上的缺乏使得网上购物不能迅速扩大业务规模和品牌效应,在电子商务产业进入高速成长期后,也难以满足客户们对品种、服务、价格方面的要求。尽管目前国内网上商品较多,但是品种细分却还远远不够,对比传统的线下零售,可选择的余地相对还非常少,导致电子零

售市场规模现阶段仍然难以与传统大型商场、超市所创造的经济价值相提并论。而且日用百货销售价格较低、利润空间较小,但相对于传统百货业,电子零售可以大大节约新增店铺成本,具备无限制容纳大客流、无限制陈列商品的优势,消费需求较大的百货商品同样适合通过互联网实现分销。

1.3 论文主要工作和结构安排

本论文介绍了网上购物系统的开发背景、设计过程、系统实现、数据库设计以及测试,全文共分六章,具体的安排如下所示。

第1部分 绪论,主要介绍该系统的开发背景及意义、研究现状、使用的开发工具和论文整体的结构安排。

第2部分 需求分析,从功能需求和性能需求阐述系统分析过程。

第3部分 系统设计,主要介绍该系统主要功能的总体设计以及数据库的设计,详细的设计部分配有界面图以及序列图。

第4部分 功能实现,具体介绍每一个功能模块的实现过程。

第5部分 系统测试,介绍本系统使用的单元测试和功能测试,并总结结果。

第6部分 结束语,总结本系统的功能技术和不足之处,展望本系统的前景和下一步的改进目标。

1.4 相关技术及工具介绍

该系统采用JSP+TOMCAT服务器+SQLSERVER数据库的架构实现的,还结合浏览器的多种Script语言来进行开发。在Html网页文件中加入java程序片段和JSP标记。Web服务器和JSP引擎遇到访问JSP网页的请求时,JSP引擎将请求对象发送给服务器端的相关组件,比如JavaBean组件、Struts,然后又服务器端组件处理这些请示,然后服务器端组件再将响应对象返回JSP引擎。然后由引擎将响应对象传递给JSP页面,根据JSP页面的Html格式来完成整个请求。

1.5 本章小结

本章介绍了网上购物系统的开发背景、意义和现状,明确了开发该平台的必要性和意义。最后写了论文主要工作和结构安排,这样做可以按照计划顺利地完成本论文的撰写。

2 系统需求分析

需求分析在整个软件开发过程中非常重要,是软件工程中不可或缺的部分。软件需求分析就是对目标系统提出完整、准确、清晰、具体的要求[7]。本章对网上购物系统的具体应用需求进行了描述,从功能需求,性能需求等几个方面进行了介绍。

2.1 系统设计目标

本学习平台的对象主要是学生、宝妈、白领以及上班族没有多余的时间用于逛商场的人员,他们经常需要购物但没有时间去商场选购,所以,开发这个购物系统也是为了广大的网民可以进行生活用品和家庭用品的选购。充分构思一下要实现的功能,概括出具体的期望如下。

功能目标:本系统分系统管理员和用户2个用户角色。系统管理员的主要功能有分类管理、商品管理、注册用户管理、网站公告管理、订单管理。用户的主要功能有注册登录功能、商品浏览功能,包括分类浏览,推荐浏览,搜索浏览,排行榜浏览、公告浏览、购物车管理、订单管理。对于普通访客可以浏览商品但若想购买产品必须先登录或注册。系统可以根据用户平时浏览的界面,推送相关用户可能会感兴趣的商品,用户还可以联系卖家和已经购买的用户交流。

在后台管理处,输入admin管理员名称可以进入管理界面,可以对用户权限管理;可以对商品进行管理;可以对网站公告管理;可以对商品类型、订单、帖子等的控制管理。

性能目标:创建方便用户操作的页面,是用户用尽可能少的时间购买到自己满意的商品。

人性化目标:系统界面友好;界面布局的设计要更加美化,实现对多种框架的应用,展现更好的界面形态更加美观,增加更多用户体验。

2.2 业务流程分析

业务流程分析主要是帮助消费者更加方便轻松的购物,在本购物系统中,依次按照页面上展示的导航信息进行一步步业务分析,业务流程介绍如下。

主页浏览:在主页上,可以查看到浏览到系统推荐的商品,系统公告,商品下单和互动交流信息。

查看购物车内容:点击查看购物车,购物车列表中有商品的分栏展示,包含图片和价格信息。

下单购买商品:这一部分是平台最主要的功能部分,也是整个项目的实现主体。在此处能够轻松购买,能够通过搜索框搜索商品,并且可以在线浏览商品相关的详细信息。

评价查看:在商品评价区域可以看到系统为我们提供的已购买用户的体验评价,用户可根据已购买用户的评价再结合自己的实际情况考虑是否购买此商品。如果用户存在疑问还可以像已购买此商品的用户提问相关问题。

互动交流:本部分主要分为已购买用户和新用户提供。点击栏目链接,可以查看发表过的论坛帖子,能够进行回帖。

显示个人用户中心:通过用户名、密码能够登录进平台,用户可以查看购物车,发贴,查看互动记录等。

后台管理:管理员进入管理界面,能够对用户、商品、网站公告、商品分类、互动交流等进行管理。

本系统按照角色划分业务,可以得到下图的流程分析。

系统业务流程图如图2-1所示

图2-1 系统业务流程图

2.3 系统功能需求

本平台主要采用B/S模式设计开发,作为一个Web购物系统,主要功能是为广大消费者提供一个轻松方便可靠的购物品台,使用户在本系统中能够轻轻松松的购物,通过此系统的使用可以为平时因过快的生活压力而没有时间去商场购物的学生、白领等提供一个新型的有趣的可靠的购物平台。根据用户实际需求,将本系统划分为相应的使用对象,主要包括两种角色:用户和管理员,针对这两个不同的对象,系统分为前台展示和后台管理两个界面,进行相应的功能实现。对于用户而言,在这个系统里,可以查看相应的网站公告、商品浏览功能,包括分类浏览,推荐浏览,搜索浏览,排行榜浏览,用户在注册登录之后还可以进行购物车管理、订单管理等操作。对于管理员来说,主要功能是对后台的管理,包括商品分类管理、商品管理、注册用户管理、网站公告管理、订单管理。

1.系统整体功能描述:网上购物主要就是节约消费者的时间,并且能够进行轻松可靠的购物,查看系统公告,实现商品下单等,集多功能于一身的一个网上购物品台,在这里我们可以买到和商场超市中一样的商品,该系统可视化界面功能划分清晰,分为不同的几个栏目,每一个功能都包含在对应的一个栏目下。

总的系统用例图如图2-2所示。

图2-2 系统总的用例图

商品管理的用例描述:登录用户在本系统的主界面可以看到每一个商品的信息列表,点击 “选择”按钮选择相应的商品,即可对商品进行增删改。

表2-1 资源下载用例描述

用例名称

商品管理

用例概述

管理员登录后台对商品进行增删改操作

参与者

只有管理员可以

前置条件

当前身份为管理员

续表2-1

后置条件

当点击按钮后,在弹出下拉菜单中选择相应的商品,然后点确定

基本事件流

1.登录用户进入系统,进入商品管理的具体页面

2.在展示页面可以看到增删改等不同操作

2.用户的功能描述:普通用户进入平台能够浏览所有学习模块,包括查看学习资讯的文章,在线课程的观看,资源下载,以及查看互动论坛。用户登录之后可以管理个人中心,包括对发帖,回帖,提交作业等的功能管理。

用户功能用例图如图2-3所示。

图2-3 用户功能用例图

用户浏览商品的用例:作为在线购物系统,用户和管理员只要进入本平台,就可以在本系统上浏览搜索商品,同样的,商品的目录也是分栏显示,每一个栏目下有对应不同种类的商品,比如女装栏目下,有外套,连衣裙,内搭等不同商品的显示,点击要浏览商品的种类,也可以在搜索框里直接搜索商品就可以在商品显示去看到我们需要的有关商品。

用户浏览商品的用例描述如表2-2所示。

表2-2 用户浏览商品的用例描述

用例名称

浏览商品

用例概述

用户和管理员都可以观看这一部分内容

参与者

所有用户都可以

前置条件

用户已经登录

后置条件

选中心仪商品点击立即购买或加入购物车

基本事件流

1.用户进入平台,锁定商品浏览区

2.在课程页面下,点击图文或者商品名称的链接

3.点击图文或者文件名链接后,在新的窗口会打开商品详细信息的页面

4.在浏览到合适商品时可以选择立即下单或加入购物车

备选事件流

每个页面只能显示六个商品,如想查看更多需要点击下一页

3.互动交流的功能描述:普通用户和登录用户在平台的互动交流页可以查看发表的帖子信息,显示的信息包含用户姓名和发布时间,管理员还可以屏蔽用户的帖子,管理帖子的相关信息等;登录的用户则可以发帖,回帖等。

互动交流功能用例图如图2-4所示。

图2-4 加入购物车功能用例图

下面探讨用户发帖的用例:登录用户在个人中心处点击发布帖子,然后编辑帖子标题和内容,发布之后的显示信息除了编辑的内容之外,还有发布者和发布的时间,以及帖子的回复数目,发布成功之后在互动交流页面就会看到。

用户发帖的用例描述如表2-3所示。

表2-3 用户发帖的用例描述

用例名称

用户发帖

用例概述

登录用户可以发表互动论坛帖子

参与者

登录的用户

前置条件

用户已经购买此商品

后置条件

登录用户对此商品发表自己的体验和评价及建议

基本事件流

1.用户在主页或者用户中心处通过用户名、密码登录平台

2.进入平台后,点击用户中心

3.点击已购买商品,选择想要评价的商品,发表评价

4.点击确定,然后跳转到已经发表的页面,完成表评价

2.4性能需求

对于一个购物系统来说,系统能够稳定安全的运行非常重要,根据用户的需求,需要满足一下几个性能需求。

1.安全性:现在是信息化时代,数据的安全至关重要。首先,数据库要确保能够完整恢复。其次,在系统上进行回帖留言的时候,要经过用户登录的验证信息,当然,注册时候也需要进行格式的检查,查看是否符合格式规范。还有就是管理员对商品的上架和商品下单的过程进行严格控制。

2.及时性和准确性:当用户使用本系统购物时,需要能够及时得到反馈的信息,当管理员删除资源时候提示操作成功或者失败的信息,在前期设计时候充分考虑本系统的功能实现,并及时准确的获取用户信息需求。

3.适用性:一个良好的平台设计,需要有友好的交互界面,才能满足用户使用需求,特殊情况下需要给出用户提示,能够使用户最大程度方便使用。设计前期还要考虑系统是否稳定,只有拥有良好的稳定性才能使该平台更加长久使用,这样才能长期的留住客户。

2.5 本章小结

本章主要网上购物系统的主要功能,并通过用例图和用例描述表,详细介绍了本系统的主要功能的需求分析,主要包括对前台用户登录注册、后台管理员管理以及主要的商品管理、商品浏览、互动交流等进行了分析,最后通过性能需求的分析详细描述了本系统开发的特点。

3系统分析

本章设计的主要任务是介绍系统的总体功能模块划分和详细设计,根据需求分析的描述,对本系统的设计从功能上详细划分,并把每一个功能模块分为界面设计和功能设计两块,通过图形设计和类的设计详细展示了每一个功能设计的步骤,再加上语言描述清晰地写出了每一个设计理念和设计目的,这样能使用户更加了解系统中各个模块的功能作用。

3.1 系统总体功能设计

系统设计是一个把软件需求转换成用软件系统表示的过程[7]。通过分析和研究,做出了购物系统的总体设计规划,这部分通过分析每一个模块来设计,根据划分的模块功能进行划分架构。

系统的功能结构图如图3-1所示。

图3-1 系统功能结构图

本都无系统主要分为五个模块,分别是:注册登录、商品浏览、订单管理、下单和互动交流管理模块。

注册登录管理模块:登录时,用户在主页的用户中心处可以通过用户名和密码进行登录,成功后在用户中心可以看到个人的信息。注册时,用户在用户中心可以进行注册,点击注册按钮,会跳转到的注册页面,注册信息包括用户名、密码、重复密码、邮箱,成功注册之后会跳转到登录页面。

商品浏览模块:用户进入购物系统后,便可直接浏览系统根据以前浏览记录所推送的一些商品,还可以直接点击搜索框,输入你想要购买的商品,点击搜索按钮可以跳转到对应的相关商品的页面,显示的内容为商品图片、商品名称和价格等相关信息。

商品管理模块:在浏览商品的过程中遇到心仪的商品,可点击商品名称,在点击商品名称后会跳转到商品详情的页面,在商品详情的页面,会显示具体的图片和商品材质的相关信息,点击详情可以查看商品的详细信息,点击立即购买便可以实现对商品的下单,该界面为了美观大方,每次只显示一张商品图片,想要查看更多,可以右划查看下一张。当用户点击“立即购买”按钮,,进入具体的下单页面,此时用户需要选择自己喜欢的某个颜色或者是某个样式的商品并选择购买数量,最后点击“提交订单”的按钮即可实现商品的下单。若用户点击的为“添加到购物车”按钮,也会进入到相应的页面,在选择合适的商品之后用户点击“确定”按钮即可

订单管理模块:登录用户在用户中心点击“我的购物车”,可以对购物车内的商品进行管理。其管理主要是,对购物车中的商品选择是立即购买还是将其从购物车中删除,当然,用户也可以选择一键清空购物车。

互动交流管理模块:进入互动交流页面可以看到发布过的帖子,点击帖子之后会直接跳转到详细帖子的界面,显示发帖者发帖信息,和回复的帖子,而页面最下方的区域是一个发布帖子的编辑区域,只有登录的用户可以回帖。

3.2 注册登录管理模块的设计

这部分主要是用户的登录注册和个人信息的查看,个人中心设计主要是对用户信息的界面设计和功能设计。

3.2.1 注册登录管理的界面设计

User类作为实体类需要与数据库表对应,即t_user表对象。而且User类还要用来封装表单数据,所以User类还要与表单对应。User类对照着t_user表来写。要保证User类的属性名称与t_user表的列名称完全相同。UserDao封装了对数据库的基本操作。UserDao需要使用TxQueryRunner来完成对数据库的操作。

UserService封装了业务功能,在UserService中每个方法对应一个业务功能,例如:注册方法、登录方法等等。一个业务方法可能需要多次调用DAO中的方法。所以,Service依赖Dao,我们需要在UserService中给出一个UserDao类型的成员。

前台用户和管理员登录界面设计如图3-2所示。

图3-2 前台用户和管理员登录界面

前台注册的界面设计:该界面的设计通过style样式和padding来控制行间距和内边距。使用了div层叠样式来控制布局。最上面通过a链接来显示位置信息。主体也是通过form表单进行控制,上面是一个img图片,下面采用table对每行每列使用input输入框来定义,设置了两个文本框“用户名”和“邮箱”,两个密码框“密码”和“确认密码”,一个提交按钮“提交”,并加入了function函数控制输入的格式。

前台注册界面设计如图3-4所示。

图3-4 前台注册界面图

3.2.2 注册登录管理的功能设计

1.前台注册登录的功能设计

功能类:本节是对注册登录模块的设计,其中的实体类主要包括的类为IndexAction、RegAction、UserEntity、数据访问层接口UserDao、实现类UserDaoImpl、IHibernateSupportDao工厂类。

前台注册登录的功能类图如图3-5所示。

图3-5 前台注册登录功能类图

核心类描述:

(1)UserEntity类:该类为用户信息实体类,主要是实例化用户信息。

用户信息实体类如表3-1所示。

表3-1 用户信息实体类

类名

UserEntity

包名

com.classnet.entity

类描述

该类为课程列表实体类

属性

权限

类型

名称

描述

private

Integer

id

用户编号

private

String

username

用户名

private

String

password

用户密码

private

String

email

邮箱

方法

权限

方法名

描述

public

getId

各属性的getter方法

public

setId

各属性的setter方法

(2)Action类:注册登录的相关Action类有IndexAction、RegAction,一个负责登录响应,一个负责注册的响应。

用户注册响应类如表3-2所示。

表3-2 用户注册响应类

类名

RegAction

包名

com.classnet.action

类描述

该类为用户注册响应类Action

父类

DispatchAction

属性

权限

类型

名称

描述

private

UserDao

userDao

用户信息

方法

权限

方法名

描述

public

setUserDao

设置用户信息

public

toreg

注册成功响应

publc

checkUser

检查用户名是否重复

public

doreg

注册信息处理

public

execute

返回页面视图值

(3)UserDao类:实现类UserDaoImpl类重写了该接口中的getUser()方法,根据传入的username,通过sql语句实现对数据表user_table的查询或者添加操作。 用户数据信息访问类如表3-3所示。

表3-3 用户数据信息访问类

类名

UserDao

包名

com.classnet.dao

接口描述

供UserDaoImpl类实现,在IndexAction中被调用

方法

方法名

返回值(参数)类型

描述

getUser

UserEntity

获取用户信息

2.后台用户权限管理的功能设计

功能类:此处主要是对用户权限状态修改的操作。此页面为userlist.jsp,在页面的function中定义了search()方法,对应的事件相应类是UserAction。

对UserAction类的描述:通过工具获取用户信息,并响应操作的事件。

后台用户权限的响应类如表3-4所示。

表3-4 后台用户权限的响应类

类名

UserAction

包名

Com.classnet.action.admin

类描述

该类为后台用户权限的响应类Action

父类

DispatchAction

续表3-4

属性

权限

类型

名称

描述

private

UserDao

userDao

用户信息

方法

权限

方法名

描述

public

list

输出用户列表

public

changestatus

修改用户权限状态

3.3 商品分类管理模块的设计

这部分是分类管理模块。分类管理是后台管理第一大功能模块。分类管理的功能有查看分类,修改分类,增加分类,删除分类。分类分一级分类和二级分类,有利于商品的搜索。

3.3.1 分类管理模块界面设计

分类管理模块界面:本页面分上下连个部分,上部分由一个标签构成,表奴办法本页面的名称,下半部分由一个表格构成,表格上显示了分类名称,描述,和操作三个列,在表格正上方还有一个超链接,点击此链接可以为表格添加行,即添加一级分类。操作列中均为一些超链接,表示可以进行相关操作。商品分类管理图如图3-6所示

图3-6分类管理模块图

分类管理时须注意的是:在分类列表中,每个一级分类,以及二级分类后都存在“删除”链接。点击一级分类后的“删除”链接完成删除一级分类;点击二级分类后的“删除”完成删除二级分类。如果一级分类下存在子分类,那么不能删除。如果一级分类下存在商品,那么不能删除。

商品管理界面设计:本界面较简单只有一个标签和两个超链接,标签表示本界面的名称,两个超链接表示本界面可以执行的两个不同功能。

商品界面管理图如图3-7所示

图3-7 商品管理理界面图

商品管理是后台管理的第二大功能模块。在top.jsp上点击“商品管理”进入商品管理主页:/adminjsps/admin/book/main.jsp,main.jsp是框架页,分为左部和中部,其中左部为所有分类(与前台主页左部相同),中部默认显示body.jsp,body.jsp有两个链接:添加商品和高级搜索。

3.3.2 分类管理模块界面的功能设计

1.商品分类管理界面的功能设计

功能类:根据购物系统的模块设计,购物系统模块的实体类主要包括UserInfo、Orders、FirstSort、SecondSort、Sale、Storage。其中,UserInfo是实体类,一些其他的类都要在它的基础之上才能建立,其中包含了订单类Orders,而像Sale类它只能在订单类的基础上进行销售。Goods也是一个实体类,许多类都要实例化一个goods类的对象之后才可以进行一些列操作。SecondSort继承FirstSort,主要作用是在显示商品点击排行榜时,若有两件商品的销售件数相同的话,就调用SecondSort类,对销售量相同的产品进行再排序,排序的依据是每个商品被点击的次数。响应数据库的设计在每个按钮或标签的点击事件。在点击后系统自动将表单元素提交给服务器,并对其进行相应的处理操作。

购物系统主页面的功能类图如图3-8所示。

图3-8 购物系统主页面功能类图

2.后台管理的功能设计

此处主要商品管理的管理操作,管理员能够通过页面实现对商品信息的修改和删除。此页面为newsMenuList.jsp,在页面的function中定义了edit()、submit()、selectAll()、del()方法,对应的类主要有NewsMenuDao、NewsMenuDaoImpl、NewsMenuEntity、NewsMenuAction,此处只对部分类介绍。详细介绍了商品的实体类,以及封装的表单内容类NewsForm。

(1)对NewsMenuAction类描述:通过DispatchAction进行请求转发,在一个Action中实现多个操作。

商品信息的响应类如表3-8所示。

表3-8 商品信息响应类

类名

NewsMenuAction

包名

Com.classnet.action.admin

类描述

该类为商品信息的响应类Action

父类

DispatchAction

属性

权限

类型

名称

描述

private

NewsMenuDao

newsMenuDao

商品列表

方法

权限

方法名

描述

public

setNewsMenuDao

设置商品列表

public

list

显示商品列表

public

add

添加商品到列表

public

edit

修改商品名

public

del

删除选择商品

3.4 订单管理模块的设计

这部分为订单模块的设计。分为前台即用户所见订单的设计和后台即管理员对订单的处理。这一部分主要实现的就是用户选择商品下单,而管理员对订单进行下单和发货的处理,该模块主要是对前台订单和后台订单的界面设计和功能设计。

3.4.1 前台订单管理模块的界面设计

前台订单管理模块界面:本页面分上下连个部分,上部分由一个标签和一些功能标签构成,大标签显示本页面的名称,功能标签表示用户可以再本界面进行的一些操作。下半部分分为左右两个部分,左半部分显示商品分类,右半部分显示商品信息,金额,订单状态和可以进行的一些操作。前台订单管理图如图3-9所示。

3-9前台订单管理图

3.4.2 前台订单管理模块的功能设计

前台订单管理模块的功能设计:本节是对前台管理模块的设计,其中的实体类主要包括Consignee、Peddlery、Customer、Product数据访问层接口DeliverOrder、实现类Order、OrderItem工厂类。

前台订单管理功能类图如图3-10所示。

 3-10前台订单管理功能类图

核心类描述:

(1)Product类:该类为商品信息实体类。

商品信息实体类如表3-9所示。

表3-9 商品信息实体类

类名

Product

包名

com.classnet.entity

类描述

该类为商品信息实体类

属性

权限

类型

名称

描述

private

Integer

productid

商品编号

private

String

productname

商品名称

private

String

productType

商品类型

private

Double

Price

商品价格

3.4.3 后台订单管理模块的界面设计

后台订单管理模块界面:本页面分上下连个部分,上部分由一个标签和一些功能标签构成,大标签显示本页面的名称,功能标签表示用户可以再本界面进行的一些操作。下半部分是商品的一些信息显示和管理员的功能操作。管理员可以选择对这些订单进行发货和查看及取消操作。后台订单管理图如图3-10所示。

3-10后台订单管理图

3.4.4 后台订单管理模块的功能设计

后台订单管理模块的功能设计:此处主要是对订单的管理,能够通过页面实现对已下单商品进行查看状态,取消订单,确认发货进行处理。本部分包括的实体类有Customer,goods,administrator。功能类有Orders,Operator,Recorder。

后台订单管理功能类图如图3-11所示

3-11后台订单管理功能类图

核心类描述:

(1)Orders类:该类为订单处理功能类。

商品信息实体类如表3-10所示。

表3-10 订单处理功能类

类名

Orders

包名

com.classnet.action

类描述

该类为订单处理功能类

属性

权限

类型

名称

描述

private

String

Order_id

订单序号

private

String

User_id

用户编号

private

String

Goods_id

商品编码

private

Date

Date

下单日期

private

Integer

Num

下单数量

private

String

Status

本订单状态

方法

权限

方法名

描述

public

Add

添加订单

public

Modify

修改订单

public

Search

显示订单

3.5 数据库设计

数据库是项目设计的关键,在Office平台中我们用数据库来存储数据,用于统计、分析和查询,数据库设计主要包括:数据库分析,数据库的设计与实现。

3.5.1 数据库概念结构设计

通过需求分析我们可以将用户的需求抽象成信息结构进而演化成概念设计模型阶段,这个过程就是概念结构设计[8]。

在本学习平台中,我们根据需求分析将系统角色分为两种:用户和管理员。管理员的主要功能是对后台数据信息的维护,在后台管理界面对新闻资讯,课程资源和作业的增删改查,通过数据与前台页面进行交互,实现用户的功能实现;用户的功能主要是在界面进行操作,可以查看新闻信息、课程信息、帖子信息、作业信息,可以发布和回复帖子,可以提交作业。用户和管理员对功能的完成在数据库中体现为对数据的操作。将用户需求抽象为信息结构,由于实体属性数目众多,所以选择了用文字对每一个实体的属性进行描述,并以E-R图的形式清晰的描述了管理员、用户、功能模块之间的关系。

系统的E-R图如图3-21所示。

图3-21 系统E-R图

  1. 图中各实体的属性

用户信息表:(用户名,真实姓名,性别,手机号,QQ号,城市,小钱包中余额)。

商品信息表:(商品号,商品名,所属大类,所属小类,数量,销量,价格,图片,利润)

购物车信息表:(用户名,商品名)。

订单信息表:(用户名,订单号,图片,价格,数量,发货状态,发货时间)。

2.各实体间存在的关联关系

用户和商品是多对多关系,一个用户可以购买或浏览多个商品,一类商品可以供多个用户浏览和使用。用户和购物车是一对一关系,一个用户有且只有一个购物车。用户和订单是一对多关系,一个用户可以下多个订单,但一个订单只能是一个用户所下。

3.5.2 数据库逻辑结构设计

数据库逻辑结构需要做的工作是把概念设计阶段设计出来的的基本E-R图转化为与系统设计时数据库中的数据模型相符合的逻辑结构。E-R图向关系模型转化就是实体类和数据库中的实体一一对应的关系,实现类与关系属性的一一映射,并通过操作实体来操作数据库,最后确定关系属性的主键和其他属性。

下面将该系统设计的E-R图转化为实体关系模式,关系的主键会通过下划线标识出来,方便查看。

1.针对本系统的功能需求,设计出如下所示的数据项和数据结构,对应图3-21中各实体属性。

订单表(主键、收货人地址、备注、添加时间、订单删除状态、订单号、收货人手机、收件人姓名、订单状态、订单详情、总价、关联的用户ID)。

用户信息实体图如图3-22所示。

图3-22 用户信息实体图

分类表(主键、删除状态、分类名称)。

用户作业信息实体图如图3-23所示。

图3-23 用户作业信息实体图

公告表:(主键、公告标题、公告内容、添加时间、删除状态)。

新闻信息实体图如图3-24所示。

图3-24 新闻信息实体图

购物车表:(主键、添加时间、删除状态、数量、关联商品的ID、关联用户的ID)

资源信息实体图如图3-25所示。

图3-25 资源信息实体图

购物车表:(主键、添加时间、删除状态、数量、关联商品的ID、关联用户的ID)

管理员表(主键、密码、用户名)。

课程信息实体图如图3-26所示。

图3-26 课程信息实体图

商品信息表:(主键、添加时间、删除状态、商品点击数、商品图片、商品价格、商品介绍、商品名、是否推荐、商品销量、关联分类的ID)。

互动交流信息实体图如图3-27所示。

图3-27 互动交流信息实体图

用户表(主键、地址、添加时间、删除状态、邮箱、密码、联系电话、QQ、真实姓名、用户名)

图3-27 互动交流信息实体图

3.5.3 数据库的实现

本系统的数据库设计用了7张表来管理和维护数据,为了实现对该系统的数据分析,在本系统数据库mydata中主要有以下几个数据表:order_table(订单表)、classify_table(分类表)、notice_table(公告表)、session_table(购物车表)、admin_table(管理员表)、goods_info(商品信息表)、user_table(用户信息表),这7张表的结构如下。

  1. order_table(订单表),用户信息表如表3-23所示。

表3-23 订单表

名称

类型

默认值

备注

id

int(11)

no

auto_increment

主键

address

varchar(255)

yes

收货人地址

beizhu

varchar(255)

yes

备注

createtime

datetime

yes

添加时间

deletestatus

int(11)

no

0

订单删除状态

ordered

varchar(255)

yes

订单号

phone

varchar(255)

yes

收货人手机

sjname

varchar(255)

yes

收件人姓名

status

varchar(255)

yes

订单状态

xiangqing

varchar(255)

yes

订单详情

zongjia

double

yes

总价

userid

int(11)

yes

关联用户ID

2. classify_table(分类表),分类表如表3-24所示。

表3-24 分类表

名称

类型

默认值

备注

id

int(11)

no

auto_increment

主键

deletestatus

int(11)

no

0

删除状态

name

varchar(255)

yes

分类名称

3. notice_table(公告表),公告表如表3-25所示。

表3-25 公告表

名称

类型

默认值

备注

id

int(11)

no

auto_increment

主键

biaoti

varchar(255)

yes

公告标题

content

varchar(255)

yes

公告内容

createtime

datetime

yes

添加时间

deletestatus

int(11)

no

0

删除状态

4. session_table(购物车表),购物车表如表3-26所示。

表3-26 购物车表

名称

类型

默认值

备注

id

int(11)

no

auto_increment

主键

createtime

datetime

yes

添加时间

deletestatus

int(11)

no

0

删除状态

number

int(11)

no

0

数量

productid

int(11)

yes

关联商品的ID

userid

int(11)

yes

关联用户的ID

5. admin_table(管理员表),管理员表如表3-27所示。

表3-27 管理员表

名称

类型

默认值

备注

id

int(11)

no

auto_increment

主键

password

varchar(255)

yes

密码

username

varchar(255)

yes

用户名

6. goods_info(商品信息表),商品信息表如表3-28所示。

表3-28 商品信息表

名称

类型

默认值

备注

id

int(11)

no

auto_increment

主键

createtime

datetime

yes

添加时间

deletestatus

int(11)

no

0

删除状态

dianjishu

int(11)

no

0

商品点击数

imgphath

varchar(255)

yes

商品图片

jiage

double

yes

商品价格

maoshu

varchar(255)

yes

商品介绍

name

varchar(255)

yes

商品名

tuijian

varchar(255)

yes

是否推荐

xiaoliang

int(11)

no

0

商品销量

fenleiid

int(11)

yes

关联分类的ID

7. user_table(用户信息表),用户信息表如表3-29所示。

表3-29 用户信息课表

名称

类型

默认值

备注

id

int(11)

no

auto_increment

主键

address

varchar(255)

yes

收货人地址

createtime

datetime

yes

添加时间

deletestatus

int(11)

no

0

删除状态

email

varchar(255)

yes

邮箱

password

varchar(255)

yes

密码

phone

varchar(255)

yes

联系电话

qq

varchar(255)

yes

QQ

truename

varchar(255)

yes

真实姓名

username

varchar(255)

yes

用户名

4 系统实现

本章主要介绍系统功能模块的实现,通过UML统一建模语言中的序列图来形象的描述系统主要功能模块的实现。时序图表现的是系统具体实施的静态逻辑,从它可以直接联系到代码中一个模块的具体实现逻辑[11]。

4.1 登录注册管理模块的实现

登录注册前台界面是面向普通用户的,只有先注册才能够成为用户,用户登录之后才可以进入用户中心,能够发帖回帖,能够提交订单和加入购物车。登录和注册是相互联系的,注册的信息必须记住才能登录,在主页点击“注册”,然后填写信息,就完成注册。

4.1.1 前台登录注册的实现

用户进入平台主页面,左侧栏有一个“用户中心”,在这里可以通过输入框输入用户名和密码进行登录,登录之后,可以看到用户信息。用户登录具体实现效果图如图4-1所示,用户登录成功界面效果图4-2所示。

图4-1 登录具体实现效果图

图4-2 登录成功界面效果图

用户在登录界面的操作过程如下:

(1)在平台主页面,左侧栏有一个“用户中心”,在这里可以通过输入框输入用户名和密码,点击登录,成功之后,即可看到用户信息。

(2)当用户在用户中心输入用户名和密码之后,再点击登录按钮,通过post提交到Action,再通过WebUtiil的StringTotInt()方法,获取输入的用户信息。然后调用userDao的getUser()方法,查询数据库中的表,然后返回到Action中,通过处理,将信息实例化到UserEntity的实体类中,提交之后通过setAttribute()获取对象信息到页面,然后返回succ响应。

(3)struts配置会跳转到用户中心的index.jsp页面。

根据流程的描述,用户登录的序列图如图4-3所示。

图4-3 登录功能序列图

用户进入平台主页面,可以在左侧“用户中心”处点击“注册”,在注册页面填写注册信息,成功输入注册信息之后,将会跳转到注册成功的界面。用户注册具体实现效果图如图4-4所示,用户注册成功效果图如图4-5所示。

图4-4 注册具体实现效果图

图4-5 注册成功效果图

用户在注册界面的操作过程如下:

(1)在页面主页,普通用户可以在左侧用户中心处点击“注册”,这是一个链接,点击之后将触发reg.do事件,会提交到RegAction类的toreg()方法中,该方法返回一个succ,然后根据配置文件设置,forward会返回到reg.jsp页面。

(2)在注册页面填写需要输入的信息,通过function的checkUser()和check()方法来验证事件是用户名是否重复,是否为空,然后调用UserDao查询数据库,根据实际情况,返回相应值,传递到页面。除此之外,还验证密码重复密码是否一致,验证邮箱格式是否正确,如果不正确,则会通过EL表达式提示相应信息。如果正确输入注册信息之后,点击“提交”按钮,发送的请求会到RegAction中。

(3)通过发送的m=doreg请求,响应到doreg()方法中,该方法先通过request的getParameter()方法获取对象,然后将数据信息实例化到UserEntity中,再通过Dao层的save()方法,保存到数据库表中,Action类会返回“regok”的信息到配置文件,然后跳转到regok.jsp界面,显示注册成功的信息提示。

根据流程的描述,用户注册的序列图如图4-6所示。

图4-6 注册功能序列图

4.1.2 后台用户权限管理的实现

这一部分为后台对用户权限管理的功能实现,管理员点击左侧栏的“用户管理”链接,会跳转页面到用户管理界面,可以停用或恢复用户的权限。

后台用户权限管理具体实现效果图如图4-7所示。

图4-7 用户权限管理具体实现效果图

管理员在用户权限管理界面的操作过程如下:

(1)管理员进入后台管理,点击用户管理,跳转页面到用户管理界面,触发user.do操作并提交m=list的请求,可以进入到用户列表的管理界面。

(2)用链接url来响应事件,在UserAction中的调用list()方法,对用户信息的属性调用UserEntity显示,对用户权限操作有“停用”和“恢复”两种,当点击停用时,触发user.do并提交到Action中,调用changestatus()方法,通过工具类的获取属性值方法,判断用户权限,如果是不是“1”,则设置setEnable权限为false,即为停用权限。

(3)当管理员点击修改成功之后,将用户的信息通过UserDao,保存到数据库user_table表中,之后会调用hibernate的update()方法通过response返回一个path,然后在Action中可以获取到返回的页面userlist.jsp页面,可以看到自己修改的用户权限信息。

(4)系统管理员还可以选择一些对订单和商品的处理操作。关于订单的操作有删除此订单和确认发货,对商品的操作有添加商品,修改商品和删除商品。

根据流程描述,后台用户权限管理序列图如图4-8所示。

图4-8 用户权限管理序列图

4.2 商品分类管理模块的实现

前台功能设计主要就是让用户方便浏览网上商城的商品,当用户进入系统 的时候,就可以看到推荐的几个搜索排名靠前的商品,商品分类管理的功能是本系统的一个重要功能,通过分类目录依次查找商品,可以更加方便用户找到自己喜欢的商品。

4.2.1 前台商品分类管理模块的实现

用户进入系统主页面,点击导航栏“home”标志会进入购物商城主界面,在这里会看到商品分类,点击商品图片会响应到商品具体内容界面,可以看到商品图片和详细的内容。前台商品分类管理具体实现效果图如图4-9所示。

图4-9 学习资讯具体实现效果图

用户在商品分类界面的操作过程如下:

(1) 用户进入系统主页面,点击导航栏“home”标志会进入购物商城主界面,在这里会看到商品分类,点击商品图片会响应到商品具体内容界面,可以看到商品图片和详细的内容。

(2)当用户点击商品的图片或下面描述时,这个操作会使页面发送一个see.id请求,该请求会提交到SeeNewsAction类中的execute()方法,该方法会将数据逻辑处理实例化到NewsEntity实体类中。提交到方法里面之后,可以通过service将处理后的数据传递到NewsDao中的findCount()方法里面。

(3)NewsDao会对数据库进行访问,将接收到的数据查询news表。查询到的结果反映在NewsDao中。数据库的交互结果返回到SeeNewsAction类中,execute返回mapping查询的”succ”到商品的goods.jsp页面。

根据流程的描述,前台商品分类序列图如图4-10所示。

图4-10 商品分类序列图

4.2.2 后台商品管理的实现

此部分为后台商品分类管理的功能实现,管理员操作栏目下的一系列操作,跳转界面到具体处理的管理界面,在该界面可以选择进行相应的操作,操作完成后,点击提交,完成商品管理操作。后台商品管理具体实现效果图如图4-11所示。

图4-11 学习资讯管理具体实现效果图

管理员在商品管理界面的操作过程如下:

(1)管理员点击修改连接,通过jsp设置,跳转页面到商品管理界面下,点击界面左下角的确认按钮完成修改。

(2)在VerifyAction中的调用to()方法,对商品列表的栏目属性进行获取,然后返回到页面的布局设置位置。在界面选择输入商品名称、价格、商家、产地、图片和详细描述。正确输入信息后,点击提交,将通过Action类中的dopub()方法,获取GoodssForm页面数据,然后使用BeanUtils的copyProperties覆盖新的新闻属性值。此外,使用DateUtil的getDateString()方法获取当前发布时间。并且将goods的信息存到goodsDao,会调用save()方法,保存到数据库。

(3)然后在Action中可以获取到返回的页面goodslist.jsp页面,可以看到自己设置发布的商品信息。

根据流程的描述,后台商品管理序列图如图4-12所示。

图4-12 商品管理序列图

4.3 订单管理模块的实现

前台在线视频播放功能是本平台比较重要的一个功能,用户通过视频学习,可以更加可视化的去学习章节的栏目知识。视频播放学习的方式,可以让用户更加便捷的控制学习的详细地方,也方便对知识的回顾和复习。

4.3.1 前台订单管理的实现

用户进入平台主页面,点击导航栏的“我的购物车”链接,进入购物车列表界面,之后点击图文下的图片或者图片下的商品名链接,会响应到点击的这个商品详细信息界面。

用户在前台订单界面的操作过程如下:

(1)用户进入平台主页面,点击进入“购物车列表”页面,然后在这个在页面的主要布局下可以看到订单商品的列表,这个列表包含用户所有下单的商品的粗略信息。

(2)当用户点击购物车列表界面下的图文链接时,这个操作会使页面发送一个view.id请求。该请求会提交到ClazzViewAction类中的execute()方法。该方法会将数据逻辑处理实例化到ClazzEntity实体类中,提交到方法里面之后,通过service将处理后的数据传递到ClazzDao中的findCount()方法里。

(3)ClazzDao会对数据库进行访问,将接收到的数据查询Clazz表,查询到的结果反映在ClazzDao中,数据库的交互结果返回到ClazzViewAction类中,execute返回mapping查询的”succ”到文章的article.jsp页面。

根据流程的描述,前台订单管理序列图如图4-13所示。

图4-13 订单管理序列图

前台课程视频具体实现效果图如图4-14所示。

图4-14 课程视频具体实现效果图

4.3.2 后台订单管理的实现

管理员点击购物系统主界面的导航栏,跳转到订单管理界面,然后点击管理订单的链接,然后选择想要处理的订单,再在相应的管理栏目下选择相应的操作。在完成操作后,点击提交完成管理订单的操作。

后台订单管理具体实现效果图如图4-15所示。

图4-15 课程视频管理具体实现效果图

管理员在订单管理界面的操作过程如下:

(1)管理员点击订单管理,跳转到订单管理界面,点击操作栏的功能选项。

(2)对订单相关信息管理,点击提交之后,会调用save()方法,将课程的信息存到ClazzDao,保存到数据库,然后在Action中可以获取到返回的页面salelist.jsp页面,可以看到自己管理订单的结果。

根据流程的描述,后台订单管理序列图如图4-16所示。

图4-16 订单管理序列图

5  系统测试

5.1 系统测试目的

测试的目的就是希望能发现潜在的各种错误和缺陷而以最少的人力和时间。应根据白盒测试和黑盒测试的知识精心设计测试用例,并利用这些测试用例来运行程序,以发现错误记录在文档中。系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中没有注意到的各种逻辑错误进行复查。

5.2 系统测试工作

所要进行的测试主要包括下面几个方面:

1.网页能否正常运行;

2.网站页面之间的跳转是否能够实现;

3.管理员能否正常登陆和管理信息;

4.用户能否正常登录及正常购物;

5.管理员能否正常上传商品信息主要是商品图片的上传;

6.添加的用户信息、商品信息、订单信息等信息是否能够成功添加到数据库中;

7.数据库是否出现乱码,前台展示是否出现乱码。

5.3 系统测试用例

由于本系统的功能较多,这里不介绍过多,只列出一个登陆的测试用例。

功能特性

用户登录验证

测试目的

验证是否输入合法的信息

测试数据

用户名称:1111 密码:1111

测试内容

操作描述

数据

期望结果

实际结果

测试状态

1

输入用户姓名,按“登陆”按钮。

用户姓名:1111,

密码为空

显示警告信息“用户名或密码误!”

显示警告信息“用户名或密码误!”

与期望结果相同

2

输入密码,按“登陆”按钮。

用户姓名为空,密码:1111

显示警告信息“用户名或密码误!”

显示警告信息“用户名或密码误!”

与期望结果相同

3

输入用户姓名和密码,按“登陆”按钮。

用户姓名:1,

密  码:1

显示警告信息“用户名或密码误!”

显示警告信息“用户名或密码误”

与期望结果相同

4

输入用户姓名和密码,按“登陆”按钮。

用户名:1111,密  码:1111

正确登入到会员操作界面

正确登入到会员操作界面

与期望结果相同

表6-1 登入系统测试用例

5.4系统测试结果

经过测试,各个网页都可以正常运行,网页之间的跳转也很流畅。用户在登陆的输入框可以正常登陆,输入错误也会有JavaScript返回的提示。管理员可以正常登陆,顶部会显示管理员身份信息,管理员可以正常添加商品信息,商品的图片也能正常上传到服务器上。用户可以正常购买商品。商品信息和订单信息以及用户注册信息都可以正常添加并保存到数据库中,而且这些信息也可以正常取出展示到前台。最后整个系统都没有出现乱码。由于能力和时间方面的限制,一些功能还不是很完善。总的来说,系统的总体设计目的基本达到,其功能也基本上实现了。

6 结束语

本章主要是对系统开发过程的总结,通过自身的分析,进行自我总结,是一个自我收获和不断学习的过程,自我分析是重要的学习方式,认识到自己的不足,努力完善自身。总结语和展望都是系统开发之后的说明,从中学会自我提高和进步,良好的总结习惯,能提高自身的学习经验,并对以后的软件开发也有十分重要的作用。

6.1 总结

通过开发此网上购物系统,我较全面的掌握了JAVA的基本知识和编程技巧,并在开发过程中JAVA开发能力得到了进一步的提高。如:更进一步的深入了解MVC设计模式,软件三层框架;SQL语言的使用。

经过几个月的设计与修改,基本完成了本次毕业设计网上购物系统的设计与实现。本次设计采用的是B/S模式,通过myeclipse8.5集成开发工具进行开发和编码,结合需求和性能分析采纳mysql作为后台数据库并利用tomcat7.0搭建服务器。本次课题网上购物系统的开发利用的是原型化模型,按照软件工程的基本理论的方法和规范,遵循实用性、用户友好性结合实际情况来进行开发的。本次毕业设计,是四年的学习成果的良好展示,也查阅了大量的有关JSP、jQuery等各种前台后台框架的资料,做到了理论结合实践。在实践中也加强了自己的理论知识并提高了自己的应用能力,获得了宝贵的实践经验。

网上购物系统顺应了电子商务蓬勃发展的浪潮,摒弃了传统的商场盈利模式,扩充了商品售出的时间、空间和客户范围。好的电子商务系统必定会带来更多客户的使用也必将反过来推进电子商务系统的发展与完善。

综上所述,本次课题网上购系统系统已经完成,并满足了需求分析中的功能,整个系统运行正常没有出现大的问题和bug。但由于本人技术能力和时间的限制,还有很多不足之处有待进一步改善。

6.2 展望

经过系统分析,设计,调试,修改,经过无数波折与坎坷,在老师和同学的帮助下,通过自己的努力,毕业设计圆满成功了。

在整个软件的开发过程中,我积累了一些关于开发数据库软件的经验。通过这次毕业设计,我主要学习到了如何使用Sql Server2008进行数据库软件的开发,html的相关知识,同时复习了关于软件工程以及asp.net和c#方面的知识。在程序的开发过程中也遇到了许许多多的难题,而且许多是一些细节上的问题,是很难预料的,比如界面设计的问题等。但在老师和同学的帮助下问题都解决了。当这些问题都被解决时我就觉得很有成就感、觉得很充实。解决问题的过程,不仅锻炼了自己的能力,同时也为将来开发软体积累了宝贵的经验。

当然,在这次设计中,我也发现了自己的很多不足之处。比如说自己对问题的估计严重不足,开发工具掌握的还不够等。总认为自己做的差不多了,其实还存在很多问题。虽然对编码比较感兴趣,但是缺少分析和总体设计的能力,所以虽然此软件也能实现网上购物的基本管理,但是有点脱离实际的缺点,使用起来不是很方便。这些都是我今后应该注意和提高的。通过对本管理系统的开发,我觉得我真的学会了一些东西,这为毕业后踏上工作岗位有很大的帮助。

但由于时间关系,以及本人水平的限制本系统功能不够完善,有些功能没能太好的实现,为此需要我对系统进行不断地补充和完善。

附  录

1.登录部分核心代码如下:

UserService.java

public class UserService {

private UserDao userDao = new UserDao();

}

UserServlet.java

public class UserServlet extends BaseServlet {

private UserService userService = new UserService();

}

//如果课程不存在,结果重定向到课程列表

// 获取输入框中的验证码

String verifyCode = req.getParameter("verifyCode");

//获取图片上真实的校验码

 String vcode = (String)req.getSession().getAttribute("vCode");

//进行忽略大小写比较,得到结果

boolean b = verifyCode.equalsIgnoreCase(vcode);

//发送给客户端

resp.getWriter().print(b);

return null;

//验证码校验

String verifyCode = formUser.getVerifyCode();

String vcode = (String) session.getAttribute("vCode");

if(verifyCode == null || verifyCode.trim().isEmpty()) {

errors.put("verifyCode", "验证码不能为空!");

} else if(!verifyCode.equalsIgnoreCase(vcode)) {

errors.put("verifyCode", "验证码错误!");

}

return errors;

<script type="text/javascript">

$(function() {

var loginname = "${user.loginname == null ? cookie.loginname.value : user.loginname}";

loginname = window.decodeURI(loginname);

$("#loginname").val(loginname);

});

</script>

2.LoginFilter.java中部分代码如下:

public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {

HttpServletRequest req = (HttpServletRequest) request;

Object sessionUser = req.getSession().getAttribute("sessionUser");

if (sessionUser == null) {

req.setAttribute("code", "error");

req.setAttribute("msg", "您还没有登录!");

req.getRequestDispatcher("/jsps/msg.jsp")

.forward(request, response);

} else {

chain.doFilter(request, response);

}

}

3.用户操作部分核心代码UserServlet.java:

public String updatePassword(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//封装表单数据到User

User formBean = CommonUtils.toBean(req.getParameterMap(), User.class);

//调用userService的updatePassword(String uid, String newpass)方法修改密码

User user = (User) req.getSession().getAttribute("user");

userService.updatePassword(user.getUid(), formBean.getNewpass());

 //转发到msg.jsp

req.setAttribute("code", "success");

req.setAttribute("msg", "恭喜,密码修改成功!");

return "f:/jsps/msg.jsp";

}

4.订单处理部分核心代码OrderServlet:

public String payment(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

/*

 * 1. 准备访问易宝网关的数据

 */

Properties props = new Properties();

props.load(this.getClass().getClassLoader()

.getResourceAsStream("payment.properties"));

String p0_Cmd = "Buy";// 业务类型

String p1_MerId = props.getProperty("p1_MerId");// 商户编号,从配置文件上加载

String p2_Order = req.getParameter("oid");// 商户订单号

String p3_Amt = "0.01";// 支付金额

String p4_Cur = "CNY";// 交易币种

String p5_Pid = "";// 商品名称

String p6_Pcat = "";// 商品种类

String p7_Pdesc = "";// 商品描述

String p8_Url = props.getProperty("p8_Url");// 商户接收支付成功数据的地址,从配置文件上加载

String p9_SAF = "";// 送货地址

String pa_MP = "";// 商户扩展信息

String pd_FrpId = req.getParameter("yh");// 支付通道编码

String pr_NeedResponse = "1";// 应答机制

// 使用密钥生成hmac,它是不可逆的

String keyValue = props.getProperty("keyValue");// 密钥,从配置文件上加载

String hmac = PaymentUtil.buildHmac(p0_Cmd, p1_MerId, p2_Order, p3_Amt,

p4_Cur, p5_Pid, p6_Pcat, p7_Pdesc, p8_Url, p9_SAF, pa_MP,

pd_FrpId, pr_NeedResponse, keyValue);

/*

 * 把数据保存到request中,

 * 转发到/WEB-INF/jsp/sendpay.jsp页面,

 * 这个页面会把数据显示在表单中,表单会自动提交到易宝网关。

 */

req.setAttribute("p0_Cmd", p0_Cmd);

req.setAttribute("p1_MerId", p1_MerId);

req.setAttribute("p2_Order", p2_Order);

req.setAttribute("p3_Amt", p3_Amt);

req.setAttribute("p4_Cur", p4_Cur);

req.setAttribute("p5_Pid", p5_Pid);

req.setAttribute("p6_Pcat", p6_Pcat);

req.setAttribute("p7_Pdesc", p7_Pdesc);

req.setAttribute("p8_Url", p8_Url);

req.setAttribute("p9_SAF", p9_SAF);

req.setAttribute("pa_MP", pa_MP);

req.setAttribute("pd_FrpId", pd_FrpId);

req.setAttribute("pr_NeedResponse", pr_NeedResponse);

req.setAttribute("hmac", hmac);

return "/WEB-INF/jsp/sendpay.jsp";

}

/WEB-INF/jsp/sendpay.jsp

<form action="https://www.yeepay.com/app-merchant-proxy/node" method="get" id="form1">

<input type="hidden" name="p0_Cmd" value="${p0_Cmd }"/>

<input type="hidden" name="p1_MerId" value="${p1_MerId }"/>

<input type="hidden" name="p2_Order" value="${p2_Order }"/>

<input type="hidden" name="p3_Amt" value="${p3_Amt }"/>

<input type="hidden" name="p4_Cur" value="${p4_Cur }"/>

<input type="hidden" name="p5_Pid" value="${p5_Pid }"/>

<input type="hidden" name="p6_Pcat" value="${p6_Pcat }"/>

<input type="hidden" name="p7_Pdesc" value="${p7_Pdesc }"/>

<input type="hidden" name="p8_Url" value="${p8_Url }"/>

<input type="hidden" name="p9_SAF" value="${p9_SAF }"/>

<input type="hidden" name="pa_MP" value="${pa_MP }"/>

<input type="hidden" name="pd_FrpId" value="${pd_FrpId }"/>

<input type="hidden" name="pr_NeedResponse" value="${pr_NeedResponse }"/>

<input type="hidden" name="hmac" value="${hmac }"/>

$(function() {

$("#form1").submit();

});

基于JavaWeb的网上购物系统的设计与实现相关推荐

  1. 基于WEB的网上购物系统的设计与实现|电商购物商城

    <S2SH基于WEB的网上购物系统的设计与实现>该项目采用技术jsp.strust2.Spring.hibernate.tomcat服务器.mysql数据库 ,项目含有源码.论文.配套开发 ...

  2. 【计算机毕业设计】基于JSP的网上购物系统的设计与实现

    分类号:TP315 U D C:D10621-408-(2007)5883-0 密 级:公 开 编 号:2003214012 学位论文 基于JSP的网上购物系统的设计与实现 基于JSP的网上购物系统的 ...

  3. 基于JavaWeb的网上购物系统开发(含代码)

    为了开发一个JavaWeb的网上购物系统,我们可以使用一些常见的技术,如Java.Spring.Spring MVC.Hibernate等.下面是一个简单的购物系统开发的步骤以及在这个过程中用到的一些 ...

  4. 基于JSP的网上购物系统的设计

    技术:Java.JSP等 摘要: 近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域.于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向 ...

  5. 基于JSP的网上购物系统的设计与实现(论文+源码)_kaic

    摘  要 近些年来,社会的生产力和科技水平在不断提高,互联网技术也在不断更新升级,网络在人们的日常生活中扮演着一个重要角色,它极大地方便了人们的生活.为了让人们实现不用出门就能逛街购物,网络购物逐渐兴 ...

  6. 《基于Java的网上购物系统的设计与开发》 硕士论文

    这个论文基本上复刻了淘宝平台的一整套购物系统,在模块,功能方面也写得很详细,逻辑图的呈现也让我对整套功能体系更加熟悉. 语言:java 技术: struts    (好像springboot用的人更多 ...

  7. 基于WEB的网上购物系统的设计与实现

    技术:Java.JSP等 摘要: 随着计算机网络技术的飞速发展和人们生活节奏的不断加快,电子商务技术已经逐渐融入了人们的日常生活当中,网上商城作为电子商务最普遍的一种形式,已被大众逐渐接受.因此开发一 ...

  8. 毕业设计 基于WEB的网上购物系统的设计与实现

    文章目录 一.项目设计 1. 模块设计 功能需求 系统数据流设计 功能设计 前台主要功能 后台主要功能 2. 实现效果 二.部分源码 项目源码 一.项目设计 1. 模块设计 功能需求 (1) 登录功能 ...

  9. Java项目源码下载S2SH基于WEB的网上购物系统的设计与实现|电商购物商城

  10. java商城答辩_毕业答辩-基于Java的网上购物商城的设计与实现.ppt

    指导老师: 答辩人: 学号: 学院:信息工程学院 基于JAVA的网上购物系统的设计与实现 1 2 绪论 技术介绍和系统设计 3 系统的实现 4 结论与展望 一.绪论 随着网络的蓬勃发展,电子商务技术在 ...

最新文章

  1. redis和mysql内存数据库性能_Redis高性能内存数据库
  2. java spark persist,hadoop – 我的sparkDF.persist(DISK_ONLY)数据存储在哪里?
  3. spark-submit参数说明--on YARN
  4. 找工作,我该如何是好?
  5. python 批量resize性能比较
  6. [Java基础] 深入jar包:从jar包中读取资源文件
  7. boost::hana::is_subset用法的测试程序
  8. 领域驱动设计,让程序员心中有码(五)
  9. error while loading shared libraries: xxx.so.x错误
  10. python变量作用域图解_python笔记--作用域、高阶函数、闭包
  11. matplotlib xticks yticks
  12. PL/SQL Developer将Excel表格数据导入表格
  13. 【H.264/AVC视频编解码技术详解】七、 熵编码算法(1):基础知识
  14. ecshop 首页调用多个促销,显示到计时
  15. 毫米和像素怎么换算_像素和厘米怎么换算?
  16. Linux下 python调用讯飞离线语音合成(tts)
  17. 犹太民族与基督的真相!
  18. 《数据库原理与应用》复习总结
  19. HTML 内联元素之间的空隙问题
  20. 足下校园C语言评估系统答案,江苏省江阴市南闸实验学校2020-2021学年八年级下学期第4周周练语文卷(word含答案))...

热门文章

  1. 高考英语50分学计算机,高中英语怎么学,才能在一个月内提高50分?
  2. Qt .Pro 文件中的相对路径设置注意事项
  3. 杂记(一)——python虚拟环境的创建 anaconda(windows 视窗下)
  4. python学习(列表下)
  5. 第一次用consolo口连接思科交换机
  6. Win10任务栏 图标居中
  7. Java实战之图书管理系统(swing版)(4)——主界面及功能实现
  8. AI生成文章二开版本来袭,需要的小伙伴进来看看
  9. CSS3 盾牌组合动画
  10. 短趣:基于移动情境的兴趣生活社区