2016网上购物系统-毕业设计
安徽工业大学
毕业设计(论文)说明书
专 业 班 级 姓 名 学 号 指导教师
软件工程 122班 周庆梅 129074211 许文方
二 〇一六 年 六 月 十六 日
安徽工业大学
毕业设计(论文) 任务书
课题名称 学 院 专业班级 姓 名 学 号
毕业设计(论文)的主要内容:
网上购物系统 计算机科学与技术学院 软件工程122班
周庆梅 129074211
本系统利用JavaEE 开发基于B/S结构的网上购物系统,实现管理员对购物商品的实时更新和用户购物信息的提交。
(1)需求分析: 将对购物用户购物流程和卖家对商品的上架流程进行分析,所需的功能模块有哪些。
(2)总体设计:将系统划分成两大功能模块:前台和后台。前台功能模块有:注册、激活、登录、搜索、修改密码等模块。后台功能模块有:管理员登录、分类管理、商品管理、订单管理。每一个功能模块实现的具体功能。
(3)详细设计:整体设计思想,功能模块图,实体对应的属性E-R 图设计,数据库表设计。
(4)测试:采用了黑盒测试和白盒测试。
指 导
教 师 签 字
摘 要
随着现代现代信息网络技术的不断发展,互联网市场正在以无法想象的速度和空前的规模迅猛发展,电子商务成为人们关注的焦点,各企业认识到建立企业级的电子商务平台不仅可以拓宽销售渠道,还能提升形象和品牌效应,对企业的发展有着重要的战略意义。在此背景下,网络购物作为新兴的商业模式逐步浮出水面,并在发展过程中备受瞩目。
网络购物巨大的市场规模和美好的发展前景不容小视。但是网络购物的繁荣需要时间,需要业界的投入,需要网络的发展。相信中国电子商务在一段时间后会达到国际化水平。
网上购物系统,是在网络上建立一个虚拟的购物商场,使您的购物过程变得轻松、快捷、方便,很适合现代人快节奏的生活;同时又有效的控制“商场”运营的成本,开辟了一个新的销售渠道。
本系统利用现代化的电子及网络技术,为消费者和企业搭建一个良好的互动平台。让用户享受快捷的购物方式,为企业提供不同于传统销售的崭新的销售模式。 该购物系统是一个中小型的电子商务系统,可以为各类用户提供方便的在线购物环境。用户可以在系统中实现注册、登录、修改个人信息、分类查询商品信息、购物、管理购物车、结账等功能。管理员可以通过后台管理模块实现对商品、物流、订单等后台管理功能。本系统采用servlet 和jsp 技术,以MySQL 为系统数据库开发,整个系统操作简便、界面友好、灵活实用。
关键词: 电子商务; 网上购物;jsp;servlet
Summary
With the development of modern information and network technology, the Inter net market is unimaginable speed and on an unprecedented scale rapid development, electronic commerce become attention focus of each enterprise understanding to bu ild enterprise class e-commerce platform can not only broaden the sales channels, b ut also enhance the image and brand effect, to the enterprise development the impo rtant strategic significance. In this context, online shopping as a new business mode l gradually surfaced, and in the development process has been the focus of attentio n.
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 o f the network .I believe that E1ectronic Commerce in China will reach the internati onal level over a period of time .Key words :network shopping ,traditional shoppi ng ,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 in teractive 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 sy stem, can provide users with convenient online shopping environment. Users can ac hieve registration, login, modify personal information, classification and query produ ct information, shopping, management shopping cart, checkout and other functions i n the system. Administrators can achieve through the background management mod ule 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 课题研究背景 ............................................................. 1 1.2 课题研究意义 ............................................................. 2 1.3 课题研究目标 ............................................................. 2 2 技术理论 ....................................................................... 3
2.1 B/S模式 .................................................................. 3 2.2 JSP技术 .................................................................. 3 2.3 MySQL数据库 .............................................................. 3 2.4 JQuery ................................................................... 4 2.5 Javascript ............................................................... 4 2.6 DBUtils .................................................................. 4 2.7 C3P0 ..................................................................... 4 2.8 本章小结 ................................................................. 4 3 系统分析 ....................................................................... 5
3.1 可行性研究 ............................................................... 5 3.2需求分析 .................................................................. 5 3.3 系统功能模块设计 ......................................................... 6 3.4 本章小结 ................................................................. 7 4 数据库设计 ..................................................................... 8
4.1 数据库概念结构设计 ....................................................... 8 4.2 数据库表设计 ............................................................ 10 4.3 本章小结 ................................................................ 12 5 设计与实现 .................................................................... 13
5.1 系统的整体设计 .......................................................... 13 5.2 前台功能的实现 .......................................................... 14
5.2.1注册模块 .......................................................... 15 5.2.2 激活模块 . ......................................................... 17 5.2.3用户登录模块 ...................................................... 16 5.2.4订单模块 .......................................................... 18 5.2.5修改密码 .......................................................... 19 5.3 服务器端的实现 .......................................................... 19
5.3.1管理员登录模块 .................................................... 20 5.3.2分类管理模块 ...................................................... 20 5.3.3商品管理模块 ...................................................... 21 5.3.4订单管理模块 ...................................................... 22 5.4本章小结 ................................................................. 22 6 系统测试 ...................................................................... 23
6.1 系统测试工作 ............................................................ 23 6.2 系统测试工作 ............................................................ 23 6.3 系统测试结果 ............................................................ 24 7 结束语 ........................................................................ 25
7.1 论文的总结 .............................................................. 25 7.2 不足 .................................................................... 25 参考文献 ......................................................................... 26 致谢 ............................................................................. 27
1 引言
1.1 课题研究背景
网上购物起源于1999年的美国,当时一些大公司通过建立自己的计算机网络实现各个机构之间、商业伙伴之间的信息共享,这个过程被称为电子数据交换。电子数据交换通过传递标准的数据流可以避免人为的失误、降低成本、提高效率,世界上很多大企业都在使用这一技术。它过去是、现在也是网上购物的基础。
中国互联网络信息中心前几年发布的中国互联网络发展状况统计报告显示:中国网民规模已突破6亿,全年新增网民近六千万,互联网普及率提升达到百分十四十,手机网民规模达到3.6亿,并且数量在不断上升增长,网络带给人们的方便快捷日益显著。随着互联网越来越广泛地被使用,足不出户地购物变得更吸引人,这时网络购物的优势就更加突出了。网上购物日益成为一种重要的购物形式。购物模式由传统转为网上购物,人们对于网购不再津津乐道,而是成为一种生活习惯。
网上购物变得不再新鲜,一些大型的购物网站每年都会有上亿的成交量。如比较出名的购物网站有:蘑菇街,唯品会,聚划算,京东,淘宝,亚马逊等。网上商店大多是综合的商场,所售商品五花八门,包罗万象。还有一些购物网站只销售单一商品,例如,好乐买只售鞋子。著名的双十一购物狂欢节,成为中国电子商务行业的年度盛事,并且逐渐影响到国际电子商务行业。前年11月11日,阿里巴巴双十一全天交易额571亿元。去年11月11日,天猫双十一全天交易额912.17亿元。可见人们对于网购的热爱和信赖以及网购的流行趋势。
本网上购物系统是一套基于数据库的商品产品发布管理系统,可用于商品产品的实时发布以及商品数据管理,前台用户可通过页面浏览,查询和订购产品,后台管理员可以管理产品价格,简介,图片等多种信息。
为什么要发明网上购物呢,相对于实体店铺它有什么优势呢?它不仅对于消费者来说是一个福利,对于投资者更是巨大的福音。一项针对中国中小企业的情况调查显示,个人在网下建成实体商店的平均费用至少需要5万元,而网上开店建店成本非常小。筹办一家网上商店不用去租门面,不用去办营业执照,不用囤积货品;同时租金不会因为营业面积的增加而增加,投资者也不用为延长营业时间而增加额外的费用;网上商店延长了店铺的营业时间,一天24小时、一年365天不停地运作,无须专人值班看店,都可照常营业;网上商店的销售规模不受地盘限制,即便在地面上只有一个小商店,或者干脆就没有门面,开店的生意却可以照样做得很大,只要投资者愿意,可以摆上成千上万种商品。目前国内最大的拍卖网站同时在线的商品要超过10万件,已超过一些大超市。另外网上商店比同等规模的地面商店“租金”要低得多。而传统商店要租门面,办营业执照,囤货;营业时间一般为8-12小时,遇上坏天气或者老板、店员有急事也不得不暂时休息; 传统商店有多大就只能摆放多少商品,生意大小常常被小店面积限制。所以网店是低投资创业人士首选,所需资金不过1500元左右,建成一个网店所需时间也少了不止一半,省钱省力。是一种低投资回收快的创业类型,深受广大用户的喜爱。
1.2 课题研究意义
购物指在消费者挑选或购买货品或服务的行为,可视为一种经济和休闲活动。很早之前,人们在当地的商店或商场购买自己需要的东西。购买行为需要你有一定的时间,需要花费精力,金钱。害怕孤单的人有时需要一个陪逛者。当你急需某件物品的时候,没有时间,懒得动弹,不想一个人出去的时候,就会发现现在的网购是一种多么伟大发明。
于消费者来说:在家“逛商店”,可以不受时间、地点的限制订货,只要你有网络,有一部手机或电脑,就可以享受购物的乐趣,不但可以获得较大量的商品信息,买到当地没有的商品,从订货、买货到货物上门无需亲临现场既省时,又省力;网上支付较传统拿现金支付更加安全,可避免现金丢失或遭到抢劫;网上商品由于省去租店面、招雇员及储存保管等一系列费用,总体其价格较一般商场的同类商品更实惠;很多人喜欢在网上购买成人用品,这样可以保护个人隐私,免去去实体店的尴尬难堪。
对于商家来说:由于网上经营成本低、销售库存压力较小、经营规模不受场地限制等优点,深受广大企业的喜爱。将来会有更多的企业选择在网上销售,通过互联网对市场信息的及时反馈适时调整经营战略,以此提高企业的经济效益和参与国际竞争的能力。对于整个市场经济来说:网上购物这种新型的购物模式可在更大的范围内、更广的层面上以更高的效率实现资源配置。
综上可以看出,网上购物突破了传统商务的障碍,无论对消费者、企业还是市场来说都存在着巨大的吸引力和影响力,在新经济时期无疑是达到“多赢”效果的理想模式。
1.3 课题研究目标
由于网上购物的巨大魅力和潜力,本设计旨在设计当下流行的购物系统。
本设计的研究目标是利用JavaEE 开发基于B/S结构的网上购物系统,实现管理员对购物商品的实时更新和用户购物信息的提交,具体包括:
1. 本系统可以利用互联网的快捷性,使人们可以在家购物,避免了传统的出门购物带来的大量时间和空间的浪费,带给人们便捷,增加物品的购买率。
2. 系统支持人们修改个人信息,浏览商品、搜索商品,添加购物信息,支付结账。
3. 系统带有管理员登陆模式,商家可以便捷地对商品进行更行,分类等操作。
2 技术理论
2.1 B/S模式
B/S结构(Browser/Server,浏览器/服务器模式),是WEB 兴起之后出现的一种网络结构模式,它与C/S的最大区别就是不用安装任何第三方软件,只需要一个WEB 浏览器就可以运行。它将客户端统一起来将系统功能发布到服务器上,大程度上简化了系统的开发使用,更有利于推广。
B/S的优势在于任意一台客户机都有浏览器,而客户不需要下载安装任何软件就可以使用。这样使得客户无论走到什么地方,只要有一台任意的客户机,他们就可以随时随地的输入地址进入软件系统。而且增加功能也简单方便,开发人员只需要通过增加网页就可以增加服务器的功能了。更重要的是维护简单方便,开发人员不用到现场,客户机软件也不用更新到最新,只需要改变网页,就可以实现所有用户软件功能的更新。B/S模式的图解如图2-1所示:
图2-1 B/S模式图解
2.2 JSP技术
JSP(JavaServer Pages)技术是由servlet 技术发展起来的,刚开始程序员都是通过servlet 往html 页面中写代码,可是在实践当中发现,所有html 语言都通过out.println()这样写在html 当中会非常的麻烦,所以渐渐演变出了一门新的技术,就是JSP 技术。JSP 技术是程序员的福音,简化了程序员的大量工作。
2.3 MySQL数据库
MySQL 是一个可用于各种常用操作系统平台的关系型数据库,而且它在诸如UNIX 这样的操作系统上,是一个免费开源的数据库软件。MySQL 被完全用于网络,用MySQL
创建的数据库可以在英特网上的任何地方都可以访问。因此,可以在网络
上任何地方共享数据库。
其次,MySQL 数据库拥有占用内存小、安装快捷、安全性好等优点,将其装在个人电脑上用于小型的数据存储是最适合不过的了。
2.4 JQuery
jQuery 是一个兼容多浏览器的javascript 框架,核心理念是write less,do more(写得更少, 做得更多) 。jQuery 在2006年1月由美国人John Resig在纽约的barcamp 发布,吸引了来自世界各地的众多JavaScript 高手加入,由Dave Methvin率领团队进行开发。如今,jQuery 已经成为最流行的javascript 框架,在世界前10000个访问最多的网站中,有超过55%在使用jQuery 。
jQuery 是免费、开源的,使用MIT 许可协议。jQuery 的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM 元素、制作动画效果、事件处理、使用Ajax 以及其他功能。除此以外,jQuery 提供API 让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。
2.5 Javascript
JavaScript 是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web 开发的脚本语言,常用来给HTML 网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape )的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
Javascript 语言与Java 语言在语法上比较相似,但随着对Javascript 的深入了解后你会发现,它们是两种语言。
2.6 DBUtils
Common Dbutils是操作数据库的组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List 。传统操作数据库的类指的是JDBC (java database connectivity :java 数据库连接,java 的数据库操作的基础API 。)
DBUtils 是java 编程中的数据库操作实用工具,小巧简单实用, 特色:
1. 对于数据表的读操作,他可以把结果转换成List ,Array ,Set 等java 集合,便于程序员操作;
2. 对于数据表的写操作,也变得很简单(只需写sql 语句)
3. 可以使用数据源,使用JNDI ,数据库连接池等技术来优化性能--重用已经构建好的数据库连接对象,而不像php ,asp 那样,费时费力的不断重复的构建和重构这样的对象。
2.7 C3P0
C3P0是一个开源的JDBC 连接池,它实现了数据源和JNDI 绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate ,Spring 等。
2.8 本章小结
本章主要介绍了网上购物系统所用到的技术基础,通过基础介绍凸显出了这些技术的优势,为选择这些技术的原因奠定理论基础。
3 系统分析
3.1 可行性研究
可行性研究阶段通过对系统目标进行市场调研和技术分析,提出了初步的可行性方案并进行了论证。这里主要从技术可行性、经济可行性两方面进行分析。
1. 技术可行性
技术可行性要考虑到现有的技术手段和能力能不能完成系统的开发,以免开发到一半出现现有技术无法解决的问题。本系统主要采用的是JAVA 语言和JSP 技术,jdom 解析xml 。JAVA 语言和JSP 都是很成熟的技术,也是世界范围内应用最广泛的技术,所以用它们作为后台和前台的语言是没有任何问题的。而且集成开发工具MyEclipse 可以解决很多方面的问题,创造了良好的开发环境。由于JSP 、Servlet 功能强大,而MySQL 灵活易维护在开发方面具有方便快捷、使用灵活的特点,以及目前的广泛实际应用,因此使用JSP 、Servlet 、MySQL 是开发轻平台的最佳组合从而说明本系统在技术方面可行。
硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。
2. 经济可行性
该系统硬件只需要一台PC 机,而且配置要求不高。软件方面用到的MySQL 是免费开源的,MyEclipse 也是免费使用的,所以开发成本并不高。而该系统若投入运行之后不仅减少了人力、物力而且可以推动电影行业的发展,所带来的收益是巨大的,因此在经济上也是可行的。
3.2需求分析
此网络购物平台系统旨在为用户提供一个简易的具备一些基本功能的购物系统,通过这个系统用户可以轻松的获得自己想要的商品。存在两种类型用户,普通用户和管理员用户。普通用户在这个系统中注册过后进行登陆此时可以对个人资料进行修改,同时可以在平台中进行自由的选购自己想要的商品,将选购好的商品加入购物车,如果需要修改可以在购物车中更改所需的商品数量,当选择完成过后可以确认购买,也可以让所选物品一直处在购物车中,等待下次登陆时依然有效。管理员用户可以对商品进行管理,包括商品上架,商品下架,商品查询,商品修改等。
本节将对网上购物系统进行需求分析和模块设计,本系统分为前台和后台两大模块,下面进行详细分析: 前台(普通用户)部分:
1.用户管理:注册会员、登录、激活、退出、修改密码; 2.分类显示:显示所有一级和二级分类;
3.商品显示:按分类查询商品、通过关键字搜索商品、高级搜索商品、查看某本商品的详细等;
4.购物车管理:向购物车中添加商品、修改购物车中商品数量、删除购物车中商品、我的购物车;
5.订单管理:通过购物车中商品生成订单、查看我的订单、查看某个订单的详
细、订单支付、确认收货、取消未付款订单。
后台(管理员管理)部分: 1.管理员:管理员登录;
2.分类管理:查看所有分类、添加1级分类、添加2级分类、修改1级分类、修改2级分类、删除1级分类、删除2级分类;
3.商品管理:按分类搜索商品、高级搜索商品、添加新商品、查看商品详细信息、编辑商品、删除商品;
4.订单管理:按状态搜索订单、查看订单详细信息、取消订单、发货;
3.3 系统功能模块设计
根据系统功能分析,可以画出系统的功能模块图。前台功能模块图如图3-1所示:
图3-1 前台功能模块图
后台管理员功能图如图3-2所示:
图3-2 后台管理员功能模块图
3.4 本章小结
本章主要是做系统概要设计的前期工作,包括可行性分析、需求分析等,也是很重要的一个环节。在实际工作中,这部分一定要做好分析设计,因为需求分析没有做好则接下来的工作都不能进行下去。
以上内容基本确定了本系统需要完成哪些功能,也把整个系统划分成了几个模块,而且基本确定了各个模块需要完成的功能,为接下来的概要设计工作奠定了基础。
4 数据库设计
4.1 数据库概念结构设计
每个实体都有它所拥有的属性,以下列出本系统涉及的所有实体和它们的属性。该购物系统全局E-R 图如下:
图4-1 系统全局E-R 图
本系统设计规划的主要实体有:用户、管理员、商品、商品分类、购物车、订单。各个实体具体的描述属性图如下(由于属性过多,实体属性在下图中并没有全部给出):
(1)用户信息
用户有两种身份,一种是普通用户还有一种是管理员,管理员和用户只有身份上的差异,所以在这里把管理员和用户看做一个实体对象,实体对象属性如图4-2所示:
图4-2 用户信息
(2)商品信息
网上购物系统,所以肯定有商品这个实体,这个实体的属性必定有商品名称、商品介绍、商品价格和生产商等,这里为了简化对象仅列出以下属性如图4-3所示,它们是一个商品所包含的最基本的信息。
图4-3 商品信息
(3)商品类别信息
为了商品搜索方便,需要对商品进行类别分类,这里把类别看做一个实体对象,一个类别包含的信息如下所示。
图4-4 商品类别信息
(4)购物车信息
购物车是购物项的集合,多个购物项构成了购物车。
图4-5 购物车信息
(5)订单信息
订单是订单项的集合,多个订单项构成了订单。
图4-6 订单信息
4.2 数据库表设计
数据库表设计主要是把概念结构设计时设计好的基本E-R 图转换为与数据模型相符合的逻辑结构。它包括数据项、记录及记录间的联系、安全性和一致性约束等等。导出的逻辑结构是否与概念模式一致,从功能和性能上是否满足用户的要求,要进行模式评价。
本系统数据库表如下:
表4-1 用户表t_user
字段名称 uid
loginname loginpass email status
activationCode 数据类型 char(32) varchar(50) varchar(50) varchar(50) boolean char(64) 主键 Y N N N N N
是否空 N N N N N N 说明 主键 登录名 登录密码 邮箱地址 是否激活 激活码(唯一)
表4-2商品类别表t_category
字段名称 cid cname pid desc orderBy
数据类型 char(32) varchar(50) char(32) varchar(100) int 主键 Y N N N N 是否空 N N Y Y Y 说明 主键 分类名称 父分类ID 分类描述
序号,用来排序
表4-3商品表t_goods
字段名称 bid bname author price currPrice discount press
publishtime edition pageNum wordNum printtime booksize paper cid
image_w image_b orderBy
数据类型 char(32) varchar(200) varchar(50) decimal(8,2) decimal(8,2) decimal(3,1) varchar(100) char(10) int int int
char(10) int
varchar(50) char(32) varchar(100) varchar(100) int
主键 Y N N N N N N N N N N N N N N N N N
是否空 N N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
说明
主键 书图名称 作者 定价 当前价 折扣 出版社 出版时间 版次 页数 字数 印刷时间 开本 纸质
所属分类ID 大图路径 小图路径
序号,用来排序
表4-4 购物车t_cartitem
字段名称 cartItemId quantity bid uid
orderyBy
数据类型 char(32) int
char(32) char(32) int 主键 Y Y Y Y Y 是否空 N N N N N 说明 主键 数量 商品ID 用户ID
序号,用来排序
表4-5 订单t_order
字段名称 oid
ordertime total status address uid
数据类型 char(32) char(19)
decimal(10,2) int
varchar(1000) char(32) 主键 Y Y Y Y Y Y 是否空 N N N N N N 说明 主键 下单时间 合计金额 订单状态 收货地址 用户ID
表4-6 订单数量t_orderitem
字段名称 orderItemId quantity subtotal bid bname currPrice image_b oid
数据类型 char(32) int
decimal(8,2) char(32) varchar(200) decimal(8,2) varchar(100) char(32)
主键 Y Y Y Y Y Y Y Y
是否空 N N N N N N N N
说明 主键 数量 小计 商品ID 商品名称 商品当前价 商品小图路径 所属订单ID
表4-7 管理员t_admin
字段名称 adminId adminname adminpwd
数据类型 char(32) varchar(50) varchar(50)
主键 Y Y Y
是否空 N N N
说明 主键
管理员名称 管理员密码
4.3 本章小结
本章确定了各个实体,形象的表现了各个实体的属性以及实体之间的关系。并详细设计了各个表的结构,为数据库的建表和主代码的编写奠定了基础。
5 设计与实现
5.1 系统的整体设计
该购物系统前台面向消费者,因此不仅要系统稳定、功能强大,不能出现大的漏洞bug ,支付时还要足够安全,保障消费者的财产安全。还要能简洁、方便操作,有基本的浏览商品购物功能,编辑资料功能,购物功能,让用户感受到完整的购物流程便捷的操作体验。本系统采用青春活泼的青色作为主色调,外观清新美好,简洁大方。前台的主要功能模块包括注册模块,登录模块,检索商品模块,购买商品模块,购物车模块,我的主页模块等。用户在没有登录注册的时候,可以浏览商品,若想购买必须先登录。没有账号的可以点击登录模块右上方的立即注册按钮进行注册。登陆之后用户可以把商品加入购物车,然后进行购买。还可以享受查看订单,修改密码等功能。
前台系统首页如下图5-1所示(部分):
图5-1 前台系统首页图
后台系统可以在首页的管理员登录按钮点击进行登录,登陆之后的界面如下。后台是管理员进行商品上架,编辑或删除等操作管理的一个平台。管理员还可以对商品的分类进行管理,添加一级分类,添加二级分类,添加分类描述,或者删除分类,删除一级分类前要删除完一级分类底下的二级分类,否则提示报错。对订单进行管理,可对订单进行查看,取消未付款订单,对已付款订单进行发货,删除已取消订单,对交易成功订单进行统计。
后台系统首页如图5-2所示(部分):
图5-2 后台系统首页图
5.2 前台功能的实现
前台系统分为如下模块:注册模块、分类模块、商品模块、购物车模块、订单模块。
User 类作为实体类需要与数据库表对应,即t_user表对象。而且User 类还要用来封装表单数据,所以User 类还要与表单对应。User 类对照着t_user表来写。要保证User 类的属性名称与t_user表的列名称完全相同。
UserDao 封装了对数据库的基本操作。UserDao 需要使用TxQueryRunner 来完成对数据库的操作。
UserService 封装了业务功能,在UserService 中每个方法对应一个业务功能,例如:注册方法、登录方法等等。一个业务方法可能需要多次调用DAO 中的方法。所以,Service 依赖Dao ,我们需要在UserService 中给出一个UserDao 类型的成员。
请求参数,然后转发或重定向等。在UserServlet 中完成业务功能需要使用UserService ,所以我们需要在UserServlet 中给出一个UserService 的成员。可以让一个Servlet 中有多个请求处理方法,让UserServlet 继承BaseServlet 。
下面将详细介绍各模块的实现思路和方法。
5.2.1注册模块
图5-3 注册界面图
注册页面从首页的注册按钮点击进入。代码在jsps->user底下的regist.jsp 。我们需要在regist.jsp 页面中对表单数据使用JQuery 进行校验。当用户在文本框中输入数据后,光标离开文件框时对数据进行校验。如果校验未通过,会在文本框后台显示错误信息。
函数中首先判断用户名是否为空,为空则提示“用户名不能为空”,然后判断用户名字符长度是否在3到20之间,若用户名已被注册则需要异步访问服务器;然后进行登录密码校验:密码不能为空,密码长度必须在3 ~ 10之间;确认密码校验:确认密码不能为空,两次输入不一致则会提示“两次输入不一致”;Email 校验:Email 不能为空,格式要正确即邮箱的名称加@加邮箱的归属,描述为(/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/);若Email 已被注册,则提示该邮箱已被注册,这需要异步访问服务器;验证码校验:验证码不能为空,验证码要与图片中出现的数字或字母相同,否则提示验证码错误。验证码看不清时可以点击验证码左方的换一张字样更换。
当点击“立即注册”按钮时,还要对表单每项进行校验。因为一开始可能填写了正确的验证码,所以光标离开时没有错误,但用户又点击了“换一张”链接,这时填入的验证码就是错误的了,所以我们需要在提交表单时再次进行校验。
regist.jsp 页面中有异步请求服务器来对表单进行校验:校验登录名是否已注册过;校验Email 是否已注册过;校验验证码是否正确。
在UserServlet 中需要提供相应的方法来支持前端的请求,如获取验证码和校验,下面是部分代码。
相应的,在UserDao 和UserService 中也需要提供方法。当表单校验通过后,客户端会请求UserServlet#regist() 方法。
5.2.2用户登录模块
login.jsp 为登录页面,与注册一样需要做前端表单校验。
图5-4 登陆界面图
登录模块提供用户名的非空校验和长度校验,密码的非空校验和长度校验,验证码的非空校验和是否正确校验。依照regist.js 来完成登录表单的校验。
在用户名文本框中显示cookie 中保存的loginname ,就是所谓的记住用户名。当
用户登录成功后,会把当前用户的名称保存到cookie 中,当用户再次到登录页面时,
因为上面代码中使用了EL 表达式,所以一定要放到JSP 页面中才可以。
5.2.3购物车模块
图5-5 购物车界面图
对购物车操作的前提是登录,购物车属于特定用户,这里使用登录校验过滤器来进行校验,过滤的资源包括:CartItemServlet ,以及/jsps/cart目录。
登陆之后,用户浏览商品,看见心仪的商品可以点击购买。若没想好是否购买可以返回继续浏览商品。浏览完之后可以在首页上部点击“我的购物车”链接查询购物车。购物车列表页面会显示所有车中所有条目,每个条目会显示商品图片、商品名称、商品当前价格、数量,以及小计。本系统中对购物车的操作如下: 1. 添加购物车中的购物项目; 2. 修改购物车项目的数量;
3. 批量删除项目; 4. 查看我的购物车;
5. 显示被选中的购物车项目,准备生成订单;
5.2.4订单模块
订单模块的功能只有登录用户才能使用,所以需要在LoginFilter 中添加对订单模块页面,以及Servlet 的过滤。查看订单详细是从/jsps/order/list.jsp开始,点击“订单编号”、“查看”、“取消”、“确认收货”链接,都会查看订单详细。最终到达/jsps/order/desc.jsp页面显示订单详细信息,点击不同的链接到达/jsps/order/desc.jsp页面显示不同的按钮。例如,点击“取消”按钮,到达desc.jsp 显示“取消”按钮;点击“确认收货”链接到达desc.jsp 显示“确认收货”按钮;如果点击“查看”链接,并且订单状态为“未付款”,那么显示“支付”按钮。
订单的状态有5种:
1. 未付款,刚刚生成的订单就是未付款状态; 2. 未发货,订单支付后为已付款,但未发货状态;
3. 未确认收货:当后台管理员发货后,但前台用户没有确认收货时; 4. 交易成功:当用户确认收货后,订单结束,为交易成功状态; 5. 已取消:未付款状态的订单是可以取消的,其他状态不行。
5.2.5修改密码
图5-6 修改密码界面图
用户在登录成功后,点击修改密码链接就会到达修改密码页面。因为表单中包含新密码,而User 类中没有这一属性,所以 修改User 类,添加newpass 属性。需要为UserServlet#validateLoginpass()方法,用来支持表单异步请求。表单校验使用JQuery 完成。其中原密码和验证码是否正确,需要异步访问服务器。原密码:不能为空;长度必须在2~15之间;是否正确。新密码:不能为空;长度必须在2~15之间;确认密码:不能为空;必须与新密码相同;验证码:不能为空;是否正确。
5.3 服务器端的实现
Service 和Dao 与前台共享即可,无需再创建,而Servlet 需要单独创建。
后台商品管理功能有:分页查看指定分类的商品、分页查看指定条件的商品、添加新商品、编辑商品、删除商品。其中只有管理员模块是前台没有的,其他三个模块前台都有。前台有这三个模块,但是前后台也不共享Servlet ,但前后台可以共享Service
和DAO 层。所以只有管理员模块需要创建所有层的类,而其他三个模块只需要创建
Servlet 层类即可。后台有很多功能与前台是相同的,例如按分类查看商品功能,只是转发的页面是后台页面而已。所有后台页面都在adminjsps 目录下,只有管理员登录才能访问的页面在admin 下。不用管理即可访问的页面有login.jsp 和msg.jsp
5.3.1管理员登录模块
后台管理员登录页面,登录成功后到达后台主页。
图5-7 管理员登陆界面图
login.jsp 是后台登录页面,页面提供了表单显示功能。提交表单请求
AdminServlet#login()方法:把表单数据封装到Admin 对象中;使用表单数据调用AdminService#login()方法查询用户;如果查询到用户说明登录成功:把查询到的用户保存到session 中,转发到index.jsp ;如果没有查询到,说明登录失败:在request 中保存错误信息,转发到login.jsp 登录成功后转发到/adminjsps/admin/index.jsp页面,该页面top.jsp 部分需要显示当前用户名,所以需要修改该页面。
5.3.2分类管理模块
分类管理是后台管理第一大功能模块。分类管理的功能有查看分类,修改分类,增加分类,删除分类。分类分一级分类和二级分类,有利于商品的搜索。
图5-8 分类管理模块图
分类管理时须注意的是:在分类列表中,每个一级分类,以及二级分类后都存在“删除”链接。点击一级分类后的“删除”链接完成删除一级分类;点击二级分类后的“删除”完成删除二级分类。如果一级分类下存在子分类,那么不能删除。如果一级分类下存在商品,那么不能删除。
5.3.3商品管理模块
商品管理是后台管理的第二大功能模块。在top.jsp 上点击“商品管理”进入商品管理主页:/adminjsps/admin/book/main.jsp,main.jsp 是框架页,分为左部和中部,其中左部为所有分类(与前台主页左部相同),中部默认显示body.jsp ,body.jsp 有两个链接:添加商品和高级搜索。
图5-9 商品管理界面图
商品管理功能如下:按分类查询商品;按生产厂家查询商品;按卖家查询商品;高级搜索(多条件组合查询);查询商品详细;添加商品;编辑商品;删除商品。
这里介绍一下添加商品。添加商品分为两步:首先点击body.jsp 上的“添加商品”链接,到达add.jsp ;然后在add.jsp 提交表单。 1. 点击“添加商品”链接,到达add.jsp
点击“添加商品”链接,请求AdminBookServlet#addPre()方法,addPre()获取所有1级分类,然后转发到add.jsp 页面。
add.jsp 显示所有1级分类到下拉列表中,当用户显示1级后,需要发送异步请求,获取该1级分类下所有2级分类,然后显示到2级分类下拉列表中。(与编辑商品一样)
2. 在add.jsp 提交表单,完成添加商品。
添加商品需要上传图片,这一功能不能放到AdminBookServlet ,而应该为其单独提供一个Servlet :AdminAddBookServlet 。在AdminAddBookServlet 中需要使用commons-fileupload 组件解析表单。获取所有表单项,封装到Book 对象中,然后调用BookService#add(Book)方法完成添加,最终转发到msg.jsp 显示成功信息。注意的是要对上传的图片扩展名进行校验,然后把图片保存到book_img目录下。
5.3.4订单管理模块
订单管理是后台管理的第三大模块。在top.jsp 上点击“订单管理”查看所有订单。
图5-10 订单管理界面图
订单管理功能如下:查看所有订单;查看未付款订单;查看未发货订单;查看未确认收货订单;查看交易成功订单;查看已取消订单;查看订单详细信息;取消未付款订单;订单发货。
这里简单介绍取消订单和发货两个功能的实现。取消订单和订单发货都是修改订单状态的功能。
1. 修改desc.jsp 页面中“取消订单”和“发货”两个链接,请求AdminOrderServlet
的cancel()和deliver()方法;
2. 调用orderService.updateStatus(String oid, int status)方法完成对订单状态的修改; 3. 保存成功信息到request 中,转发到msg.jsp 页面显示!
5.4本章小结
本章集中介绍了网上购物系统的详细设计,通过对各个模块的划分和展示详细的阐述了设计思路和实现方法。至此,网上购物系统的软件和界面开发的工作即将进入收尾工作,接下来就是系统的系统测试和完善工作。
6 系统测试
6.1 系统测试目的
测试的目的就是希望能发现潜在的各种错误和缺陷而以最少的人力和时间。应根据白盒测试和黑盒测试的知识精心设计测试用例,并利用这些测试用例来运行程序,以发现错误记录在文档中。系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中没有注意到的各种逻辑错误进行复查。
6.2 系统测试工作
所要进行的测试主要包括下面几个方面: 1.网页能否正常运行;
2.网站页面之间的跳转是否能够实现; 3.管理员能否正常登陆和管理信息; 4.用户能否正常登录及正常购物;
5.管理员能否正常上传商品信息主要是商品图片的上传;
6.添加的用户信息、商品信息、订单信息等信息是否能够成功添加到数据库中;
7.数据库是否出现乱码,前台展示是否出现乱码。
6.3 系统测试用例
由于本系统的功能较多,这里不介绍过多,只列出一个登陆的测试用例。
表6-1 登入系统测试用例
6.3 系统测试结果
经过测试,各个网页都可以正常运行,网页之间的跳转也很流畅。用户在登陆的输入框可以正常登陆,输入错误也会有JavaScript 返回的提示。管理员可以正常登陆,顶部会显示管理员身份信息,管理员可以正常添加商品信息,商品的图片也能正常上传到服务器上。用户可以正常购买商品。商品信息和订单信息以及用户注册信息都可以正常添加并保存到数据库中,而且这些信息也可以正常取出展示到前台。最后整个系统都没有出现乱码。由于能力和时间方面的限制,一些功能还不是很完善。总的来说,系统的总体设计目的基本达到,其功能也基本上实现了。
7 结束语
7.1 论文的总结
通过开发此网上购物系统,我较全面的掌握了JA V A 的基本知识和编程技巧,并在开发过程中JA V A 开发能力得到了进一步的提高。如:更进一步的深入了解MVC 设计模式,软件三层框架;SQL 语言的使用。
经过几个月的设计与修改,基本完成了本次毕业设计网上购物系统的设计与实现。本次设计采用的是B/S模式,通过myeclipse8.5集成开发工具进行开发和编码,结合需求和性能分析采纳mysql 作为后台数据库并利用tomcat7.0搭建服务器。本次课题网上购物系统的开发利用的是原型化模型,按照软件工程的基本理论的方法和规范,遵循实用性、用户友好性结合实际情况来进行开发的。本次毕业设计,是四年的学习成果的良好展示,也查阅了大量的有关JSP 、jQuery 等各种前台后台框架的资料,做到了理论结合实践。在实践中也加强了自己的理论知识并提高了自己的应用能力,获得了宝贵的实践经验。
网上购物系统顺应了电子商务蓬勃发展的浪潮,摒弃了传统的商场盈利模式,扩充了商品售出的时间、空间和客户范围。好的电子商务系统必定会带来更多客户的使用也必将反过来推进电子商务系统的发展与完善。
综上所述,本次课题网上购系统系统已经完成,并满足了需求分析中的功能,整个系统运行正常没有出现大的问题和bug 。但由于本人技术能力和时间的限制,还有很多不足之处有待进一步改善。
7.2 不足
系统模块功能有很多不完善的地方。此外,我还觉得,我个人在这次设计中走了很多弯路。主要是因为平时很少接触软件开发工作,在应用方面缺乏经验,以后还需要更多的努力。
参考文献 [1]张志峰.Java Web技术整合应用与项目实战[M].北京:清华大学出版社,2013年. [2]毕广吉.Java 程序设计实例教程[M]. 北京:冶金工业出版社,2007年 [3]林上杰,林康思.JSP2.0技术手册[M].北京:清华大学出版社,2004年 [4]周恒,王殊宇.JSP 项目开发全程实录[M].北京:清华大学出版社,2008年 [5]刘腾红,孙细明. 信息系统分析与设计[M]. 北京:科学出版社,2003年 [6]杨光,伍正云.Java Web 实战开发完全学习手册[M].北京:清华大学出版社,2014年 [7]王保罗.Java 面向对象程序设计[M]. 北京:清华大学出版社,2003年 [8]张玲玲. 深入体验Java Web项目开发. 北京:清华大学出版社,2011年 [9]贾素来. 常见动态网页技术比较[M].大众科技,2008年 [10]袁润非.DIV+CSS网站布局案例精粹.[M]北京:清华大学出版社,2011年 [11]刘彬主编. JSP数据库高级教程.[M] 清华大学出版社. 2006年 [12]叶核亚, 陈道蓄.JA V A 语言程序设计实用教程[M].北京:电子工业出版社,2010年 [13]简玲.B/S系统性能测试的设计与实现[J].计算机工程,2009年 [14]R.J(Bud)Bates. GPRS:General Packet Radio Service .McGraw-Hill, 2003. [15]Gwenael Le Bodic. Mobile messaging technologies and services SMS EMS and MMS .New York: J.Wiley, 2005. [16]Kathy Sierra and Bert Bates,The Technique Development History Of JSP,Servlet&JSP,2009.
致谢 在完成网上购物系统这篇论文上,首先我要感谢这四年来安徽工业大学计算机学院对我的培养,给我们提供了很好的学习环境和学术氛围。其次我更要感谢引导我论文前进方向的导师,感谢他对我们的监督和指导。我还要对大学四年以来教导过我的老师和辅导员致以最衷心的感谢,感谢他们的关怀,感谢他们的认真负责。 经过这几个月的努力,终于完成了毕业论文的创作。从接到毕设到编写代码再到论文的完成,每个阶段对我来说都是新的尝试和对自身能力的提高,这也是在本科学习阶段做过的最完整最复杂的系统。这段时间我学习到了很多也看了很多书籍,也遇到了很多问题,感谢我的朋友和室友在我遇到问题的时候对我热情的帮助。 最后,再次感谢培养我四年的计算机学院的领导和老师,还有百忙中抽出时间对本文进行评审并提出宝贵意见的各位老师,在我们最年轻懵懂的时间段里给我们提供了优质的学习环境和生活环境,并不辞辛苦地将我们培养成一个栋梁之才。
附录:订单支付过程
订单支付分为两步: 1.在/jsps/order/ordersucc.jsp、/jsps/order/list.jsp、/jsps/order/desc.jsp中点击链接到达/jsps/order/pay.jsp页面; 2.在/jsps/order/pay.jsp页面选择银行,点击下一步开始在线支付。 所谓在线支付,就是让电商与网银对接。当用户在电商点击支付时页面会跳转到网银页面,用户完成支付后,再返回到电商页面。 在线支付分为两种方式: 1. 电商与网银直接对接: 1) 安全性好; 2) 没有服务费; 3) 但银行一般不会和小的电商合作。 2. 电商通过第三方支付与网银对接: 1) 安全性差; 2) 有服务费; 3) 只要有ICP 即可在第三方支付平台开户。
第三方支付平台有:支付宝、易宝、财富通等等,我们需要先在第三方上注册一个商家账号(注册需要ICP ),然后使用第三方提供的支付接口(履行第三方协议规范)完成在线支付,这样买家的钱会打到电商在第三方的商家账号上。 易宝在线支付流程 我们的ITCAST 书城中使用易宝完成在线支付!易宝给商户提供如下资源: 1. 商户编号:相当与在银行开的账号一样,最终买家的钱会打到这个账户上去; 2. 密钥:用来校验商户身份的,这个密钥只有当前商户和易宝有,一旦丢失,后果不可想象; 3. 易宝的支付网关:即一个易宝的网址,电商访问这个网址,并传递易宝需要的参数即可与易宝对接。
在电商与易宝对接时,需要访问易宝的支付网关,同时传递上面所有参数。注意,参数不能为null ,但可以为空字符串。 最后一个参数hmac 需要使用之前所有参值(13个参数)值,以及易宝给商户的密钥进行加密运算,得到hmac 。易宝得到以上13个参数值,以及hmac 后,同样会使用13个参数值,以及密钥(密钥只有商户和易宝有)进行加密运算,得到一个hmac ,然后与请求传递过来的hmac 进行比较,如果相同,则跳转到银行页面,否则报错。
易宝应答机制 在向易宝发出请求时,电商给易宝传递了p8_Url参数,它是电商提供的网址(可以是JSP 或Servlet ),当支付成功后,易宝会访问这个网址,这样电商就可以得到易宝的通知,然后做后续操作,例如修改订单状态为“已支付”状态! 易宝会同时使用两种方式来完成应答: ● 引导用户浏览器重定向到p8_Url:这种方式不稳定,因为用户可能浏览器出现问题,也可能用户在支付成功后,就关闭了浏览器,那么就不会重定向到p8_Url,也就不会修改订单状态了; ● 易宝服务器点对点:这总方式安全可靠,易宝服务器会使用Socket ,以http 协议访问p8_Url,这种方式不依赖浏览器,所以安全可靠。这也要求p8_Url必须是外网可以访问的地址,如果是192.168.1.100这种IP ,那么外网是不能访问的,这是局域网IP 。 注意,点对点方式访问p8_Url时,要求电商必须回写success ,例如在Servlet 中response.getWriter().print(“success ”); 。不然易宝会一直访问p8_Url。 注意,点对点要求有外网IP ,而且易宝通的点对点回应会有延迟(一般延迟2分钟),所以我们在上课时不方便演示。
因为易宝会同时使用两种应答机制,所以p8_Url会被多次访问,所以在p8_Url中一定要处理重复访问的问题。如果在p8_Url中存在给用户添加积分的功能,那么多次访问会出现支付一次,多次添加积分的问题。 支付流程 本系统的支付功能从/jsps/order/pay.jsp开始,请求OrderServlet#payment()方法,传递当前要支付的订单oid ,以及用户选择的银行编号: 1.获取参数,以及配置文件,得到13参数,以及keyValue (密钥); 2.使用13参数和keyValue 来调用PaymentUtil.buildHmac()方法,得到hmac ; 3.把13参数和hmac 保存到request 中,转发到/WEB-INF/jsp/sendpay.jsp。 /WEB-INF/jsp/sendpay.jsp页面中获取13参数和hmac 保存到表单中,这个表单会自动请求易宝网关(使用javascript 来完成自动提交)。