论文部分内容阅读
摘 要:互联网/内联网技术的发展,也使得信息技术发展越来越快,随着信息技术的发展,电子商务时代来临,在电子商务的发展中,安全问题和电子商务交易平台的网络数据库,发挥重要作用。基于JSP的图书商城系统支持PHP,PHP+JSP数据库和网络安全控制技术的应用,实现了B2C电子商务交易平台的应用和实现。
关键词:JSP 图书商城系统 数据库技术
一、图书商城系统功能简介
图书商城系统主要由三部分组成:前台系统实现用户注册、用户登录、图书商品详情在线查看、购物车管理及网上订货实现在线支付功能等;后台系统主要是图书商品订单处理功能的实现,包括图书基本信息管理、商品信息更新、送货管理、订单管理、财务管理、数据库管理等几个方面;后台实时系统的主要功能则是生成用户在线订单和收发地址邮件确认等。
二、系统用户分析
游客(未登录):注册、登陆、图书商城信息查看;商城注册用户:商品浏览、添加图书商品到购物车、购物车管理、生成订单、订单管理、在线支付;系统管理员:添加商品、商品管理、查看订单、榜单查看(导出)。
三、系统数据库设计
系统存在以下实体:用户、商品、订单、购物车,其中,购物车不放入数据库,通过Session或者Cookie来实现。
1.用户表。
create table users (
id int primary key auto_increment,
username varchar(40),
password varchar(100),
nickname varchar(40),
email varchar(100),
role varchar(100) ,
state int ,
activecode varchar(100),
updatetime timestamp );
2.商品表。
create table products(
id varchar(100) primary key ,
name varchar(40),
price double,
category varchar(40),
pnum int ,
imgurl varchar(100),
description varchar(255));
3.订单表。
create table orders(
id varchar(100) primary key,
money double,
receiverinfo varchar(255),
paystate int,
ordertime timestamp,
user_id int ,
foreign key(user_id) references users(id)
);
4.用戶关系。
(1)用户与订单之间存在一对多(1:N)的关系:在多方添加一方主键作为外键;(2)订单和商品之间存在多对多(N:N)的关系:创建第三张关系表,引入两张表主键作为外键(联合主键)。
5.订单项。
create table orderitem(
order_id varchar(100),
product_id varchar(100),
buynum int ,
primary key(order_id,product_id),
foreign key(order_id) references orders(id),
foreign key(product_id) references products(id)
);
6.设置数据库环境。数据库:create database estoresystem
四、功能实现
1.用户注册(技术点:验证码技术 、激活邮件技术)。
(1)一次性验证码原理:在生成验证码Servlet程序中,将生成验证码保存Session中,用户提交验证码 与 保存在Session验证码进行比较,如果相同,请求合法;
(2)注册表单JS校验:考虑JS校验是否可以抽取成框架;
(3)处理form乱码问题——通用get post乱码过滤器;
(4)密码MD5加密;
(5)激活邮件发送;
(6)配置通用错误处理页面web.xml
500
/500.jsp
404
/404.jsp
500.jsp显示错误的信息,404.jsp自动刷新跳转回主页面。
2.用户登录。用户登陆原理:用户输入正确用户名和密码,登陆成功,用户信息将会被保存Session对象中。——记住用户名和密码、自动登陆。(1)登陆表单中,添加记住用户名和自动登陆功能; (2)登陆过程中判断账户是否已经激活;(3)在login.jsp显示记住用户名,在username的input项中添加 value="${cookie.username.value}" 在勾选自动登陆 checkbox 添加;(4)登陆后注销功能,注销Session。 3.商品添加。文件上传三个注意事项:(1)input输入框 必须有name属性; (2)表单form 必须post提交方式;(3)设置form的enctype 为 multipart/form-data;表单提交时,校验分为两种:客户端校验、服务器端校验——只有服务器端校验才能确保数据准确。商品图片上传到服务器端后,保存在某个目录,必须直接在WebRoot下及其除WEB-INF、META-INF子目录外,一般情况下,一张表对应Domain类——DAO类——Service类。
4.订单列表查询与取消。管理查询订单——所有人订单信息;普通用户——只能查询自己的订单; 在订单生成后,查看订单列表、也可以通过index.jsp进入订单查看页面;重点:查询订单时,同时查询订单项目信息。
(1)查询订单基本信息时,查询下单用户昵称和用户名在Order类中添加用户的username和nickname字段select orders.*,users.username,users.nickname from orders,users where orders.user_id = users.id;
(2)查询订单项信息时,查询商品的名称和单价,在OrderItem类中添加商品的name和price 字段 select orderitem.*,products.name,products.price from orderitem,products where orderitem.produtct_id = products.id and orderitem.order_id=?訂单取消:删除订单表信息时,同时删除订单项信息(订单项信息依赖订单信息,必须先删除订单项)
5.订单在线支付。
(1)网站进行支付,根据易宝支付接口请求规范,生成易宝需要数据,将数据提交到易宝指定网址,在提交支付请求给易宝,需要将请求中数据,使用易宝提供密钥和算法进行加密,获得数字签名hmac码,将hmac码发送给易宝;
(2)易宝会连接银行,进行支付;
(3)支付后,浏览器会以重定向方式访问网站回调程序,易宝在收到银行转账后,会以Socket方式通知网站,在浏览器重定向通知后,提供给用户支付成功显示页面,期间不能修改订单状态,在网站收到易宝点对点通知后,回复易宝success,修改订单状态;
(4)数字签名原理:将数据使用密钥和算法加密后获得数字签名hmac,将数据和数字签名hmac一起发送给易宝,易宝采用同样密钥和算法对数据进行加密获得数字签名hmac,比较请求中数字签名hmac与加密后获得数字签名hmac是否一致,如果一致签名hmac有效(数据没有被篡改);
(5)在线支付过程中,首先pay.jsp 银行选择页面,OnlinePayServlet 准备易宝支付参数,confirm.jsp通过form的隐藏域提交参数给易宝网址,最后,通过CallbackServlet回调程序收到浏览器重定向和服务器点对点两个通知,浏览器重定向,显示支付成功,期间不能修改订单状态,服务器点对点,修改订单状态,回复success。
五、结语
本文详述了如何设计一个基于JSP网上图书商城系统,阐述了图书商城系统的用户分类、数据库设计代码、功能模块设计与实现以及相关技术,基于JSP+JavaBean模式的小型电子商务平台,提供了友好的用户界面,简化了操作流程,具有完备的功能。
参考文献:
[1]周光明,曾建华,沈翠心等.在线购物系统的设计与实现[J].电脑学习,2004(2).
[2]李霞,刘慧婷,赵凯等.基于JSP的宿舍管理系统的设计与实现[J].计算机技术与发展,2008(12).
[3]廖彦华,罗小亮.基于JSP技术的网上购物系统[J].电脑知识与技术:学术交流,2007(12).
[4]郭万召.图书馆在线参考咨询服务优缺点及改进对策[J]. 四川图书馆学报,2004(05).
[5]胡康秀,王兵贤.基于JSP的网上书店销售系统的设计与实现[J].中国管理信息化,2009(05):106-109.
[6]秦成华.基于JSP网络购书系统的开发与实现[D].长春: 吉林大学, 2008.
作者简介:袁斌(1981.08—)。民族:汉。云南省曲靖市人。学历:硕士学历。硕士毕业院校:云南大学。讲师主要研究方向:计算机应用技术。
关键词:JSP 图书商城系统 数据库技术
一、图书商城系统功能简介
图书商城系统主要由三部分组成:前台系统实现用户注册、用户登录、图书商品详情在线查看、购物车管理及网上订货实现在线支付功能等;后台系统主要是图书商品订单处理功能的实现,包括图书基本信息管理、商品信息更新、送货管理、订单管理、财务管理、数据库管理等几个方面;后台实时系统的主要功能则是生成用户在线订单和收发地址邮件确认等。
二、系统用户分析
游客(未登录):注册、登陆、图书商城信息查看;商城注册用户:商品浏览、添加图书商品到购物车、购物车管理、生成订单、订单管理、在线支付;系统管理员:添加商品、商品管理、查看订单、榜单查看(导出)。
三、系统数据库设计
系统存在以下实体:用户、商品、订单、购物车,其中,购物车不放入数据库,通过Session或者Cookie来实现。
1.用户表。
create table users (
id int primary key auto_increment,
username varchar(40),
password varchar(100),
nickname varchar(40),
email varchar(100),
role varchar(100) ,
state int ,
activecode varchar(100),
updatetime timestamp );
2.商品表。
create table products(
id varchar(100) primary key ,
name varchar(40),
price double,
category varchar(40),
pnum int ,
imgurl varchar(100),
description varchar(255));
3.订单表。
create table orders(
id varchar(100) primary key,
money double,
receiverinfo varchar(255),
paystate int,
ordertime timestamp,
user_id int ,
foreign key(user_id) references users(id)
);
4.用戶关系。
(1)用户与订单之间存在一对多(1:N)的关系:在多方添加一方主键作为外键;(2)订单和商品之间存在多对多(N:N)的关系:创建第三张关系表,引入两张表主键作为外键(联合主键)。
5.订单项。
create table orderitem(
order_id varchar(100),
product_id varchar(100),
buynum int ,
primary key(order_id,product_id),
foreign key(order_id) references orders(id),
foreign key(product_id) references products(id)
);
6.设置数据库环境。数据库:create database estoresystem
四、功能实现
1.用户注册(技术点:验证码技术 、激活邮件技术)。
(1)一次性验证码原理:在生成验证码Servlet程序中,将生成验证码保存Session中,用户提交验证码 与 保存在Session验证码进行比较,如果相同,请求合法;
(2)注册表单JS校验:考虑JS校验是否可以抽取成框架;
(3)处理form乱码问题——通用get post乱码过滤器;
(4)密码MD5加密;
(5)激活邮件发送;
(6)配置通用错误处理页面web.xml
500.jsp显示错误的信息,404.jsp自动刷新跳转回主页面。
2.用户登录。用户登陆原理:用户输入正确用户名和密码,登陆成功,用户信息将会被保存Session对象中。——记住用户名和密码、自动登陆。(1)登陆表单中,添加记住用户名和自动登陆功能; (2)登陆过程中判断账户是否已经激活;(3)在login.jsp显示记住用户名,在username的input项中添加 value="${cookie.username.value}" 在勾选自动登陆 checkbox 添加;(4)登陆后注销功能,注销Session。 3.商品添加。文件上传三个注意事项:(1)input输入框 必须有name属性; (2)表单form 必须post提交方式;(3)设置form的enctype 为 multipart/form-data;表单提交时,校验分为两种:客户端校验、服务器端校验——只有服务器端校验才能确保数据准确。商品图片上传到服务器端后,保存在某个目录,必须直接在WebRoot下及其除WEB-INF、META-INF子目录外,一般情况下,一张表对应Domain类——DAO类——Service类。
4.订单列表查询与取消。管理查询订单——所有人订单信息;普通用户——只能查询自己的订单; 在订单生成后,查看订单列表、也可以通过index.jsp进入订单查看页面;重点:查询订单时,同时查询订单项目信息。
(1)查询订单基本信息时,查询下单用户昵称和用户名在Order类中添加用户的username和nickname字段select orders.*,users.username,users.nickname from orders,users where orders.user_id = users.id;
(2)查询订单项信息时,查询商品的名称和单价,在OrderItem类中添加商品的name和price 字段 select orderitem.*,products.name,products.price from orderitem,products where orderitem.produtct_id = products.id and orderitem.order_id=?訂单取消:删除订单表信息时,同时删除订单项信息(订单项信息依赖订单信息,必须先删除订单项)
5.订单在线支付。
(1)网站进行支付,根据易宝支付接口请求规范,生成易宝需要数据,将数据提交到易宝指定网址,在提交支付请求给易宝,需要将请求中数据,使用易宝提供密钥和算法进行加密,获得数字签名hmac码,将hmac码发送给易宝;
(2)易宝会连接银行,进行支付;
(3)支付后,浏览器会以重定向方式访问网站回调程序,易宝在收到银行转账后,会以Socket方式通知网站,在浏览器重定向通知后,提供给用户支付成功显示页面,期间不能修改订单状态,在网站收到易宝点对点通知后,回复易宝success,修改订单状态;
(4)数字签名原理:将数据使用密钥和算法加密后获得数字签名hmac,将数据和数字签名hmac一起发送给易宝,易宝采用同样密钥和算法对数据进行加密获得数字签名hmac,比较请求中数字签名hmac与加密后获得数字签名hmac是否一致,如果一致签名hmac有效(数据没有被篡改);
(5)在线支付过程中,首先pay.jsp 银行选择页面,OnlinePayServlet 准备易宝支付参数,confirm.jsp通过form的隐藏域提交参数给易宝网址,最后,通过CallbackServlet回调程序收到浏览器重定向和服务器点对点两个通知,浏览器重定向,显示支付成功,期间不能修改订单状态,服务器点对点,修改订单状态,回复success。
五、结语
本文详述了如何设计一个基于JSP网上图书商城系统,阐述了图书商城系统的用户分类、数据库设计代码、功能模块设计与实现以及相关技术,基于JSP+JavaBean模式的小型电子商务平台,提供了友好的用户界面,简化了操作流程,具有完备的功能。
参考文献:
[1]周光明,曾建华,沈翠心等.在线购物系统的设计与实现[J].电脑学习,2004(2).
[2]李霞,刘慧婷,赵凯等.基于JSP的宿舍管理系统的设计与实现[J].计算机技术与发展,2008(12).
[3]廖彦华,罗小亮.基于JSP技术的网上购物系统[J].电脑知识与技术:学术交流,2007(12).
[4]郭万召.图书馆在线参考咨询服务优缺点及改进对策[J]. 四川图书馆学报,2004(05).
[5]胡康秀,王兵贤.基于JSP的网上书店销售系统的设计与实现[J].中国管理信息化,2009(05):106-109.
[6]秦成华.基于JSP网络购书系统的开发与实现[D].长春: 吉林大学, 2008.
作者简介:袁斌(1981.08—)。民族:汉。云南省曲靖市人。学历:硕士学历。硕士毕业院校:云南大学。讲师主要研究方向:计算机应用技术。