implementação jsp do programa de compras
Autor:Eve Cole
Data da Última Atualização:2009-07-02 17:12:58
A seguir está o programa fonte do carrinho de compras que fiz usando JSP e banco de dados:
Perceber:
1. A parte de refaturamento ainda não foi concluída, faça você mesmo!
2. A próxima versão será feita usando session.
//shop_cart.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ sessão da página = "true" %>
<%@page idioma="java" import="java.sql.*" %>
<jsp:useBean id="bka" scope="page" class="shop.bka" />
<%
String tipo_produto;
Ação de corda;
int id_do_produto;
curvatura interna;
//Tipo de produto
if (request.getParameter("product_type")==nulo){
tipo_produto="todos";
}outro{
product_type=request.getParameter("product_type");
}
//Número da página e parâmetros do tipo de produto, você pode retornar à última página de compras ao "continuar comprando"
if (request.getParameter("curpage")==null){
curvatura=1;
}outro{
curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));
}
//Ação
if (request.getParameter("action")==nulo){
ação="visualizar";
}outro{
action=request.getParameter("ação");
}
//Número do item
if (request.getParameter("product_id")==nulo){
id_produto=0;
}outro{
product_id=java.lang.Integer.parseInt(request.getParameter("product_id"));
}
int bbb;
bbb=1;
Num inteiro = novo inteiro (bbb);
//número da loja
session.putValue("shop_id",num);
//Nome de usuário do cliente
session.putValue("nome_convidado","asp2001");
String nome_convidado=(String)session.getValue("nome_convidado");
Inteiro shop_id=(Inteiro)session.getValue("shop_id");
java.lang.Stringsql;
java.sql.ResultSetrs;
if (action.compareTo("adicionar")==0) {
sql="selecione cart_quantity de shop_cart onde cart_shop_id=" + shop_id
+ " e cart_guest_id='" + guest_name + "' e cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);
if (rs.next()){
int quantidade_carrinho;
cart_quantity=java.lang.Integer.parseInt(rs.getString("cart_quantity"))+1;
sql="atualizar shop_cart set cart_quantity=" + cart_quantity + "onde cart_shop_id="
+ shop_id + " e cart_guest_id='" + guest_name + "' e cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);}
outro
{
sql="inserir em shop_cart (cart_shop_id,cart_guest_id,cart_product_id,cart_quantity) valores ('" + shop_id + "','"
+ nome_do_convidado + "','" + id_do_produto + "',1)";
rs = bka.executeQuery(sql);
}
}
if (action.compareTo("claro")==0) {
sql="excluir do shop_cart onde cart_shop_id=" + shop_id + " e cart_guest_id='" + guest_name + "'";
rs = bka.executeQuery(sql);
}
if (action.compareTo("excluir")==0) {
sql="excluir de shop_cart onde cart_shop_id=" + shop_id + " e cart_guest_id='"
+ guest_name + "' e cart_product_id=" + product_id;
rs = bka.executeQuery(sql);
}
%>
<div align="center"><center>
<table border="0" cellpadding="0" cellpacing="0" width="610"
altura="2">
<tr>
<td><form método="POST"
action="shop_cart.jsp?action=update&product_type=<%=product_type%>&curp
idade=<%=curpage%>">
<table border="0" cellpadding="0" cellpacing="0" width="610"
altura="2">
<tr>
<td width="122" height="7"><div align="center"><center><tabela
border="1" cellpadding="2" cellpacing="0" width="100%" bordercolorlight="#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td largura="100%"><div
alinhar="center"><center><p>Carrinho de compras</td>
</tr>
</tabela>
</center></div></td>
<td width="122" height="7" style="border: médio"
alinhar="centro"><div alinhar="centro"><centro><tabela
border="1" cellpadding="2" cellpacing="0" largura="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%>">Continuar comprando</a></td>
</tr>
</tabela>
</center></div></td>
<td width="122" height="7" style="border: médio"
alinhar="centro"><div alinhar="centro"><centro><tabela
border="1" cellpadding="2" cellpacing="0" largura="100%"
bordercolorlight="#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td width="100%"><div align="center"><center><p><a
href="javascript: document.forms[0].submit()">Refaturamento</a></td>
</tr>
</tabela>
</center></div></td>
<td width="122" height="7" style="border: médio"
alinhar="centro"><div alinhar="centro"><centro><tabela
border="1" cellpadding="2" cellpacing="0" largura="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%>">Limpar carrinho de compras</a></td>
</tr>
</tabela>
</center></div></td>
<td width="122" height="7" style="border: middle" 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">Confirmar compra</a></td>
</tr>
</tabela>
</center></div></td>
</tr>
<tr alinhar="centro">
<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">Nome do produto</td>
<td width="10%" height="8" align="left">Preço de mercado</td>
<td width="10%" height="8" align="left">Preço especial</td>
<td width="10%" height="8" align="left">Quantidade</td>
<td width="14%" height="8" align="left">Subtotal</td>
<td width="12%" height="8" align="left">Taxa de depósito</td>
<td width="17%" height="8" align="left">Subtotal de depósito</td>
<td width="17%" height="8" align="left">Excluir</td>
</tr>
<%
sql = "selecione loja_produto.produto_id, loja_produto.nome_do_produto, loja_produto.produto_preço,
shop_product.product_discount,shop_cart.cart_quantity,shop_product.product_first de shop_cart,shop_product onde shop_cart.cart_shop_id=" + shop_id + " e shop_cart.cart_guest_id='" + guest_name + "' e shop_cart.cart_product_id=shop_product.product_id";
rs = bka.executeQuery(sql);
total interno;
int total_primeiro;
total=0;
total_primeiro=0;
String nome_do_produto;
int preço_produto;
int desconto_produto;
int produto_primeiro;
int quantidade_carrinho;
if (rs.next()){
enquanto (rs.next()) {
product_id=java.lang.Integer.parseInt(rs.getString(1));
nome_do_produto=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%>">excluir </a></td>
</tr>
<%
total=total+desconto_produto*quantidade_carrinho;
total_first=total_first+product_discount*cart_quantity*product_first/100;
}
%>
<tr alinhar="centro">
<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 alinhar="centro">
<td width="72%" colspan="6" height="16"><div align="right"><p>Depósito total</td>
<td width="36%" colspan="2" height="16"><div align="left"><%=total_first%></td>
</tr>
<tr alinhar="centro">
<td width="72%" colspan="6" height="16"><div align="right"><p>Saldo</td>
<td width="36%" colspan="2" height="16"><div align="left"><%=total-total_first%></td>
</tr>
</tabela>
</center></div>
<%
}outro{
%>
<p align="center">O carrinho de compras está vazio!</p>
<%
}
%>
Parte de operação do banco de dados
O programa usa duas tabelas:
1 tabela shop_cart
cart_id int Numeração automática do número do carrinho de compras
cart_shop_id número da loja nvarchar
cart_product_id número do produto nvarchar
cart_quantity int A quantidade do produto armazena temporariamente os dados do carrinho de compras
2 tabela shop_product
product_id int número do produto numeração automática
shop_id nvarchar número da loja
nome_do_produto nvarchar nome do produto
product_bb nvarchar introdução do produto
product_price preço de mercado interno
product_discount preço com desconto interno
imagem img do produto_img
status do produto nvarchar
proporção de depósito interno_produto_primeiro
product_type O tipo de produto nvanchar armazena dados do produto
Javabeans feitos usando bka.java: bka.class podem fornecer operações no banco de dados.
Além disso, bka.dsn precisa ser registrado no DSN do sistema do painel de controle.
Isso permite que JSP chame o banco de dados SQL por meio de JDBC-ODBC.
Para chamar o javabean na página, você pode basicamente usar o seguinte método:
<%@page idioma="java" import="java.sql.*" %>
<jsp:useBean id="RegisterBean" escopo="page" class="shop.bka" />
<%
String sql="selecione * de xxx";
ResultSet rs = RegisterBean.executeQuery(sql);
if(rs.next()) {
rs.close();
RegisterBean.closeStmt();
session.putValue("register_message","nome duplicado encontrado!");
}
%>
Observe que o rs deve ser fechado após o uso.
A seguir está o programa fonte de bka.java. Observe que você precisa usar javac para compilá-lo em um arquivo de classe ou javabean antes de usar.
--shop/bka.java--
loja de pacotes;
importar java.sql.*;
classe pública bka {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:bka";
Conexão conexão = null;
Conjunto de resultados rs = null;
public bka() {
tentar {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("bka(): " + e.getMessage());
}
}
public ResultSet executeQuery (String sql) {
rs = nulo;
tentar {
conn = DriverManager.getConnection(sConnStr,"xxx","yyy");
Instrução stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
retornar rs;
}
}