1、重新計費部分還沒有做好,大家自己動手吧! 2、下一版本將用session做。 //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%>&curpage=<%=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><tableborder="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"> <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"> <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; } } 1、重新計費部分還沒有做好,大家自己動手吧! 2、下一版本將用session做。 //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%>&curpage=<%=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><tableborder="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"> <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"> <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; } }
|