تنفيذ jsp لبرنامج التسوق
الكاتب:Eve Cole
وقت التحديث:2009-07-02 17:12:58
فيما يلي البرنامج المصدر لعربة التسوق التي قمت بإنشائها باستخدام JSP وقاعدة البيانات:
يلاحظ:
1. لم يكتمل جزء إعادة الفواتير بعد، يرجى القيام بذلك بنفسك!
2. سيتم تنفيذ الإصدار التالي باستخدام الجلسة.
//shop_cart.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ جلسة الصفحة = "صحيح" %>
<%@page language="java" import="java.sql.*" %>
<jsp:useBean id = "bka" نطاق = "صفحة" فئة = "shop.bka" />
<%
سلسلة نوع المنتج؛
عمل السلسلة؛
int Product_id;
كثافة العمليات؛
// نوع المنتج
إذا (request.getParameter("product_type")==null){
Product_type = "all"؛
}آخر{
Product_type=request.getParameter("product_type");
}
// رقم الصفحة ومعلمات نوع المنتج، يمكنك العودة إلى صفحة التسوق الأخيرة عند "متابعة التسوق"
إذا (request.getParameter("curpage")==null){
كرباج=1;
}آخر{
curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));
}
//فعل
إذا (request.getParameter("action")==null){
الإجراء = "عرض"؛
}آخر{
action=request.getParameter("action");
}
// رقم العنصر
إذا (request.getParameter("product_id")==null){
Product_id=0;
}آخر{
Product_id=java.lang.Integer.parseInt(request.getParameter("product_id"));
}
كثافة العمليات ب ب.
ب ب = 1؛
Integer num = new Integer(bbb);
// رقم المتجر
session.putValue("shop_id",num);
// اسم مستخدم العميل
session.putValue("guest_name"،"asp2001")؛
String Guest_name=(String)session.getValue("guest_name");
عدد صحيح shop_id=(Integer)session.getValue("shop_id");
java.lang.String sql;
java.sql.ResultSetrs;
إذا (action.compareTo("add")==0) {
sql = "اختر cart_quantity من shop_cart حيث cart_shop_id = " + shop_id
+ " and cart_guest_id ='" + Guest_name + "' and cart_product_id = " + Product_id ;
rs = bka.executeQuery(sql);
إذا (rs.next()){
int cart_quantity;
cart_quantity=java.lang.Integer.parseInt(rs.getString("cart_quantity"))+1;
sql = "تحديث مجموعة shop_cart cart_quantity = " + cart_quantity + " حيث cart_shop_id = "
+ shop_id + " and cart_guest_id ='" + Guest_name + "' and cart_product_id = " + Product_id ;
rs = bka.executeQuery(sql);}
آخر
{
sql="insert into shop_cart (cart_shop_id,cart_guest_id,cart_product_id,cart_quantity) القيم ('" + shop_id + "','"
+ اسم الضيف + "','" + معرف المنتج + "',1)";
rs = bka.executeQuery(sql);
}
}
إذا (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);
}
إذا (action.compareTo("delete")==0) {
sql="احذف من shop_cart حيث cart_shop_id=" + shop_id + " وcart_guest_id='"
+ Guest_name + "' and cart_product_id=" + Product_id ;
rs = bka.executeQuery(sql);
}
%>
<div align="center"><center>
<حدود الجدول = "0" خلية الحشو = "0" تباعد الخلايا = "0" العرض = "610"
الارتفاع = "2">
<تر>
<td><طريقة النموذج = "POST"
action="shop_cart.jsp?action=update&product_type=<%=product_type%>&curp
العمر=<%=curpage%>">
<حدود الجدول = "0" خلية الحشو = "0" تباعد الخلايا = "0" العرض = "610"
الارتفاع = "2">
<تر>
<td width="122" height="7"><div align="center"><center><table
الحدود = "1" خلية الحشو = "2" تباعد الخلايا = "0" العرض = "100٪" Bordercolorlight = "#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<تر>
<td width="100%"><div
align="center"><center><p>عربة التسوق</td>
</tr>
</الجدول>
</center></div></td>
<td العرض = "122" الارتفاع = "7" النمط = "الحدود: متوسطة"
align="center"><div align="center"><center><table
الحدود = "1" خلية الحشو = "2" تباعد الخلايا = "0" العرض = "100٪"
Bordercolorlight = "#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<تر>
<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 العرض = "122" الارتفاع = "7" النمط = "الحدود: متوسطة"
align="center"><div align="center"><center><table
الحدود = "1" خلية الحشو = "2" تباعد الخلايا = "0" العرض = "100٪"
Bordercolorlight = "#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<تر>
<td width="100%"><div align="center"><center><p><a
href="javascript: document.forms[0].submit()">إعادة الفواتير</a></td>
</tr>
</الجدول>
</center></div></td>
<td العرض = "122" الارتفاع = "7" النمط = "الحدود: متوسطة"
align="center"><div align="center"><center><table
الحدود = "1" خلية الحشو = "2" تباعد الخلايا = "0" العرض = "100٪"
Bordercolorlight = "#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<تر>
<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: middle" align="center"><div align="center"><center><table
الحدود = "1" خلية الحشو = "2" تباعد الخلايا = "0" العرض = "100٪" Bordercolorlight = "#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<تر>
<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>
<حدود الجدول = "1" خلية الحشو = "2" تباعد الخلايا = "0" العرض = "100٪" bgcolor = "#FDFEE2"
Bordercolorlight = "#FFB468" bordercolordark = "#FFFFFF" height = "40">
<تر>
<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 = "حدد shop_product.product_id،shop_product.product_name،shop_product.product_price،
shop_product.product_discount,shop_cart.cart_quantity,shop_product.product_first من 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 cart_quantity;
إذا (rs.next()){
بينما (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));
%>
<تر>
<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+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>
</الجدول>
</center></div>
<%
}آخر{
%>
<p align="center">عربة التسوق فارغة!</p>
<%
}
%>
جزء تشغيل قاعدة البيانات
يستخدم البرنامج جدولين:
1 طاولة عربة التسوق
cart_id int رقم عربة التسوق الترقيم التلقائي
رقم متجر cart_shop_id nvarchar
cart_product_id رقم المنتج nvarchar
cart_quantity int تقوم كمية المنتج بتخزين بيانات عربة التسوق بشكل مؤقت
2 جدول منتجات_المتجر
Product_id int رقم المنتج الترقيم التلقائي
رقم متجر shop_id nvarchar
اسم المنتج nvarchar اسم المنتج
Product_bb مقدمة المنتج nvarchar
سعر المنتج_سعر السوق
Product_discount سعر الخصم int
صورة المنتج_img
حالة المنتج nvarchar
Product_first نسبة الودائع
Product_type يقوم نوع المنتج nvanchar بتخزين بيانات المنتج
Javabeans التي تم إنشاؤها باستخدام bka.java: يمكن لـ bka.class توفير العمليات على قاعدة البيانات.
بالإضافة إلى ذلك، يجب تسجيل bka.dsn في DSN الخاص بالنظام الخاص بلوحة التحكم.
يتيح ذلك لـ JSP استدعاء قاعدة بيانات SQL من خلال JDBC-ODBC.
للاتصال بـ javabean في الصفحة، يمكنك استخدام الطريقة التالية بشكل أساسي:
<%@page language="java" import="java.sql.*" %>
<jsp:useBean id="RegisterBean"scope="page" class="shop.bka" />
<%
سلسلة sql = "اختر * من xxx"؛
ResultSet rs = RegisterBean.executeQuery(sql);
إذا (rs.next()) {
rs. Close();
RegisterBean. CloseStmt();
session.putValue("register_message"،"تم العثور على اسم مكرر!");
}
%>
لاحظ أنه يجب إغلاق rs بعد الاستخدام.
فيما يلي البرنامج المصدر لـ bka.java. لاحظ أنك بحاجة إلى استخدام javac لتجميعه في ملف فئة أو javabean قبل الاستخدام.
--shop/bka.java--
متجر الطرود؛
استيراد java.sql.*;
الطبقة العامة بكا {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:bka";
اتصال كون = فارغ؛
ResultSet rs = null;
بكا العامة () {
يحاول {
Class.forName(sDBDriver);
}
الصيد (java.lang.ClassNotFoundException e) {
System.err.println("bka(): " + e.getMessage());
}
}
مجموعة النتائج العامة ExecutyQuery(String sql) {
rs = null;
يحاول {
conn = DriverManager.getConnection(sConnStr،"xxx"،"yyy")؛
البيان stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
قبض على (SQLException على سبيل المثال) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
العودة روبية.
}
}