基于JSP技术网上购物车系统的设计.docx
《基于JSP技术网上购物车系统的设计.docx》由会员分享,可在线阅读,更多相关《基于JSP技术网上购物车系统的设计.docx(16页珍藏版)》请在冰点文库上搜索。
基于JSP技术网上购物车系统的设计
湖南农业大学课程论文
学院:
信科院班级:
计算机科学与技术一班
组长:
李清艳学号:
201041842114
组员:
张辉学号:
201041842102
何美敬学号:
201041842106
张志萍学号:
201041842105
梁振学号:
201041842126
课程论文题目:
基于JSP技术网上购物车系统的设计
课程名称:
JSP应用开发与实践
评阅成绩:
评阅意见:
成绩评定教师签名:
日期:
年月日
基于JSP技术网上购物车系统的设计
李清艳小组
(信息科学技术学院计算机科学与技术一班)
摘要:
伴随着计算机技术在各行各业日益广泛和深入的应用,网络的概念早已深入人心。
随着网技术和计算机技术的快速发展,以及数据库技术在网络中的应用,致使更多的电子商家和消费者之间建立畅通便捷的沟通和交易渠道,减少了企业的开支,为人们提供了周到和人性化的服务。
为此我们选择了网上购物系统这个课题,以实现对网上交易等网上购物的一些探索和实践。
本文本系统基于Jsp语言,同时使用Java,基于MyEclipse10平台编程,数据库部分使用Navicat_for_MySQL,达到网上购物的目的。
关键词:
网上购物系统JSPNavicat_for_MySQL
近年来,随着信息的全球化和国际互联网的普及化,越来越多的人想使用其无国界、无时间、无地域限制的便利环境来经营拓展商务。
因此,网上购物成为互联网应用的最大热点,越来越多的企业通过使用网上购物技术进行商业上的交易以减少成本。
当然,还有更多的公司想使用网络技术来架构一个虚拟的店面进行营业交易,企业与消费者通过网络完成交易,非但能使企业降低成本也可以让消费者在一个舒适的地点享受逛街与购物的乐趣。
随着网上购物风潮的扩大,将会有更多的公司连上网络进行各项业务,而不只是将公司的产品介绍的网页放在网站上供人浏览而已。
Jsp网上购物车系统的架构是基于Jsp/Java的模式,这种模式以其稳定性和优越的速度,被全球企业证明公认为可以高效稳定的进行企业运算开发的平台。
这种平台最大的优势在于可以跨系统,真正的“一次编写、到处运行”的特点,在这种平台上开发的产品,可以轻松移植到其他的平台,例如:
Unix、Linux、Windows系统,这样,在企业更换平台的时候可以最大的节约成本,提高运算质量。
Jsp网络购物系统基于jsp+java+数据库三层结构的动态购物网站。
网站用户接口(即界面)由jsp完成,数据和逻辑处理由java完成,数据储存由数据库完成。
因为beans独立负责处理整个网站的全部数据逻辑运算,所以整个网站的负载量和速度都将大大提高,所以基于这种语言和结构开发的购物系统的优势是其它语言无法比拟的。
更重要的是,jsp+Java能够在Apache环境下顺畅地运行,这也是其最大优点之一。
这就更进一步保证了网站的稳定性和安全性,而这些,对于一个购物网站来说是非常重要的!
1、系统的主要架构及开发模式
系统的建设关键在于其所使用的架构,而网上购物这种基于web的系统,传统的c/s架构已经不能满足大量用户的访问和操作,b/s基于浏览器的架构则是目前网络系统应用的主流,它将大量的数据处理工作交给服务器端来处理,客户端只用通过普通的IE浏览器即可访问系统,方便快捷而且利于系统的更新和维护,java语言在该方面更是得天独厚,层次更加清楚,更利于对复杂事务的处理,而且在安全性方面也做的更好。
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。
B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。
服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。
浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由WebServer完成。
实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。
二、系统设计
(1)项目背景
本项目是基于MyEclipse10平台开发的网上购物车系统,JSP应该是未来发展的趋势。
世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。
比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere。
本系统则采用较新的jsp技术,一方面jsp的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言。
(2)项目需求
项目产品主要需要实现以下几个功能:
1.注册
用户通过register.jsp页面进入用户登录页面。
用户要注册用户名(长度控制在3-20个字符之内),密码(请设定在6-20位之间),性别。
用户注册成功了就会跳转到登录页面,如果不成功将会出现请求页面出错页面。
2.登录
用户通过注册页面跳转到登录页面。
用户通过用户名和密码来进入购物车页面。
如果登陆成功跳转到index.jsp页面。
如果密码错误将在本页面保持不动。
判断用户信息正确性通过数据库来检验。
3.购物车页面
用户通过信息验证将进入此页面。
将向用户展示购物车信息。
三、系统功能与实现
(1)用户注册
当用户第一次登录时首先要注册,成为会员后,才可以购买物品.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,用户注册页面的运行结果如下图所示:
图片
(2)用户登陆
网站首页在用户第一次访问时会判断用户是否登录,未登录则显示用户登录窗口,提示用户登录或注册.首页主要是根据保存用户名信息的ArrayList参数来判断用户是否已经登录的,关键代码如
login.jsp<=>action<=>userinfo.jsp(服务器)
<%
//getParameter()根据提单表单的元素的名称获取元素值
Stringusername=request.getParameter("username");
Stringuserpwd=request.getParameter("userpwd");
System.out.println("用户名:
"+username);
//调用数据库操作
//1导包alt+/
Stringsql="select*fromuserinfowhereusername=?
anduserpwd=?
";
System.out.println("SQL语句"+sql);
//2准备参数
ArrayList
pramas.add(username);
pramas.add(userpwd);
//3调用
ResultSetrs=DbUtil.executeQuery(sql,pramas);
//处理结果
System.out.println("RS"+rs);
booleanflag=false;
while(rs.next())
{
//有记录
flag=true;
}
//流程
//用户合法
//跳转到首页面sendRedirect()跳转页面地址
System.out.println("flag"+flag);
if(flag)
{
System.out.println("用户正确");
response.sendRedirect("index.jsp");
}
else{
response.sendRedirect("register.jsp");
}
%>
(3)购物车模块
首页会显示所有商品的信息,包括商品编号,商品名称,商品价格,商品描述以及商品图片。
用户可以在前台首页中单击商品展示区的“购买”按钮用来处理商品。
网页首页如下:
图片
三、关键代码展示
(1)网站与数据库连接DbUtil.java
packagedb;
importjava.sql.*;
importjava.util.*;
/**
*数据库操作工具类
*@authorAdministrator
*/
publicclassDbUtil{
privatestaticConnectioncon=null;//连接对象
privatestaticPreparedStatementpsmt=null;//预编译对象
privatestaticResultSetrs=null;//结果集对象
privatestaticCallableStatementcsmt=null;//过程对象
publicstaticConnectiongetConnetion(){
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:
mysql:
///myshpping?
characterEncoding=utf-8","root","jsp");
}catch(ClassNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returncon;
}
publicstaticPreparedStatementgetPreparedStatement(Stringsql){
con=getConnetion();
try{
psmt=con.prepareStatement(sql);
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnpsmt;
}
publicstaticResultSetgetResultSet(Stringsql){
psmt=getPreparedStatement(sql);
try{
rs=psmt.executeQuery();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnrs;
}
publicstaticintexecuteUpdate(Stringsql,Listparams){
intcount=0;
psmt=getPreparedStatement(sql);
bindPramas(psmt,params);
try{
count=psmt.executeUpdate();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
CloseAll();
}
returncount;
}
publicstaticResultSetexecuteQuery(Stringsql,Listparams){
psmt=getPreparedStatement(sql);
if(params!
=null){
bindPramas(psmt,params);
}
try{
rs=psmt.executeQuery();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnrs;
}
publicstaticvoidbindPramas(PreparedStatementpsmt,Listparams){
intindex=0;
if(params!
=null){
for(Objectp:
params){
try{
psmt.setObject(index+1,p);
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
index++;
}
}
}
publicstaticvoidCloseAll(){
try{
if(con!
=null){
con.close();
}
if(psmt!
=null){
psmt.close();
}
if(rs!
=null){
rs.close();
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
(2)注册页面register.jsp
--
-->
用 户 名:
|
密 码:
|
确认密码:
|
性 别:
男
女 |
E-mail:
|
         
|
functioncreateReuquest(url,param){
http_request=false;
if(window.XMLHttpRequest){
http_request=newXMLHttpRequest();
}elseif(window.ActiveXObject){
try{
http_request=newActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
http_request=newActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
if(!
http_request){
alert("XMLHttpRequest对象创建失败!
");
returnfalse;
}
http_request.onreadystatechange=getResult;
http_request.open('POST',url,true);
http_request.send(param);
}
functiongetResult(){
if(http_request.readyState==4){
if(http_request.status==200){
if(http_request.responseText==0){
alert('用户名已注册!
');
returnfalse;
}
alert(http_request.responseText);
returnfalse;
}else{
alert("请求页面出错!
");
}
}
}
functioncheck(form){
if(form.name.value==""||form.pwd.value==""){
alert('用户名或密码不能为空!
');
returnfalse;
}
if(form.pwd.value!
=form.repwd.value){
alert('两次密码输入不一致!
');
returnfalse;
}
createRequest('registerCheck.jsp','userName='+form.username.value+'&userPwd='+form.pwd.value);
}
(3)登录Login.jsp
用户登录
|
用户名 | |
用户密码 | |
   
|        |
--
用户名:
用户密码:
 
(4)购物车index.jsp
商品信息页面
商品序号 | 商品名称 | 商品价格 | 商品描述 | 商品图片 | 商品操作 |
<%
Stringsql="select*frombuycard";
//调用
//类名.成员名(静态static)
ResultSetrs=DbUtil.executeQuery(sql,null);
//输出out
while(rs.next()){
out.print("
");out.print("
"+rs.getInt("bid")+" | ");out.print("
"+rs.getString("bname")+" | ");out.print("
"+rs.getDouble("bprice")+" | ");out.print("
"+rs.getString("binfo")+
展开阅读全文
相关搜索
资源标签
|