ショッピングプログラムのjsp実装
著者:Eve Cole
更新時間:2009-07-02 17:12:58
以下はJSPとデータベースを使用して作成したショッピングカートのソースプログラムです。
知らせ:
1. 再請求部分はまだ完了していません。ご自身で行ってください。
2. 次のバージョンはセッションを使用して実行されます。
//ショップカート.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ ページセッション="true" %>
<%@ ページ言語="java" インポート="java.sql.*" %>
<jsp:useBean id="bka"scope="page" class="shop.bka" />
<%
文字列製品タイプ;
文字列アクション。
int 製品 ID;
int curpage;
//製品タイプ
if (request.getParameter("product_type")==null){
製品タイプ = "すべて";
}それ以外{
製品タイプ=request.getParameter("製品タイプ");
}
//ページ番号と商品タイプのパラメータは、「ショッピングを続ける」ときに最後のショッピングページに戻ることができます
if (request.getParameter("curpage")==null){
カーページ=1;
}それ以外{
curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));
}
//アクション
if (request.getParameter("アクション")==null){
アクション = "ビュー";
}それ以外{
action=request.getParameter("アクション");
}
//商品番号
if (request.getParameter("product_id")==null){
製品ID=0;
}それ以外{
product_id=java.lang.Integer.parseInt(request.getParameter("product_id"));
}
int bbb;
bbb=1;
整数番号 = 新しい整数(bbb);
//店舗番号
session.putValue("ショップID",num);
//顧客のユーザー名
session.putValue("ゲスト名","asp2001");
String ゲスト名=(String)session.getValue("ゲスト名");
整数 shop_id=(Integer)session.getValue("shop_id");
java.lang.String SQL;
java.sql.ResultSetrs;
if (action.compareTo("add")==0) {
sql="shop_cart から cart_quantity を選択します (cart_shop_id= + shop_id)
+ " および cart_guest_id='" + guest_name + "' および cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);
if (rs.next()){
int カート数量;
cart_quantity=java.lang.Integer.parseInt(rs.getString("cart_quantity"))+1;
sql="shop_cart set cart_quantity=" + cart_quantity + "を更新します。 ここで、cart_shop_id=
+ shop_id + " および cart_guest_id='" + guest_name + "' および cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);}
それ以外
{
sql="shop_cart (cart_shop_id,cart_guest_id,cart_product_id,cart_quantity) 値に挿入 ('" + shop_id + "','"
+ ゲスト名 + "','" + 製品 ID + "',1)";
rs = bka.executeQuery(sql);
}
}
if (action.compareTo("clear")==0) {
sql="cart_shop_id=" + shop_id + " および cart_guest_id='" + guest_name + "'" の shop_cart から削除します。
rs = bka.executeQuery(sql);
}
if (action.compareTo("delete")==0) {
sql="cart_shop_id=" + shop_id + " および cart_guest_id=' の shop_cart から削除します。"
+ guest_name + "' および cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);
}
%>
<div align="center"><center>
<table border="0" cellpadding="0" cellpacing="0" width="610"
高さ="2">
<tr>
<td><フォームメソッド="POST"
action="shop_cart.jsp?action=update&product_type=<%=product_type%>&curp
age=<%=curpage%>">
<table border="0" cellpadding="0" cellpacing="0" width="610"
高さ="2">
<tr>
<td width="122" height="7"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="0" width="100%" bordercolorlight="#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td width="100%"><div
align="center"><center><p>ショッピング カート</td>
</tr>
</テーブル>
</center></div></td>
<td width="122" height="7" style="ボーダー: 中"
align="center"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="0" width="100%"
ボーダーカラーライト="#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>
</テーブル>
</center></div></td>
<td width="122" height="7" style="ボーダー: 中"
align="center"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="0" width="100%"
ボーダーカラーライト="#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td width="100%"><div align="center"><center><p><a
href="javascript: document.forms[0].submit()">再請求</a></td>
</tr>
</テーブル>
</center></div></td>
<td width="122" height="7" style="ボーダー: 中"
align="center"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="0" width="100%"
ボーダーカラーライト="#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>
</テーブル>
</center></div></td>
<td width="122" height="7" style="border: Medium" align="center"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="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>
</テーブル>
</center></div></td>
</tr>
<tr align="center">
<td width="610" height="1"colspan="5"><div align="center"><center>
<table border="1" cellpadding="2" cellpacing="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="ショップ_製品.製品ID,ショップ_製品.製品名,ショップ_製品.製品価格を選択,
shop_product.product_discount,shop_cart.cart_quantity,shop_product.product_first from shop_cart,shop_product ここで、shop_cart.cart_shop_id=" + shop_id + " および shop_cart.cart_guest_id='" + guest_name + "' および shop_cart.cart_product_id=shop_product.product_id";
rs = bka.executeQuery(sql);
整数の合計;
int total_first;
合計=0;
total_first=0;
文字列製品名;
int 製品価格;
int product_discount;
int product_first;
int カート数量;
if (rs.next()){
while (rs.next()) {
product_id=java.lang.Integer.parseInt(rs.getString(1));
製品名=rs.getString(2);
product_price=java.lang.Integer.parseInt(rs.getString(3));
product_discount=java.lang.Integer.parseInt(rs.getString(4));
car_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%>">削除</a></td>
</tr>
<%
total=合計+製品割引*カート数量;
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>
</テーブル>
</center></div>
<%
}それ以外{
%>
<p align="center">ショッピング カートは空です!</p>
<%
}
%>
データベース操作部
プログラムは 2 つのテーブルを使用します。
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 市場価格
product_discount int 割引価格
product_img 画像イメージ
product_status nvarchar ステータス
product_first 入金率
product_type nvanchar 製品タイプには製品データが格納されます
bka.java: bka.class を使用して作成された Javabean は、データベースに対する操作を提供できます。
また、コントロールパネルのシステムDSNにbka.dsnを登録する必要があります。
これにより、JSP が JDBC-ODBC を通じて SQL データベースを呼び出すことができるようになります。
ページ内で javabean を呼び出すには、基本的に次のメソッドを使用できます。
<%@ ページ言語="java" インポート="java.sql.*" %>
<jsp:useBean id="RegisterBean"scope="page" class="shop.bka" />
<%
文字列 sql="xxx から * を選択";
ResultSet rs = RegisterBean.executeQuery(sql);
if(rs.next()) {
rs.close();
RegisterBean.closeStmt();
session.putValue("register_message","重複した名前が見つかりました!");
}
%>
使用後はrsを閉じる必要があることに注意してください。
以下はbka.javaのソースプログラムです。使用する前に javac を使用してクラス ファイルまたは javabean にコンパイルする必要があることに注意してください。
--shop/bka.java--
パッケージショップ。
インポート java.sql.*;
パブリック クラス bka {
文字列 sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
文字列 sConnStr = "jdbc:odbc:bka";
接続 conn = null;
結果セット rs = null;
パブリック bka() {
試す {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("bka(): " + e.getMessage());
}
}
public ResultSetexecuteQuery(String sql) {
rs = null;
試す {
conn = DriverManager.getConnection(sConnStr,"xxx","yyy");
ステートメント stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
rsを返します。
}
}