信用卡商城网站的
与实现
摘要
电子商务的一个重要组成部分网上商城, 本身具有高效率、低成本、全球化的特点。通过一个电子商务的实际项目信用卡商城,本文介绍了如何在电子商务系统中使用struts2技术。本人主要负责后台的商品管理模块。这个网上购物子系统发挥了struts2的技术特点,运用JavaBeans、JSP、 数据连接池等企业级Java技术,具有平台无关的特性并支持各种主要的大型关系型数据库。系统模型使用Struts2框架实现,系统视图使用JSP、JavaBeans和struts2强大的标签库等技术实现。MVC设计方法将系统的商业逻辑和表现逻辑实现彻底分离。使其开发效率和重用性有了个质的飞跃。
第一章讨论了本课题的设计背景,并对所开发的软件要实现的功能特点进行了介绍。
第二章通过对信用卡商城系统的需求
,全面验证了系统开发的可行性,为下一步设计工作打下坚实基础。
第三章进行了具体的系统设计,其中包括应用系统设计、模块设计及数据库设计。本章还通过数据流图和模型,完善了系统框架的建造。
第四章进行了系统的实现,包括数据库之间的链接,和模块搭建设计。
关键字:信用卡商城, 网上购物, B/S,Struts2, Oracle, JSP
宜顺
网www.13LW.com
目 录
一、 前言.................................................................................................................. 3 二、 应用系统运行平台.......................................................................................... 3
(一)开发环境及工具介绍................................................................................ 3
(二)选用的开发语言及数据库简介................................................................ 3 三、 需求分析.......................................................................................................... 4
(一)需求规格说明书........................................................................................ 4
(二)需求平台模块设计.................................................................................... 5
(三)系统流程设计............................................................................................ 6 四、 数据库设计.................................................................................................... 10
(一) 创建数据库 ................................................................................................ 10
(二) 创建数据库用户 ........................................................................................ 10
(三) 创建表 ........................................................................................................ 10
(四) 表之间的关系E-R图 ................................................................................ 13 五、 应用程序设计................................................................................................ 14
1、 说明 ..................................................................................................... 14
2、 工程目录结构图 ................................................................................. 14
3、 数据库连接 ......................................................................................... 15
4、 商品大分类信息管理功能实现 ......................................................... 16
5、 商品小分类信息管理功能实现 ......................................................... 19
6、 商品信息管理 ..................................................................................... 23
7、 信用卡商城主界面 ............................................................................. 27 六、 参考文献........................................................................................................ 30
宜顺论文网www.13LW.com
一、 前言
随着互联网技术的迅速发展,网络已逐渐深入人心,更是成为继报刊、电视广播等传统媒体之后而兴起的一新传媒介质,网络
已成为众多宣传手段的重中之重,各种各样的网站也就应运而生:为宣传企业而制作的公司网站、可进行网上购物的电子商务网站、能及时了解到天下事的新闻网站、方便学习的教育网站,还有学校、团体、个人等等各大各小的网站,充斥着我们的视野,满足着我们的需要。网站的规划与建设,已悄然被许多人摆到了首要的迫在眉睫的位置上
二、 应用系统运行平台
(一)开发环境及工具介绍
使用的操作系统是Microsoft Windows7+ Eclipse作为开发环境。使用的技术主要是struts2,现在struts2也是主流框架,页面主要是JSP,页面数据的显示主要采用的是struts2的标签来实现。数据的存储采用的是现在流行的主流数据库oracle,在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。 (二)选用的开发语言及数据库简介
JSP:
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术
。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
STRUTS2:
Struts 2是Struts的下一代产品。是在 struts 和WebWork的技术基础上进行了合并,全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。因为Struts 2和Struts 1有着太大的变化,但是相对于WebWork,Struts 2只有很小的变化
ORACLE:
Oracle简称甲骨文,是仅次于微软公司的世界第二大软件公司,该公司名称就叫Oracle。该公司成立于,,,9年,是加利福尼亚州的第一家在世界上推出以关系型数据管理系统(RDBMS)为中心的一家软件公司。
个市场的大部Oracle不仅在全球最先推出了RDBMS,并且事实上掌握着这分份额。现在,他们的RDBMS被广泛应用于各种操作环境:Windows NT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台
宜顺论文网www.13LW.com
三、 需求分析
随着信息技术的不断发展,我们现在已经步入了一个信息化的时代,而信息时代的代表便是网络技术的日渐成熟,现在网络已经和我们的生活紧密的联系起来了,我们不敢想象没有网络我们的生活会像怎么样,也许就像食物中没有调料,现在的生活离开了网络会变得索然无味。通过网络我们可以足不出户的做许多事情。休闲,娱乐,学习,购物,交友等等许多我们数之不尽的事情。随着信息化的不断进步,今天一种新的购物方式已然出现。那就是上文已经提及的信用卡商城系统。
(一)需求规格说明书
信用卡商城系统需求主要分以下两部分:
(1)前台需求:要求能修改会员资料,查看商城公告,特价商品,商品分类,新上架的商品,以及能按条件搜索商品,最后就是能够购买商品。
(2)后台需求:主要是商品信息的管理,增加,修改,删除等等。会员信息的管理,以及订单的管理。
根据以上用户提出的实际需求,结合整理的需求内容如下:
1.信息流程:
信息的流程是后台商品信息发布?数据库?前台用户商品购买。如图2.1所示。
产品是否符保存到数据库 前台展合 后台发布产品 发布条件 示
图1 信息流图(DFD)
2.信息内容
提供商品的基本信息以及会员的基本信息。包括新上架商品,特价商品,会员信息等。
3.系统功能
前台:
宜顺论文网www.13LW.com
新品上架:提供新上架商品的信息。
特价商品:提供特价商品的信息。
会员管理:提供会员信息的修改等。
购物车管理:提供购物车的商品数量的变更,付款,清空购物车等功能。
订单管理:提供订单的浏览及修改等。
销售排行:提供热销商品的信息。
后台:
商品管理:提供商品信息的添加,修改,删除等。
会员管理:提供会员的冻结与解冻等相关操作。
订单管理:提供订单是否执行操作。
公告管理:提供公告信息的添加与删除操作。
登录退出后台:返回到前台。
(二)需求平台模块设计
信用卡商城系统平台主要包括两大功能模块,前台包括用户登录,商城公告,购物车,新品上架,特价商品,商品分类,商品销售排行等功能模块。后台主要包括商品管理、会员管理、订单管理,公告管理,退出后台等功能;搜索主要包括:商品名称、商品类别:
结构图如下图所示:
信用卡商城系统平台
前后
台 台
用购商特新商商商会订公退
户物城价品品品品员单告出
登车 公商上销分管管管管后
录 告 品 架 售类 理 理 理 理 台
排
图2 结构图 行
宜顺论文网www.13LW.com
(三)系统流程设计
本系统分为前台购物流程和后台订单处理流程
(1) 前台购物流程图
去提浏选订去未注册用户 注册 收交览 择购购
银 订商 商 商 物
单 已登记注册用户
未登记注册用户 游客
图3 前台购物流程图
(2) 后台购物流程图
用订订订订 户单单单单 订 处 发 结 删
图4 后台购物流程图
(3) 商品搜索流程图
开始搜索
输入条件
搜索结果
查看商品 购物车
宜顺论文网www.13LW.com
继续搜 下订单
图5 商品搜索流程图
(4) 注册功能流程图
注册入口
是
必选项为空,
否
否
用户名有效,
是
否
密码是否一致,
是
否 密码符合要求,
是
否 E-MAIL有效,
是
否
其他信息有效,
宜顺论文网www.13LW.com
是 否
注册成功
图6 注册功能流程图
(5) 用户登录流程图
登录入口
否
查询用户是否存在
是
否
核对密码是否正确
是
取得用户名和密
码
将UserID存入
session中
登录成功
宜顺论文网www.13LW.com
图7 用户登录流程图
6) 商品管理流程图 (
商品管理
查询管理
添加商品
修改,删除
否
满意否
是
返回
图8 商品管理流程图
(7) 购物车流程图
购物车
宜顺论文网www.13LW.com
查看商品
否
调整商品
是
下订单
图9 购物车流程图
四、 数据库设计
(一) 创建数据库
使用的是oracle 10g, Oracle安装完毕之后,会提供给我们一个默认的数据库实例,但是我们需要建立自己的数据库。创建数据库的方式有两种:一种是通过向导工具创建;一种是自己手动创建。介绍一下使用向导创建的过程:
Oracle 10g创建数据库的步骤共分为12步,在“开始——Oracle——Configuration And Migration Tools——Database Configuration Assi
stant”里打开新建向导,下一步,选择第一项“创建数据库”,这时出现四种数据库模板,选择第三项“定制数据库”,填写数据库名称CreditData;下一步,对数据库进行一些其他的配置;下一步,输入登录口令,还可以为不同用户指定不同的口令,下一步,选择数据库存储机制,通常以文件的形式存储,下一步,为数据库指定存储位置,下一步,指定数据备份的位置,下一步,选择数据库组件和自定义脚本等等,下一步,安装。由于Oracle数据库比较大,安装过程大约要花费十分钟左右
(二) 创建数据库用户
通过图形化界面操作,在数据库CreditData下创建用户credit,并授予该用户连接数据库和dba的权限。设置该用户的密码。
(三) 创建表
1、 表名称:TB_PLACARD 含义:公告表
Null 字段名称 字段类型 含义
ID INTEGER 否,自增 主键列
TITLE VARCHAR2 (100) 标题
CONTENT VARCHAR2(4000) 否 内容
CRETIME DATE 创建时间
2、表名称:TB_SUPERTYPE 含义:大类别表
Null 字段名称 字段类型 含义
宜顺论文网www.13LW.com
ID INTEGER 否,自增 主键列 TYPENAME VARCHAR2 (100) 否 大类别名称
3、表名称:TB_SUBTYPE 含义:小类别表
字段名称 字段类型 Null 含义
ID INTEGER 否,主键列
自增
SUPERTYPEIINTEGER 否 大类别ID D
TYPENAME VARCHAR2 否 小类别名称
(100)
4、表名称:TB_MEMBER 含义:会员表
Null 字段名称 字段类型 含义 ID INTEGER 否,自增 主键列 USERNAME VARCHAR2(20) 否 用户名 TRUENAME VARCHAR2(20) 否 真实姓名 PASSWORD VARCHAR2(40) 否 密码 CITY VARCHAR2(20) 否 城市 ADDRESS VARCHAR2(100) 否 地址 POSTCODE NUMBER 否 邮政编码 CARDNO VARCHAR2 (20) 证件号码 CARDTYPE VARCHAR2 (20) 证件类型 TEL VARCHAR2 (20) 否 电话 EMAIL VARCHAR2(100) 电子邮箱 FREEZE CHAR 冻结 CREDITCARDNO VARCHAR2 (20) 否 信用卡卡号 CREDITCARDPWD VARCHAR2 (40) 否 信用卡密码 CREDITCARDDATE DATE 否 信用卡有效日期 CARDCVV VARCHAR2 (4) 否 信用卡卡号后4位 CARDPOINTS INTEGER 卡内积分
5、表名称:TB_GOODS 含义:商品表
字段名称 字段类型 Null 含义
ID INTEGER 否,主键列
自增
TYPEID INTEGER 否 小类别ID
GOODSNAME VARCHAR2(否 商品名称
宜顺论文网www.13LW.com
200)
PRICE NUMBER 否 原价
(8,2)
NOWPRICE NUMBER 现价
(8,2)
PICTURE VARCHAR2 图片
(200)
CRETIME DATE 否 创建时间 NEWGOODS CHAR (1) 否 新上商品 SPECIAL CHAR (1) 特价商品 INTRODUCE VARCHAR2( 详细信息介
4000) 绍 STOCK CHAR (1) 否 是否有库存 POINTSFLAG CHAR(1) 否 支持积分兑
换 GOODSPOINTINTEGER 否 商品积分
S
6、表名称:TB_ORDER 含义:订单表
字段名称 字段类型 Null 含义 ID INTEGER 否,主键列
自增
MEMBERID INTEGER 否 会员ID ORDERCODE VARCHAR2 否 订单号
(20)
BNUMBER NUMBER 否 品种数 USERNAME VARCHAR2 否 收件人姓名
(20)
ADDRESS VARCHAR2 否 邮寄地址
(100)
POSTCODE NUMBER 否 邮政编码 TEL VARCHAR2 否 电话
(20)
PAY VARCHAR2 否 支付方式
(20)
CARRY VARCHAR2 否 运送方式
(20)
宜顺论文网www.13LW.com
ORDERDATE DATE 否 订单日期 ENFORCE CHAR (1) 执行 BZ VARCHAR2 备注
(200)
7、表名称:TB_ORDER_DETAIL 含义:订单明细表 字段名称 字段类型 Null 含义 ID INTEGER 否,主键列
自增
ORDERID INTEGER 否 订单ID GOODSID INTEGER 否 商品ID PRICE NUMBER 否 价格
(8,2)
NUMBERS NUMBER 否 数量
8、表名称:TB_MANAGER 含义:管理表
字段名称 字段类型 Null 含义 ID INTEGER 否,主键列
自增
MANAGER VARCHAR2 否 管理员名
(20)
PWD VARCHAR2 否 密码
(40)
9、表名称:TB_EVALUATE 含义:商品评价表 字段名称 字段类型 Null 含义 ID INTEGER 否,主键列
自增
GOODSID INTEGER 否 商品ID MEMBERID INTEGER 否 会员ID SUBJECT VARCHAR2 否 主题
(100)
CONTENT VARCHAR2(否 详细内容
2000)
CREDATE DATE 否 创建时间
。
(四) 表之间的关系E-R图
宜顺论文网www.13LW.com
图10 ER图
五、 应用程序设计
1、 说明
该系统需求评估后,若一个人完成,需要耗费大量时间,故对系统进行权衡后,只完成商品管理模块的开发;此模块分为三个子模块,如下:
1. 大分类信息管理
2. 小分类信息管理
3. 商品信息管理
2、 工程目录结构图
宜顺论文网www.13LW.com
图11 结构图
3、 数据库连接
出于方便修改的考虑,我们将与数据库的连接,通过JNDI的形式单独写出来并进行编译,将其放到CreditCardShop\WebRoot\META-INF目录下的一个context.xml文件中,在web.xml中加载它,web.xml中配置如下
jdbc/CreditCardDataSource
javax.sql.DataSource
Container
其中数据源配置文件配置如下:
xml version='1.0' encoding='utf-8'?>
宜顺论文网www.13LW.com
4、 商品大分类信息管理功能实现
大分类信息管理包括大分类信息的查询、添加和删除功能。
查询:
superTypeView.jsp
图12 查询 关键代码如下:
宜顺论文网www.13LW.com
public String surperList() {
superTypeService = new SuperTypeService();
superList = superTypeService.getSuper();
if (superList.size() > 0) {
log.info("成功");
return SUCCESS;
} else {
log.info("失败");
return INPUT;
}
}
添加:
superTypeAdd.jsp
图13 添加
关键代码如下:
public String addSuper() throws SQLException {
superTypeService = new SuperTypeService();
superTypeService.addSuper(superType);
return findSup();
}
宜顺论文网www.13LW.com
删除:
superTypeView.jsp
图14 删除
关键代码如下:
public String dllSuperType() {
superTypeService = new SuperTypeService();
// 获取选择的id列表
String[] strings = ServletActionContext.getRequest()
.getParameterValues("delid");
int[] placardIds = new int[strings.length];
// 转化为整形数组
for (int i = 0; i < strings.length; i++) {
placardIds[i] = Integer.parseInt(strings[i]);
}
superTypeService.dllSuper(placardIds);
log.info("删除商品大分类");
return findSup();
}
宜顺论文网www.13LW.com
5、 商品小分类信息管理功能实现
小分类信息管理包括小分类信息的查询、添加和删除功能
查询:
subTypeView.jsp
图15 查询
关键代码如下:
public String findSub() {
//创建subService类
subService = new SubTypeService();
//定义页面类
PageModel pm = new PageModel();
//查询数据库中小分类并存放在List表中
List list = subService.searchSubTypeByAll();
//设置数据的总条数
pm.setTotal(list.size());
//设置显示的页面数
int i=list.size();
if(i%10==0){
pm.setPages(i/10);
}
宜顺论文网www.13LW.com
else {
pm.setPages(i/10+1);
}
//获取当前页面
String str = ServletActionContext.getRequest().getParameter("pager.offset");
int offset = 0;
int pageSize = 10;// 每页显示数据行数
if (str == null || str.equals("")) {
offset = 0;
} else {
offset = Integer.parseInt(str);
}
List list2 = subService.searchSubTypeByPage(offset + 1, pageSize);
pm.setDatas(list2);
subList=list2;
ServletActionContext.getRequest().setAttribute("pm", pm);// 送入前台
ServletActionContext.getRequest().setAttribute("pageSize", pageSize);// 送入前台
ServletActionContext.getRequest().setAttribute("offset", offset);// 送入前台
log.info("转入公告主页");
return SUCCESS;
}
添加:
subTypeAdd.jsp
宜顺论文网www.13LW.com
图16 添加
关键代码如下:
public String addSub() throws Exception{
subService=new SubTypeService();
//将大商品的信息存放在superList列表中
superList=subService.searchSuperType();
//跳转到toSubAdd()方法
return toSubAdd();
}
删除:
subTypeView.jsp
宜顺论文网www.13LW.com
图17 删除
关键代码如下:
public String deleteSubType() throws Exception{
subService=new SubTypeService();
boolean bl;
String[] strings
=ServletActionContext.getRequest().getParameterValues("delid");
int[] subT = new int[strings.length];
for (int i = 0; i < strings.length; i++) {
subT[i] = Integer.parseInt(strings[i]);
}
bl=subService.deleteSubMany(subT);
if(bl){
log.info("删除小商品类信息成功....");
this.addFieldError("", "删除成功~");
}else {
this.addFieldError("该小商品类信息ID", "某个商品信息ID,不能删除");
}
return findSub();
}
宜顺论文网www.13LW.com
6、 商品信息管理
其中商品信息管理包括商品信息的查询、添加、修改和删除功能
查询:
goodsManageView.jsp
图18 查询
关键代码如下:
public String getGoodsInfo() throws Exception {
goodsManageService = new GoodsManageService();
PageModel pm = new PageModel();
String str = ServletActionContext.getRequest().getParameter(
"pager.offset");
int offset = 0;
if (str == null || str.equals("")) {
offset = 0;
} else {
offset = Integer.parseInt(str);
}
List list = goodsManageService.getGoods();
pm.setTotal(list.size());
宜顺论文网www.13LW.com
goodsList = goodsManageService.searchByPage(offset + 1);
ServletActionContext.getRequest().setAttribute("pm", pm);// 送入前台
if (goodsList.size() > 0) {
log.info("成功跳转到商品管理界面");
}
return SUCCESS;
}
添加:
goodsManageAdd.jsp
图19 添加
关键代码如下:
public String addGoodsInfo() throws Exception {
// 根据当前日期和时间命名上传图片的文件名
String imageName = new Date().getTime() +
getExtention(pictureFileName);
// 把上传的图片放在web应用程序的images文件的goods目录下
File imageFile = new File(ServletActionContext.getServletContext()
.getRealPath("/images/goods")
宜顺论文网www.13LW.com
+ "/" + imageName);
// 执行copy上传文件
copy(picture, imageFile);
// 设置上传图片的文件名称封装到商品信息对象里,插入数据库
goods.setPicture(imageName);
goodsManageService = new GoodsManageService();
boolean result = goodsManageService.addGoods(goods);
if (result == true) {
log.info("添加商品:" + goods.getGoodsName() + "成功~");
return getGoodsInfo();
} else {
log.info("添加商品:" + goods.getGoodsName() + "失败~");
return toGoodsManageAdd();
}
}
修改:
goodsManageEdit.jsp
图20 修改
宜顺论文网www.13LW.com
关键代码如下:
public String editGoodsInfo() throws Exception {
// 根据当前日期和时间命名上传图片的文件名
String imageName = new Date().getTime() + getExtention(pictureFileName);
// 把上传的图片放在web应用程序的images文件的goods目录下
File imageFile = new File(ServletActionContext.getServletContext()
.getRealPath("/images/goods")
+ "/" + imageName);
// 执行copy上传文件
copy(picture, imageFile);
// 设置上传图片的文件名称封装到商品信息对象里,插入数据库
goods.setPicture(imageName);
goodsManageService = new GoodsManageService();
boolean result = goodsManageService.editGoods(goods);
if (result == true) {
log.info("修改商品信息成功");
return getGoodsInfo();
} else {
log.info("修改商品信息失败~");
return "editGoods";
}
}
删除:
goodsManageDelete.jsp
宜顺论文网www.13LW.com
图21 删除
关键代码如下:
public String delGoodsInfo() throws Exception {
goodsManageService = new GoodsManageService();
boolean result = goodsManageService.delGoods(goods);
if (result == true) {
log.info("删除商品信息成功");
return getGoodsInfo();
} else {
log.info("删除商品信息失败~");
return "delGoods";
}
}
7、 信用卡商城主界面
商城前台主界面
宜顺论文网www.13LW.com
图22 商城前台主界面
后台登陆页面
图23 后台登陆页面
宜顺论文网www.13LW.com
图24 后台登陆页面
宜顺论文网www.13LW.com
六、 参考文献
[1] 张思亮, 王晓峰, 靳瑞勇. 网上购物系统的研发 [J]. 商场现代
化.2008(13):67-67.
[2] 陈巧蓉, 陈刚, 熊恩成. 网上购物系统htm1版开发研究 [J]. 西南民族大
学学报:自然科学版.2007,33(4):961-963. [3] 廖彦华, 罗小亮. 基于JSP技术的网上购物系统 [J]. 电脑知识与技术:学
术交流.2007(12):1276-1279.
[4] 何静, 谭新民. 基于J2EE的网上购物系统的设计 [J]. 山西电子技
术.2008(1):66-68.
[5] 李贤华. 基于JSP技术的大型网上购物系统的设计与实现 [J]. 计算机与
现代化.2008(8):82-84,89.
[6] 孙鑫. Struts 2深入详解 [J]. 电子工业出版社.2008,7 [7] 克拉恩, 帕斯卡雷洛, 杰姆斯 Ajax系列?图灵程序设计丛书[J]. 人民邮电
出版社.2006.4
[8] 周志刚, 应用Struts框架开发管理信息系统的研究[J]. 2006 河南理工大学
学报:自然科学版
[9] 俞希标, 基于struts框架通用数据库维护技术的实现.2005 程序员 [10] 杨学瑜, JSP入门与进步. 北京清华大年夜学出版社
[11] 孙晓龙, JSP动态网站技巧入门与进步.北京人平易近邮电出版社
宜顺论文网www.13LW.com