选择:
a.返回首页;
b.分类浏览商品;
c.直接查询商品;
d.查看购物车,若购买商品则进入f;
e.注销,结束商务活动;
f.确认购物车内商品并提交定单。
选择商务活动
注销
图3.3-2商务活动流程详细设计
分类浏览
放入购物车
注销
图3.3-3分类浏览详细流程
3.3.2目录结构设计
+go2008//系统根目录
+database//数据库文件夹
+image//图片文件夹
+css//样式表文件夹
+member//会员管理文件夹
+buy//商务活动文件夹
+master//管理员管理文件夹
3.3.3功能模块设计
+go2008
-login.jsp//登陆验证,建立用户与服务器对话模块
-opendate.jsp//建立与数据库连接模块
-convert.jsp//解决中文问题模块
+member
-regist.jsp//注册新会员模块
-forgetpw.jsp//查询忘记密码模块
+buy
-cookieis.jsp//维持对话模块
-seleproduce.jsp//选定商品模块
-intoshopcar.jsp//放入购物车模块
-searchproduce.jsp//查找商品模块
-shopcar.jsp//查看购物车模块
-loginout.jsp//注销模块
-paybank/net/post.jsp//签发定单模块
+master
-masterlogin.jsp//超户登陆验证模块
-showuserinfo.jsp//查看注册用户信息模块
-showproduceinfo.jsp//查看库存商品信息模块
-deleuser.jsp//删除注册用户信息模块
-deleproduce.jsp//删除库存商品信息模块
-insertproduce.jsp//添加商品模块
vieworder.jsp//查看定单信息模块
3.3.4数据库设计
1)数据视图设计表
数据视图
数据表
中文名
数据表
英文名
数据项中文名
数据项英文名
键
用户信息
用户信息
userinfo
用户名
username
pk
密码
password
商品信息
商品信息
produce
货物的编号
produce_ID
pk
货物的名称
produce_name
货物的价格
price
分类编号
kind_id
ek
货物的介绍
introduce
购物车
购物车
shopcar
购物车编号
shopcarID
pk
用户名
username
ek
日期
datee
用户IP
userip
购物车内容
shopcarinfor
购物车编号
shopcarID
pk
货物的编号
produce_ID
ek
数量
count
客户确认提交订单
已确认订单
orders
订单编号
orderID
pk
登录名
username
ek
签订日期
datee
发货地址
address
付款方式编号
payID
ek
购物车编号
shopcarID
管理员信息
管理员信息
rootinfo
管理员名称
rootname
管理员密码
rootpassword
2)查询视图设计表
查询视图
查询表名称
数据项中文名
数据项英文名
购物车
shopcarview
商品名称
produce_name
商品介绍
introduce
商品类别
kind_id
购物车编号
shopcarID
定单
master
定单编号
orderID
用户名
username
投送地址
address
签发日期
datee
商品名称
produceID
3.4功能实现
Go2008电子商务系统功能实现的关键在于用户与服务器之间的对话的建立和维持(在该系统中通过login.jsp和cookieis.jsp两个文件实现),在用户正确登陆后,服务器在客户端建立cookie,负责用户和服务器之间信息的传递(这也是购物车功能实现的关键所在),在用户访问Go2008过程中不断更新cookie内容,用户结束购物注销后撤消cookie。若用户非法退出或用户在设定时间内没有响应,系统自动撤消cookie以保证用户个人信息的安全。下面就对话的建立和维持的实现作详细介绍。
3.4.1用户与服务器对话的建立
login.jsp
<%@pagecontentType="text/html;charset=GB2312"%>
<%@includefile="convert.jsp"%>
//调用解决jsp下中文问题的模块,代码见附录
<%@pageimport="java.sql.*"%>
<%@includefile="opendata.jsp"%>
//调用与数据库建立连接的模块,代码见附录
会员登陆页面
<%
Stringusername=request.getParameter("username");
Stringdate=newjava.util.Date().toString();
Stringpassword=request.getParameter("password");
Stringuserip=request.getRemoteAddr();
Stringinsertsql="";
Stringselesql="";
StringshopcarID=null;
username=convert(username);//解决中文乱码
if(username.length()==0||password.length()==0)//判断用户名,密码是否为空
{
Stringerrmsg="!!用户名密码不能为空!!";
out.print("
错误信息
"+errmsg+"
");
out.print("
");
}
else//合法登陆的处理
{
sql="select*fromuserinfowhereusername='"+username+"'andpassword='"+password+"'";
rs=smt.executeQuery(sql);
if(rs.next())//判断用户名,密码是否合法
{
Stringuser=rs.getString(1);
smt.executeUpdate("INSERTINTOshopcar(username,datee,userip)VALUES('"+user+"','"+date+"','"+userip+"')");
Cookieinfo;
info=newCookie("username",user);
info.setMaxAge(660);
info.setPath("/");
response.addCookie(info);
info=newCookie("userip",userip);
info.setMaxAge(660);
info.setPath("/");
response.addCookie(info);//给用户建立cookie,内容包含用户名,用户ip,设定cookie生命周期为660秒
selesql="SELECT*fromshopcarwhere(username='"+user+"'anduserip='"+userip+"')";
smt.executeQuery(selesql);
rs=smt.executeQuery(selesql);
while(rs.next())
{
shopcarID=rs.getString(1);
info=newCookie("shopcarID",shopcarID);
info.setMaxAge(660);
info.setPath("/");
response.addCookie(info);//给用户创建购物车并将购物车信息加到cookie中
}
if(shopcarID==null)
{
%>
<%
}
%>
亲爱的用户<%=user%>:点击此处进入客户专区
<%
smt.close();
con.close();
}
else//非法登陆的处理
{
Stringerrmsg="!!该用户不存在或密码错误!!";
out.print("
错误信息
"+errmsg+"
");
out.print("
");
}
}
%>
3.4.2用户商务活动过程中身份的确认(对话的维持)
cookieis.jsp
<%@pageimport="java.sql.*"%>
<%@includefile="convert.jsp"%>
<%@includefile="opendata.jsp"%>
<%
Stringusername=request.getParameter("username");
Stringpassword=request.getParameter("password");
StringshopcarID=null;
Stringuserip=request.getRemoteAddr();
Stringselesql="";
intcout=0;
Cookie[]cookies=request.getCookies();
for(inti=0;i
<%
}
%>
3.4.3对话的结束
loginout.jsp
<%@includefile="cookieis.jsp"%>
<%@pagecontentType="text/html;charset=GB2312"%>
注销
<%
Cookie[]cookies1=request.getCookies();
if(cookies1!=null)
{
if(cookies1.length!=0)
{
for(inti=0;i
您已经注销,欢迎下次光临
3.3.4系统与数据库的连接
整个系统中很重要的一个组成部分就是系统与数据库的连接,本系统中实现该功能的模块(opendata.jsp)如下:
opendata.jsp
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Stringurl="jdbc:odbc:go2008";
Connectioncon=DriverManager.getConnection(url,"","");//建立连接
Statementsmt=con.createStatement();
ResultSetrs;
Stringsql;
%>
对数据库的具体操作,在个功能模块内有SQL语言具体实现。
3.3.5中文问题处理
由于JSP对中文的支持还不完善,在读写数据库或处理其它动态信息时会出现乱码,所以特编写了一个处理中文问题的模块(convet.jsp)如下:
convert.jsp
<%!
Stringconvert(Stringstr)
{
bytenewstr[]=newbyte[str.length()];
for(inti=0;i
3.5小结
Go2008电子商务系统的分析、设计及功能实现到此已经基本明确,其它个功能模块的具体代码参见附录。
第四章总结
本文讲解了电子商务的基本原理和运行机制,介绍了基于java的WEB开发新技术JSP,并就基于java的安全电子商务系统的分析、设计、实现全过程给以了详细的讲解,由于政策和法规方面的局限,本文无法就在线支付作进一步的讲述,望大家原谅。
电子商务是一个陌生的课题,我在研究过程中已深深体会到这一点。有关电子商务的内容需要一点一点地去熟悉,有关资料也需要一点一点地去收集。JSP技术也是一门新兴的WEB应用开发新技术,需要我们在今后的应用开发中不停的摸索、掌握。文中难免疏漏之处,望老师同学多多指正。
在毕业设计制作和论文撰写过程中,得到了冯全生教员的多次指导和大力支持。感谢他们在百忙中抽出时间给予我们以帮助。
附录:参考文献
1.清宏计算机工作室《JSP编程起步》机械工业出版社2002.1
2.荣钦科技主笔室《最新JSP入门与应用》中国铁道出版社2001
3.杨坚光杨晨光《电子商务基础与应用》西安电子科技大学出版社2001
上一篇:java课程设计(班级管理系统)(论文和程序)
下一篇:遥远的牵挂