jsp implémentation du programme d'achat
Auteur:Eve Cole
Date de mise à jour:2009-07-02 17:12:58
Voici le programme source du panier que j'ai créé à l'aide de JSP et d'une base de données :
Avis:
1. La partie refacturation n'est pas encore terminée, veuillez le faire vous-même !
2. La prochaine version sera réalisée en utilisant 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" />
<%
Chaîne type_produit ;
Action de chaîne ;
int id_produit ;
courbure int;
//Type de produit
if (request.getParameter("product_type")==null){
product_type="tous";
}autre{
product_type=request.getParameter("product_type");
}
//Paramètres du numéro de page et du type de produit, vous pouvez revenir à la dernière page d'achat lorsque "continuer vos achats"
if (request.getParameter("curpage")==null){
courbure=1;
}autre{
curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));
}
//action
if (request.getParameter("action")==null){
action="vue";
}autre{
action=request.getParameter("action");
}
//Numéro d'article
if (request.getParameter("product_id")==null){
id_produit=0 ;
}autre{
product_id=java.lang.Integer.parseInt(request.getParameter("product_id"));
}
int bbb;
bbb=1;
Nombre entier = new Integer(bbb);
//numéro de magasin
session.putValue("shop_id",num);
//Nom d'utilisateur du client
session.putValue("nom_invité","asp2001");
String nom_invité=(String)session.getValue("nom_invité");
Entier shop_id=(Integer)session.getValue("shop_id");
java.lang.String sql ;
java.sql.ResultSetrs ;
if (action.compareTo("add")==0) {
sql="select cart_quantity from shop_cart où cart_shop_id=" + shop_id
+ " et cart_guest_id='" + guest_name + "' et cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);
si (rs.next()){
int quantité_cartouche ;
cart_quantity=java.lang.Integer.parseInt(rs.getString("cart_quantity"))+1;
sql="mettre à jour shop_cart set cart_quantity=" + cart_quantity + " où cart_shop_id="
+ shop_id + " et cart_guest_id='" + guest_name + "' et cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);}
autre
{
sql="insérer dans shop_cart (cart_shop_id,cart_guest_id,cart_product_id,cart_quantity) valeurs ('" + shop_id + "','"
+ nom_invité + "','" + identifiant_produit + "',1)" ;
rs = bka.executeQuery(sql);
}
}
if (action.compareTo("clear")==0) {
sql="supprimer de shop_cart où cart_shop_id=" + shop_id + " et cart_guest_id='" + guest_name + "'" ;
rs = bka.executeQuery(sql);
}
if (action.compareTo("delete")==0) {
sql="supprimer de shop_cart où cart_shop_id=" + shop_id + " et cart_guest_id='"
+ guest_name + "' et cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);
}
%>
<div align="center"><center>
<table border="0" cellpadding="0" cellpacing="0" width="610"
hauteur="2">
<tr>
<td><form méthode="POST"
action="shop_cart.jsp?action=update&product_type=<%=product_type%>&curp
âge=<%=curpage%>">
<table border="0" cellpadding="0" cellpacing="0" width="610"
hauteur="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>Panier</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" cellpacing="0" width="100%"
bordurecolorlight="#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%>">Continuer mes achats</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" cellpacing="0" width="100%"
bordurecolorlight="#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td width="100%"><div align="center"><center><p><a
href="javascript: document.forms[0].submit()">Refacturation</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" cellpacing="0" width="100%"
bordurecolorlight="#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%>">Effacer le panier</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" Cellpacing="0" width="100%" bordercolorlight="#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td width="100%"><div align="center"><center><p><a href="shop_order.asp">Confirmer l'achat</a></td>
</tr>
</table>
</center></div></td>
</tr>
<tr align="centre">
<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" hauteur="40">
<tr>
<td width="20%" height="8" align="left">Nom du produit</td>
<td width="10%" height="8" align="left">Prix du marché</td>
<td width="10%" height="8" align="left">Prix spécial</td>
<td width="10%" height="8" align="left">Quantité</td>
<td width="14%" height="8" align="left">Sous-total</td>
<td width="12%" height="8" align="left">Taux de dépôt</td>
<td width="17%" height="8" align="left">Sous-total du dépôt</td>
<td width="17%" height="8" align="left">Supprimer</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 de shop_cart,shop_product où shop_cart.cart_shop_id=" + shop_id + " et shop_cart.cart_guest_id='" + guest_name + "' et shop_cart.cart_product_id=shop_product.product_id" ;
rs = bka.executeQuery(sql);
entier total ;
int total_first;
total=0 ;
total_first=0 ;
Chaîne nom_produit ;
int prix_produit ;
int produit_remise ;
int produit_first ;
int quantité_cartouche ;
si (rs.next()){
tandis que (rs.next()) {
product_id=java.lang.Integer.parseInt(rs.getString(1));
nom_produit=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%>">supprimer </a></td>
</tr>
<%
total=total+product_discount*cart_quantity ;
total_first=total_first+product_discount*cart_quantity*product_first/100 ;
}
%>
<tr align="centre">
<td width="72%" colspan="6" height="16"><div align="right"><p>Total</td>
<td width="36%" colspan="2" height="16"><div align="left"><%=total%></td>
</tr>
<tr align="centre">
<td width="72%" colspan="6" height="16"><div align="right"><p>Dépôt total</td>
<td width="36%" colspan="2" height="16"><div align="left"><%=total_first%></td>
</tr>
<tr align="centre">
<td width="72%" colspan="6" height="16"><div align="right"><p>Équilibre</td>
<td width="36%" colspan="2" height="16"><div align="left"><%=total-total_first%></td>
</tr>
</table>
</center></div>
<%
}autre{
%>
<p align="center">Le panier est vide !</p>
<%
}
%>
Partie opération de base de données
Le programme utilise deux tables :
1 tableau shop_cart
cart_id int Numérotation automatique du numéro de panier
cart_shop_id numéro de magasin nvarchar
cart_product_id nvarchar numéro de produit
cart_quantity int La quantité de produit stocke temporairement les données du panier
2 tableau boutique_produit
product_id int numéro de produit numérotation automatique
shop_id nvarchar numéro de magasin
nom_produit nvarchar nom du produit
product_bb nvarchar présentation du produit
product_price int prix du marché
product_discount int prix réduit
produit_img img image
product_status état nvarchar
product_first ratio de dépôt int
product_type Le type de produit nvanchar stocke les données du produit
Javabeans créés à l'aide de bka.java : bka.class peut fournir des opérations sur la base de données.
De plus, bka.dsn doit être enregistré dans le DSN système de la centrale.
Cela permet à JSP d'appeler la base de données SQL via JDBC-ODBC.
Pour appeler javabean dans la page, vous pouvez essentiellement utiliser la méthode suivante :
<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="RegisterBean" scope="page" class="shop.bka" />
<%
String sql="sélectionner * à partir de xxx" ;
ResultSet rs = RegisterBean.executeQuery(sql);
si(rs.next()) {
rs.close();
RegisterBean.closeStmt();
session.putValue("register_message","nom en double trouvé!");
}
%>
Notez que rs doit être fermé après utilisation.
Ce qui suit est le programme source de bka.java. Notez que vous devez utiliser javac pour le compiler dans un fichier de classe ou un javabean avant utilisation.
--shop/bka.java--
boutique de colis;
importer java.sql.* ;
classe publique bka {
Chaîne sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver" ;
Chaîne sConnStr = "jdbc:odbc:bka";
Connexion de connexion = null ;
ResultSet rs = nul ;
public bka() {
essayer {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("bka(): " + e.getMessage());
}
}
public ResultSetexecuteQuery(String sql) {
rs = nul ;
essayer {
conn = DriverManager.getConnection(sConnStr,"xxx","yyy");
Instruction stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch (SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
retourner rs;
}
}