通用电子商务平台项目计算机专业毕业论文.docx
《通用电子商务平台项目计算机专业毕业论文.docx》由会员分享,可在线阅读,更多相关《通用电子商务平台项目计算机专业毕业论文.docx(42页珍藏版)》请在冰豆网上搜索。
通用电子商务平台项目计算机专业毕业论文
铁路职业技术学院毕业论文
论文题目:
通用电子商务平台项目
作者:
班级学号:
系部:
软件学院/信息工程系
专业:
计算机应用技术
指导教师:
乐
2013年05月25日
摘要
随着网络、通信和信息技术的发展,商业空间发展到全球规模,这使得任何一个商业组织都必须调整自己的运营模式和产业结构,以适应新的市场发展的需要。
因此,任何一个企业要在21世纪生存,就必须迅速地改变传统的经营观念,跟上当今世界发展的最新潮流,加入到电子商务大潮中。
本系统采用B/S三层架构,主要实现前台交易系统和后台管理系统。
前台交易系统主要包括用户管理、商品展示、书城快讯、我的订单、购物车管理,后台管理系统主要包括用户管理、订单管理、类别管理、商品管理。
系统主要采用了MVC软件架构思想,融入了Struts2、hibernate、JSP、Ajax、JQuery等典型WEB开发相关技术,同时采用MySql数据库和主流服务器Tomcat。
系统的各个模块设计合理,尤其是业务方法利用接口理念,这样让系统很灵活,具备了良好的扩展性。
经过不断的改进和调试,系统逐渐完善,最终完成了一个标准化的电子商务交易平台。
关键词:
电子商务j2EEJSP网上购物
第1章引言5
1.1开发背景5
1.2开发目的和意义6
第2章可行性分析7
2.1经济可行性7
2.2技术可行性7
2.3操作可行性7
第3章需求分析与系统设计8
3.1系统界面操作说明8
3.2系统流程图9
3.3总体设计思想概述9
3.4系统工程结构的搭建10
第4章数据库设计12
4.1MySql数据库简介12
4.2数据库设计要点12
4.3数据表设计12
第5章系统的详细设计与实现16
5.1数据库与POJO映射的实现16
5.2用户模块的设计说明16
5.2.1用户注册模块16
5.2.2用户登录模块23
5.2.3用户登出操作25
5.3商品浏览模块的设计说明25
5.3.1分类浏览模块26
5.3.2中间浏览模块27
5.3.3右侧新书热卖榜模块28
5.4购物车模块的设计说明31
5.5订单模块的设计说明36
5.5.1订单列表生成37
5.5.2填写收件人地址37
5.5.3订单确认39
第6章系统运行环境42
6.1硬件环境:
42
6.2软件环境:
42
第7章系统测试运行43
7.1单元测试43
7.2集成测试44
7.3系统有效性测试45
7.4系统可行性测试45
第8章总结46
参考文献48
致49
第1章引言
1.1 开发背景
随着当今世界进入信息时代,Internet的飞速发展和在全球的普及给人类生活带来革命性的改变。
Internet将传统意义上的物理空间转变成电子空间,把人们带入了一个网络社会中。
网络时代的到来,带给人们的不只是快捷、方便,它带来的是划时代的进步。
在网络大家族中,在线购物则是一个热点,它的发展速度之快远远超过我们的想象,普及速度之快令人难以置信。
我们完全有理由相信,全球性的网购热潮必将一浪高于一浪。
进入21世纪以来,电子商务伴随着IT的成熟,逐渐发展壮大,成为网络经济的核心。
在电子商务的发展过程中,人们逐渐意识到在线购物无地域界限、安全、方便快捷及其价格优势,在线购物的队伍也随之扩大。
不断增长的强大需求正成为电子商务的发展动力,基础环境的成熟与需求欲望的增长将推动电子商务与商务的建设不断发展。
新一轮的网上购物狂潮正在中国掀起,根据知名市场研究公司AC尼尔森的近期研究显示,63%的中国网民曾经网上购物,伴随着中国互联网的快速增长,中国将会成为网上购物的巨大市场。
AC尼尔森两年一次的全球网上消费者观念调查,是同类调查规模最大的,覆盖欧洲、亚太区、北美、拉美以及南部非洲,受访对象超过两万人。
调查表明,在中国,最受欢迎的网上商品是书籍,56%的网上购物者选择了网上买书;影碟制品,比如DVD碟片、游戏等排在第二位,24%的网上购物者会选择购买此类产品;音乐类和衣服鞋帽及服装配件等排在第三,分别有23%的网上购物者会喜欢。
和全球的研究数据作比较,我们会发现中国网上购书的比例最高,AC尼尔森3需求分析说明书认为这是由于中国网上购物人群由年轻的大学生或是刚刚毕业的年轻人为主所决定的。
通用电子商务平台,从一定程度上讲它就是网上超市,也就是一种网上交易。
“网”字意味着它具有信息时代的快捷方便等特征。
事实上网购的出现,给消费者的地位,消费观念带来了重要的变化。
通用电子商务平台系统正是应这种变化而悄然崛起,并以惊人的速度发展着。
通过通用电子商务平台,人们可以足不出户的寻找自己所需的物品,通过对不同虚拟商城的访问,“顾客”可以找出性价比最高的商品,自己有极选择空间,通过下订单,你可以很快得到自己想要的物品,这给顾客节省很多时间和精力,对于厂家来说,可以极大的降低库存风险,根据客户需要,按需生产和采购,大大的提高了效益。
1.2 开发目的和意义
自从电子商务出现在人们的视野中,电子商务就在全世界围受到了格外的关注,并得到了迅速的发展。
从实用角度看,目前电子商务的普遍存在是购买者难以找到所希望购买的商品甚至用户在耗费很大的经历与时间后即使找到了自己想要的产品,最后却由于各种原因而放弃购买。
很多报道指出,推销商们普遍对目前的网络行销感到失望,尽管如此,电子商务无疑是目前最好的在线商品展示的媒体和工具。
然而,网上产品展示的目的不仅仅是展示产品,而更重要的是通过让客户更多地了解产品而提高产品的购买率。
因此,电子商务目前所面临的挑战之一就是的设计,如何使得网页能够有效地展示自己的产品,同时方便用户的使用,使用户以愉悦的心情选购称心如意的商品。
本系统的目的和意义就是应上述挑战而尝试为用户提供一个操作简单方便的网上交易系统。
利用本系统,用户可以自由地浏览商品,注册成为会员,选择商品加入自己的购物车,而后生成订单,实现网上购物。
第2章可行性分析
2.1经济可行性
传统的销售方式是商家把商品放在店铺里供顾客挑选,店铺的规模、位置等客观因素影响着商店的客流量,并且商品的存放与销售需要人力进行管理,雇员的工资、店面的租金等又增加了成本,顾客也不能迅速找到所需要的商品,而开一个网上书店只需要一个可以存放商品的仓库,比租一个店面能节省很多,也不需要太多的人力来管理,不会因为商店的面积影响客流量,客户足不出户就能买东西,并且很容易就能找到所需要的商品。
2.2技术可行性
网络应用基础设施完善,由于信息技术的发展,我国的计算机网络飞速发展,先后建成了中国公众多媒体通信网、ChinaNet、中国教育与科研计算机网络等组成了中国Internet主体,网络应用进入了企业与普通家庭,这为发展电子商务提供了基础设施。
网络安全技术应用,包括加密算法、CA数字认证、数字签名等,为电子商务应用提供安全保证,它实现了网络传输数据的安全性、完整性以及交易双方的不可抵赖性,身份认证等。
最后,就是网络技术的普及与掌握,如网络互联、网络安全技术、Web技术(如Html,XML,CGI等)、各种安全协议(Https,SET,SSL等)、网络数据库技术等,使我们有能力开发实现适合自己的电子商务系统。
成为我们构建的直接技术支持。
2.3操作可行性
由于的操作是基于B/S浏览器的页面操作,简单明了,用户无需学习,一般都能够很容易的知道如何操作。
而管理员也无需具备专业知识,只需要对一些数据进行输入以及平时的日常维护就够了,使用方面此系统的开发是可行的。
第3章需求分析与系统设计
3.1系统界面操作说明
界面名称
操作功能说明
购物系统主界面
1、用户登录
2、登录后的用户还可以退出登录。
3、按商品类别浏览
4、按商品类别查询
5、登录用户可以随时进行用户注册信息维护
注册界面
1、用户输入注册信息
2、用户提交注册信息
3、用户重填注册信息
4、用户可以随时刷新附加验证码
订单查询浏览界面
1、提供订单查询:
按商品名称,交易日期,价格等。
2、提供订单删除。
3、提供订单修改。
订单修改界面
1、提供订单信息修改信息输入。
2、提供订单信息提交。
3、提供订单修改取消。
商品查询浏览界面
1、提供最新商品信息推荐
2、提供商品分页分栏浏览
3、提供商品多样化按字段查询
4、提供把商品放入购物车的操作
购物车界面
1、提供商品数量更新,默认是商品添加的次数。
2、提供商品删除。
3、提供商品结算操作。
4、提供登录操作。
5、提供最新商品推荐。
登录界面
1、提供登录信息输入
2、提供登录信息提交
3、提供登录信息重填
4、提供附加验证码的刷新
3.2系统流程图
一一
图3.2系统流程图
3.3总体设计思想概述
本系统是基于B/S架构下的多层结构应用系统。
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
推荐的分层式结构一般分为三层,从下至上分别为:
数据访问(持久)层、业务逻辑层(或称为领域层)、表示层。
总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。
层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。
例如:
表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。
并且每个层对对上层公开API,但具体的实现细节对外透明。
当某一层发生变化,只要API不变,不会影响其他层的实现。
在本系统中,使用开源的mysql数据库,持久层用到spring所集成的Hibernate技术,业务逻辑层用普通javabean实现,表述层运用基于struts的MVC设计模式(struts用来做C层,spring实现V层与C层的解耦以及C层与M层的解耦)。
3.4系统工程结构的搭建
1)导入开发包
a.struts2开发包
b.hibernate开发包+数据库驱动
2)配置文件
配置Filter控制器:
web.xml
Struts2主配置文件:
struts.xml
用户管理配置:
struts-user.xml
产品浏览配置:
struts-main.xml
购物车配置:
struts-cart.xml
订单配置:
struts-order.xml
Hibernate主配置:
hibernate.cfg.xml
3)src结构
控制层:
org.tarena.dang.action
--用户管理模块控制层:
org.tarena.dang.action.user
--购物车管理模块控制层:
org.tarena.dang.action.cart
--产品浏览管理模块控制层:
org.tarena.dang.action.main
--订单管理模块控制层:
org.tarena.dang.action.order
业务层:
org.tarena.dang.service
数据访问层:
org.tarena.dang.dao
实体类+hbm.xml:
org.tarena.dang.pojo
工具类:
org.tarena.dang.util
自定义拦截器:
org.tarena.dang.interceptor
4)WebRoot结构
/css:
样式文件
/images:
页面图片文件
/js:
js脚本文件
/user:
用户管理模块的JSP
/main:
产品浏览模块的JSP
/order:
订单模块的JSP
/common:
共通JSP,页眉,页脚等
/productImages:
产品图片
第4章数据库设计
4.1MySql数据库的简介
MySQL是一个小型关系型数据库管理系统,也是最受欢迎的开源SQL数据库管理系统,它由MySQLAB开发、发布和支持。
MySQLAB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。
MySQL是MySQLAB的注册商标。
MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。
从计算机可以很好的处理大量数据以来,数据库管理系统就在计算机处理和独立应用程序或其他部分应用程序中扮演着一个重要的角色。
4.2数据库设计要点
数据是一个系统中的最终操作结果,因此数据库的设计必须合理规。
数据库的设计是系统的开发前提,一个数据库设计的是否合理,直接关联着整个系统的开发,一旦数据库设计出现问题,那么将会导致这个系统的开发受到严重阻碍。
另外,数据操纵的安全性也要加以控制,防止数据外泄造成严重后果。
4.3数据表设计
1)d_user:
用户信息表
负责存储用户的注册信息,与登录,注册功能相关
字段名称
类型
约束
描述
id
int(12)
pk
用户ID
email
varchar(50)
notnull
用户
password
varchar(50)
notnull
密码
nickname
varchar(50)
notnull
昵称
user_integral
int(12)
notnull,default'0'
积分
is_email_verify
char(3)
验证状态
last_login_time
bigint
defaultnull
最后登录时间
last_login_ip
varchar(15)
defaultnull
最后登录IP
email_verify_code
varchar(50)
defaultnull
认证码
2)d_receive_address:
用户收货地址信息表
负责存储用户使用过的收货地址信息,与填写送货地址功能相关
字段名称
类型
约束
描述
id
int(12)
PK
数据库唯一标识
user_id
int(10)
notnull
用户ID
receive_name
varchar(100)
notnull
收货人
full_address
varchar(100)
notnull
收货人地址
postal_code
varchar(8)
notnull
邮编
mobile
varchar(20)
notnull
收货人
phone
varchar(20)
notnull
收货人手机
3)d_product:
产品信息表
负责存储各种类型的产品共通属性信息
字段名称
类型
约束
描述
id
int(12)
pk,notnull
商品编号
prduct_name
varchar(100)
notnull
商品名
add_time
bigint(20)
defaulttnul
上架时间
fixed_price
double
notnull
市场价
has_deleted
int
(1)
notnull
是否下架
fix_price
double
notnull
当当价
keywords
varchar(200)
defaulttnul
关键字
product_pic
varchar(200)
defaultnul
商品图片名称
description
varchar(100)
defaultnull
描述
4)d_book:
图书信息表
负责存储图书产品的特有信息
字段名称
类型
约束
描述
id
int(12)
PK
数据库唯一标识ID
author
varchar(200)
notnull
图书作者
publishing
varchar(200)
notnull
publish_time
bigint
notnull
出版日期
which_edtion
varchar(15)
defaultnull
哪个版本
word_number
varchar(15)
defaultnull
字数
total_page
varchar(15)
defaultnull
页数
print_time
Int(20)
defaulnull
印刷时间
ISBN
varchar(25)
defaultnull
ISBN
category
text
notnull
目录预览
author_summary
text
notnull
作者简介
5)d_category:
产品类别信息表
负责存储产品的类别信息,与类别显示功能有关
字段名称
类型
约束
描述
id
integer
PK
类别ID
en_name
varchar(200)
notnull
英文名字
name
varchar(200)
notnull
中文名字
description
varchar(200)
null
产品的描述
parent_id
int(10)
notnull
父类ID
6)d_category_product:
类别和产品对应关系表
负责指定哪种类别包含哪些商品,与类别浏览功能有关
字段名称
类型
约束
描述
id
int(12)
auto_increment/PK
数据库唯一标识ID
product_id
int(10)r
notnull
产品ID
cat_id
int(10)
notnull
商品分类ID
7)d_order:
订单信息表
负责存储订单的基本信息.
字段名称
类型
约束
描述
id
int(12)
PK
订单号
user_id
int(10)
notnull
用户ID
status
int(10)
notnull
发货状态
order_time
bigint(20)
notnull
下单时间
order_desc
varchar(100)
notnull
订单描述
total_price
double
notnull
订单总金额
receive_name
varchar(100)
notnull
收货人
full_address
varchar(100)
notnull
收货人地址
postal_code
varchar(8)
notnull
邮编
mobile
varchar(20)
notnull
收货人
phone
varchar(20)
notnull
收货人手机
8)d_item:
订单明细信息表
负责存储了订单包含的哪些商品,单价,数量等信息
字段名称
类型
约束
描述
id
int(12)
PK
订单号
orders_id
int(10)
auto_increment/PK
货物ID
product_id
int(10)
notnull
产品ID
product_name
varchar(100)
notnull
产品名字
dang_price
double
notnull
热销价
product_number
int(10)
notnull
产品数量
amount
double
notnull
产品价格
第5章 系统的详细设计实现
5.1 数据库与POJO映射的实现
Hibernate可以通过一个XML的mapping文件把一个POJO(Plainoldjavaobject)和数据库中的表对应起来,在这个XML文件(一般命名为*.hbm.xml)中,我们可以配置好Object和数据库中表的映射关系,然后把这个mapping加入到hibernate.cfg.xml中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object实习自动的维护。
由于Spring提供了对Hibernate的集成,所以我们可以不配置hibernate.cfg.xml文件,而通过在applicationContext.xml文件中进行相关配置来达到同样的目的。
5.2 用户模块的设计说明
用户模块主要实现了用户注册、登入/登出、修改信息、查看订单等功能,用户模块结构功能如图5.2所示。
图5.2用户模块功能结构图
5.2.1用户注册模块
系统采用了JQuery(jquery-1.4.min.js)进行表单数据基本验证,注册页面register_form.jsp表单中的数据只要有一项不符合验证规则的数据,则表单提交按钮失效。
为了保证用户注册的名在数据库中是唯一的,使用了Ajax技术向服务器发送异步请求,如果数据库中已经存在,则在页面上提示用户“此已经被占用”的错误消息,用户注册流程如图5.3所示。
图5.3注册流程图
图5.4惟一验证效果界面
为了防止机器人捣乱胡乱注册,系统注册采用了图片验证码认证。
验证码图片是用Javaawt包中的Color、Graphics、BufferedImage等类画出来的。
服务器只要一生成验证码就把它保存在session中,用于提交表单时与用户输入的验证码比较,如果不一致,提示用户“验证码出错”,这时用户可以点击后面获取新的验证码,重新输入。
点击后面的实际上是向服务器的CheckCodeAction发送请求,重新生成验证码。
但是为了让浏览器能够每次执行这个请求,必须让请求地址产生变化,否则浏览器默认是已经请求过的地址,不会重新请求一遍。
方法如下:
onclick="document.getElementById('imgVcode')
.src='../checkcode.do?
'+(newDate()).getTime();
图片验证码生成代码如下(ValiImageAction):
publicclassValiImageActionextendsActionSupportimplementsSessionAware{
privateMapsession;
//验证码
privateStringBuffernumber;
//输入流属性
privateInputStreaminput;
//get和set方法
publicInputStreamgetInpu