⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shopcar.txt

📁 机遇JSP的网络购物车
💻 TXT
字号:
//shop_cart.jsp 

<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page session="true" %> 
<%@ page language="java" import="java.sql.*" %> 
<jsp:useBean id="bka" scope="page" class="shop.bka" /> 
<% 

String product_type; 
String action; 
int product_id; 
int curpage; 

//商品类型 
if (request.getParameter("product_type")==null){ 
product_type="all"; 
}else{ 
product_type=request.getParameter("product_type"); 
} 

//页数和商品类型参数,可以在“继续购物”时返回到上次购物的页面 
if (request.getParameter("curpage")==null){ 
curpage=1; 
}else{ 
curpage=java.lang.Integer.parseInt(request.getParameter 
("curpage")); 
} 

//动作 
if (request.getParameter("action")==null){ 
action="view"; 
}else{ 
action=request.getParameter("action"); 
} 

//商品编号 
if (request.getParameter("product_id")==null){ 
product_id=0; 
}else{ 
product_id=java.lang.Integer.parseInt(request.getParameter 
("product_id")); 
} 

int bbb; 
bbb=1; 

Integer num = new Integer(bbb); 

//商店编号 
session.putValue("shop_id",num); 
//顾客username 
session.putValue("guest_name","asp2001"); 

String guest_name=(String)session.getValue("guest_name"); 
Integer shop_id=(Integer)session.getValue("shop_id"); 

java.lang.String sql; 
java.sql.ResultSet rs; 

if (action.compareTo("add")==0) { 

sql="select cart_quantity from shop_cart where cart_shop_id=" 
+ shop_id + " and cart_guest_id=" + guest_name + " and 
cart_product_id=" 
+ product_id ; 
rs = bka.executeQuery(sql); 
if (rs.next()){ 
int cart_quantity; 
cart_quantity=java.lang.Integer.parseInt(rs.getString 
("cart_quantity"))+1; 
sql="update shop_cart set cart_quantity=" + cart_quantity + " where cart_shop_id=" + shop_id + " and cart_guest_id=" + 
guest_name + " and cart_product_id=" + product_id ; 
rs = bka.executeQuery(sql);} 
else 
{ 
sql="insert into shop_cart (cart_shop_id,cart_guest_id,cart_product_id,cart_quantity) values 
(" + shop_id + "," + guest_name + "," + product_id + ",1)"; 
rs = bka.executeQuery(sql); 
} 
} 

if (action.compareTo("clear")==0) { 
sql="delete from shop_cart where cart_shop_id=" + shop_id + " and cart_guest_id=" + guest_name + ""; 
rs = bka.executeQuery(sql); 
} 

if (action.compareTo("delete")==0) { 
sql="delete from shop_cart where cart_shop_id=" + shop_id + " and cart_guest_id=" + guest_name + " and cart_product_id=" + 
product_id ; 
rs = bka.executeQuery(sql); 
} 
%> 
<div align="center"><center> 

<table border="0" cellpadding="0" cellspacing="0" width="610" 

height="2"> 
<tr> 
<td><form method="POST" 

action="shop_cart.jsp?action=update&product_type=<%=product_type%> 
&curp 

age=<%=curpage%>"> 
<table border="0" cellpadding="0" cellspacing="0" width="610" 

height="2"> 
<tr> 
<td width="122" height="7"><div align="center"><center><table 

border="1" cellpadding="2" cellspacing="0" width="100%" bordercolorlight="#FFB468" 

bordercolordark="#FFFFFF" bgcolor="#FFB468"> 
<tr> 
<td width="100%"><div 

align="center"><center><p>购物车</td> 
</tr> 
</table> 
</center></div></td> 
<td width="122" height="7" style="border: medium" 

align="center"><div align="center"><center><table 
border="1" cellpadding="2" cellspacing="0" width="100%" 

bordercolorlight="#FFB468" 
bordercolordark="#FFFFFF" bgcolor="#FFB468"> 
<tr> 
<td width="100%"><div align="center"><center><p><a 

href="shop_list.jsp?shop_id=<%=shop_id%>&product_type= 
<%=product_type%> 

&curpage=<%=curpage%>">继续购物</a></td> 
</tr> 
</table> 
</center></div></td> 
<td width="122" height="7" style="border: medium" 

align="center"><div align="center"><center><table 
border="1" cellpadding="2" cellspacing="0" width="100%" 

bordercolorlight="#FFB468" 
bordercolordark="#FFFFFF" bgcolor="#FFB468"> 
<tr> 
<td width="100%"><div align="center"><center><p><a 

href="javascript: document.forms[0].submit()">重新计费</a></td> 
</tr> 
</table> 
</center></div></td> 
<td width="122" height="7" style="border: medium" 

align="center"><div align="center"><center><table 
border="1" cellpadding="2" cellspacing="0" width="100%" 

bordercolorlight="#FFB468" 
bordercolordark="#FFFFFF" bgcolor="#FFB468"> 
<tr> 
<td width="100%"><div align="center"><center><p> 
<a href="shop_cart.jsp?action=clear&product_type=<%=product_type%>&curpage=<%=curpage%>"> 
清空购物车</a></td> 
</tr> 
</table> 
</center></div></td> 
<td width="122" height="7" style="border: medium" align="center"><div align="center"><center><table 
border="1" cellpadding="2" cellspacing="0" width="100%" bordercolorlight= 
"#FFB468" 
bordercolordark="#FFFFFF" bgcolor="#FFB468"> 
<tr> 
<td width="100%"><div align="center"><center><p><a href="shop_order.asp"> 
确认购买</a></td> 
</tr> 
</table> 
</center></div></td> 
</tr> 
<tr align="center"> 
<td width="610" height="1" colspan="5"><div align="center"><center> 
<table border="1" cellpadding="2" cellspacing="0" width="100%" 
bgcolor="#FDFEE2" bordercolorlight="#FFB468" bordercolordark="#FFFFFF" height="40"> 
<tr> 
<td width="20%" height="8" align="left">商品名称</td> 
<td width="10%" height="8" align="left">市场价</td> 
<td width="10%" height="8" align="left">优惠价</td> 
<td width="10%" height="8" align="left">数量</td> 
<td width="14%" height="8" align="left">小计</td> 
<td width="12%" height="8" align="left">定金比例</td> 
<td width="17%" height="8" align="left">定金小计</td> 
<td width="17%" height="8" align="left">删除</td> 
</tr> 
<% 
sql="select shop_product.product_id,shop_product.product_name,shop_product.product_price, 
shop_product.product_discount,shop_cart.cart_quantity,shop_product. 
product_first from shop_cart,shop_product where shop_cart.cart_shop_id=" 
+ shop_id + " and shop_cart.cart_guest_id=" + guest_name + " and 
shop_cart.cart_product_id=shop_product.product_id"; 

rs = bka.executeQuery(sql); 
int total; 
int total_first; 
total=0; 
total_first=0; 
String product_name; 
int product_price; 
int product_discount; 
int product_first; 
int cart_quantity; 

if (rs.next()){ 
while (rs.next()) { 
product_id=java.lang.Integer.parseInt(rs.getString(1)); 
product_name=rs.getString(2); 
product_price=java.lang.Integer.parseInt(rs.getString(3)); 
product_discount=java.lang.Integer.parseInt(rs.getString(4)); 
cart_quantity=java.lang.Integer.parseInt(rs.getString(5)); 
product_first=java.lang.Integer.parseInt(rs.getString(6)); 
%> 

<tr> 
<td width="10%" height="1" align="left"><%=product_name%> 
</td> 
<td width="10%" height="1" align="left"><%=product_price%> 
</td> 
<td width="10%" height="1" align="left"><%=product_discount%> 
</td> 
<td width="10%" height="1" align="left"><input type="text" 
name="<%= "t" + product_id %>" size="3" value=" 
<%=cart_quantity%>"></td> 
<td width="14%" height="1" align="left"> 
<%=product_discount*cart_quantity%></td> 
<td width="12%" height="1" align="left"><%=product_first + "%"%> 
</td> 
<td width="17%" height="1" align="left"><%=product_first*product_discount*cart_quantity/100.0%></td> 
<td width="17%" height="1"><div align="center"><center><p> 
<a href="shop_cart.jsp?action=delete&product_id=<%=product_id%>"> 
delete</a></td> 
</tr> 

<% 
total=total+product_discount*cart_quantity; 
total_first=total_first+product_discount*cart_quantity*product_first/100; 
} 
%> 

<tr align="center"> 
<td width="72%" colspan="6" height="16"><div align="right"> 
<p>总计</td> 
<td width="36%" colspan="2" height="16"><div align="left"> 
<%=total%></td> 
</tr> 
<tr align="center"> 
<td width="72%" colspan="6" height="16"><div align="right"> 
<p>定金总计</td> 
<td width="36%" colspan="2" height="16"><div align="left"><%=total_first%> 
</td> 
</tr> 
<tr align="center"> 
<td width="72%" colspan="6" height="16"><div align="right"><p>结余</td> 
<td width="36%" colspan="2" height="16"><div align="left"> 
<%=total-total_first%></td> 
</tr> 
</table> 
</center></div> 

<% 
}else{ 
%> 
<p align="center">购物车为空!</p> 
<% 
} 
%> 

数据库操作部分 

程序用到两个表: 
1 shop_cart表 
cart_id int 购物车编号 自动编号 
cart_shop_id nvarchar 商店编号 
cart_product_id nvarchar 商品编号 
cart_quantity int 商品数量 
临时存放购物车数据 

2 shop_product表 
product_id int 商品编号 自动编号 
shop_id nvarchar 商店编号 
product_name nvarchar 商品名称 
product_bb nvarchar 商品介绍 
product_price int 市场价 
product_discount int 优惠价 
product_img img 图片 
product_status nvarchar 状态 
product_first int 定金比例 
product_type nvanchar 商品类型 
存放商品资料 

使用bka.java制成的javabean:bka.class可以提供对数据库的操作。 

另外,需在控制面板的系统DSN中注册bka.dsn, 
从而可使JSP通过JDBC-ODBC来调用sql数据库。 
在页面中调用javabean,基本上可采用以下方式: 


<%@ page language="java" import="java.sql.*" %> 
<jsp:useBean id="RegisterBean" scope="page" class="shop.bka" /> 
<% 
String sql="select * from xxx"; 
ResultSet rs = RegisterBean.executeQuery(sql); 
if(rs.next()) { 
rs.close(); 
RegisterBean.closeStmt(); 
session.putValue("register_message","duplicate name found!"); 
} 
%> 
注意应在使用后将rs关闭。 


以下是bka.java的源程序。注意在使用前需用javac加以编译成为class 
文件即javabean. 

--shop/bka.java-- 


package shop; 
import java.sql.*; 

public class bka { 
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; 
String sConnStr = "jdbc:odbc:bka"; 
Connection conn = null; 
ResultSet rs = null; 

public bka() { 
try { 
Class.forName(sDBDriver); 
} 
catch(java.lang.ClassNotFoundException e) { 
System.err.println("bka(): " + e.getMessage()); 
} 
} 

public ResultSet executeQuery(String sql) { 
rs = null; 
try { 
conn = DriverManager.getConnection(sConnStr,"xxx","yyy"); 
Statement stmt = conn.createStatement(); 
rs = stmt.executeQuery(sql); 
} 
catch(SQLException ex) { 
System.err.println("aq.executeQuery: " + ex.getMessage()); 
} 
return rs; 
} 
}   
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -