基于jsp的购物车系统毕业论文Word格式.docx
- 文档编号:21154151
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:25
- 大小:676.03KB
基于jsp的购物车系统毕业论文Word格式.docx
《基于jsp的购物车系统毕业论文Word格式.docx》由会员分享,可在线阅读,更多相关《基于jsp的购物车系统毕业论文Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
这些信息对以系统的管理员都是珍贵的数据,系统分析程序可以根据用户的查询记录判断该客户的喜好,可以根据用户的购买情况判断该用户的经济情况。
系统后台程序可以根据分析的结果自动得出给该用户的推荐商品,在用户登录时显示在醒目的位置。
4.开发及运行环境
(1)硬件平台
CPU:
Pentium42.0GHz以上
内存:
512MB以上容量
显卡:
32MB或以上显存之AGP接口显卡
(2)软件要求
操作系统:
MicrosoftWindowsXP
运行环境:
Tomcatjdk1.6
开发工具:
MyEclipse,MySQL-Front
二、数据流程图
显示所有商品:
将某商品添加到购物车:
生成订单:
图片的上传和显示:
2.1.1网上购物系统顶层图
2.1.2网上购物系统(会员)
2.1.3网上购物系统图(购物系统)
2.1.4网上购物系统图(注册会员管理系统)
2.15网上购物系统图(管理员系统)
三、ER图
3.1用户ER图
3.2商品ER图
3.3用户和商品、订单之间的局部ER图
图3.3用户和商品、订单之间的局部ER图
3.4各实体之间总体ER图
图3.2各实体之间总体ER图
四.数据库模块设计
根据需求分析以及功能需求,我们得出我们的购物网站的总体框架以及程序的实际运用流程.
4.1基于MVC的应用开发模型
在传统的基于Web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。
这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。
同时系统也不具备可扩展性,当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。
在本网上购物系统中,将采用通行的MVC模式来构建应用。
这种结构解决了前面所述的所有问题,在我们的应用集成网络中,通过企业级高端J2EE应用服务器实现MVC开发模型。
通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:
Model(模型)层:
由JavaBean组件来实现,JavaBean将具体的业务封装在组件内部,具备安全、高性能、可重用等优秀的特征。
View(视图)层:
由JSP组成。
这一层次的特点是能够真实地展示和客户交互的界面,具备可描绘的功能。
同时能够嵌套动态数据,可以进行动态页面的展示。
同时可以方便地进行客户端的个性化定制。
根据每个客户的需求来展示不同风格的界面。
Controller(控制器)层:
是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。
通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。
主要在于JSP以脚本语言的形式存在,它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是它的长处。
4.2平台功能模块的设计分析
平台功能的分析基础上,我认为购物车应该有两个平台的设计,即前台用户设计与后台的管理者设计,由此得到本平台的功能模块图如图3-1所示:
前台设计:
用户进入网上购物平台,用户可以注册,然后登录后可以进行个人信息修改与注销,用户可以通过商品搜索,找到自己想要产品,然后添加到购物车,
后台设计:
管理员可以通过后台登录进去进行用户管理,商品管理,在用户管理中,可以对用户进行添加删除,在商品管理中可以对商品进行添加修改。
五.数据库表结构设计
5.1manage(管理员表)
功能
字段名
字段类型
用户id
id
varchar
用户名
username
性别
gender
char
生日
birthday
date
籍贯
nativeplace
用户类型
type
5.2Goods(商品表)
商品id
cid
商品名称
cname
商品价格
cprice
float
商品数量
cnumber
int
商品介绍
cintro
text
图片存储位置
cimage
商品图片
cpic
blob
5.3orderstable(订单表)
收货人姓名
receivename
电话号码
tele
邮编
zipcode
付款方式
paymode
订单id
orderid
订单日期
orderdate
订单状态
orderstate
地址
address
5.4orderlist(订单信息表)
数量
quantity
5.5users(用户信息表)
userrid
int
用户姓名
Username
密码
Userpass
Gender
出生日期
Birthdate
Date
Nativeplace
六.各模块的运行界面与实现代码
6.1注册设计
如果用户还不是会员则提示用户进行注册,用户提交信息之后,系统开始判断用户的注册信息是否有效,首先是用户名是否为空,(该处存在用户名命名规则的问题,后面问题中会详细解决)用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入用户表即user并提示用户注册成功,2秒跳转到个人主页,就可以进行有效的购物了。
注册页面的效果图如下图5-1所示:
系统对用户的注册详细代码实现如下:
<
formname="
form1"
action="
RegServlet"
method="
post"
>
<
p>
&
nbsp;
palign="
center"
class="
STYLE1"
用户注册<
tablewidth="
363"
="
tr>
td>
用户名<
inputname="
username"
type="
text"
style2"
密码<
userpass"
password"
重置密码<
userpass2"
性别<
inputtype="
radio"
name="
gender"
value="
男"
>
男
女"
女<
出生日期<
birthdate"
籍贯<
selectname="
nativeplace"
size=1class="
id="
optionvalue="
浙江"
selected="
selected"
浙江<
option>
江苏"
江苏<
安徽"
安徽<
北京"
北京<
上海"
上海<
select>
submit"
提交"
reset"
重置"
table>
S
form>
%
if(session.getAttribute("
reg_msg"
)!
=null)
out.println(session.getAttribute("
));
%>
br>
a.jsp"
返回首页<
a>
这一请求通过regservlet进行接收,并对信息验证,对用户进行响应:
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
Stringusername=Tools.CodeToString(request.getParameter("
System.out.println(username);
Stringuserpass=request.getParameter("
);
Stringgender=Tools.CodeToString(request.getParameter("
Stringbirthdate=request.getParameter("
Stringnativeplace=Tools.CodeToString(request.getParameter("
Stringurl="
jdbc:
mysql:
localhost:
3306mytest"
;
Stringuser="
root"
Stringpassword="
123456"
Stringsql="
select*fromuserswhereusername='
"
+username+"
'
省略号表示要输入具体的sql语句
创建各个对象
Connectionconn=null;
建立数据库连接的对象
Statementstmt=null;
创建用于执行SQL语句的Statement对象
ResultSetrs=null;
创建结果集对象
HttpSessionsession=request.getSession();
try{
建立连接并执行语句
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
其它操作
if(rs.next())
{
session.setAttribute("
"
用户已经存在,请重新注册!
response.sendRedirect("
reg.jsp"
}
else
StringBuffernewsql=newStringBuffer();
newsql.append("
insertintousers(username,userpass,gender,birthdate,nativeplace)values('
newsql.append(username);
'
newsql.append(userpass);
newsql.append(gender);
newsql.append(birthdate);
newsql.append(nativeplace);
)"
stmt.executeUpdate(newsql.toString());
msg"
用户注册成功!
username);
regMsg.jsp"
}catch(SQLExceptionse){
thrownewServletException(se);
}finally{
try{rs.close();
}catch(SQLExceptionse){}
try{stmt.close();
try{conn.close();
}
6.2登陆设计
用户登陆模块是防止非法用户登陆的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行定购时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的购物,如果输入的密码不正确,则不能进入购物界面。
如果用户以浏览者的身份进入网站,则只能进行一般的商品浏览,而不能进行选购,在点击任一按钮后,系统会判断该用户是否是登陆用户,如果不是则弹出提示页面,提示用户必须先登陆才能购物。
登陆的具体实现要通过一个全程变量,即Session变量来实现,在系统中则单独的一个loginservlet页面来放置该session。
用户登录的界面login.jsp,从user表查得用户提交的帐户名和密码正确后,用一个全局变量,即Session变量保存这一消息(该变量名称为Session(“username”))。
示意图如图5-2所示
由于首页中包含了不止登陆界面一个模块,便于理解期间,就显示登陆的具体代码如下:
formid="
login"
LoginServlet"
divid="
user"
用户名:
ipt-t"
div>
pass"
密&
码:
bt"
&
zzc"
a="
right"
STYLE3"
strong>
管理员登录<
而loginservlet响应信息代码为:
if(rs.next()){
session.setAttribute("
"
登录成功!
}else{
用户名或密码错误!
}
try{rs.close();
try{stmt.close();
try{conn.close();
6.3购物车设计
6.3.1商品显示实现
当用户登陆成功以后,如果想进入购物,就进入所有商品界面,在点击物品右边的添加到购物车,系统会弹出一个新的页面,显示该物品已经添加进购物车,然后用户需要选择定购的数量。
其中所有商品页面效果如图5-3所示:
主要代码如下:
STYLE8"
所有商品<
c:
iftest="
${pageNo!
=1}"
tbody>
tdwidth="
117"
bgcolor="
#CCFFFF"
物品编号<
146"
物品名称<
159"
物品价格<
商品图片<
133"
操作<
forEachitems="
${goods}"
var="
g"
GetallGoods显示商品信息主要代码如下:
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
StringpageNo=request.getParameter("
pageNo"
intiPageNo=1;
if(pageNo!
iPageNo=Integer.parseInt(pageNo);
Goodsg=newGoods();
ArrayListgoods=null;
goods=g.getGoodsByPage(iPageNo);
intpageCount=g.getPageCount();
request.setAttribute("
goods"
goods);
newInteger(iPageNo));
pageCount"
newInteger(pageCount));
Stringforward="
goodslist.jsp"
RequestDispatcherrd=request.getRequestDispatcher(forward);
rd.forward(request,response);
对于在数据库中添加购物车,通过addtocart来实现:
Stringcid=request.getParameter("
cid"
CartManagercartManager=newCartManager();
HttpSessionsession=request.getSession(true);
ArrayListcart=(ArrayList)session.getAttribute("
cart"
cartManager.setCart(cart);
Goodsg=newGoods();
g=g.findGo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 jsp 购物 系统 毕业论文