implementación jsp del programa de compras
Autor:Eve Cole
Fecha de actualización:2009-07-02 17:12:58
El siguiente es el programa fuente del carrito de compras que hice usando JSP y una base de datos:
Aviso:
1. La parte de nueva facturación aún no se ha completado, ¡hágalo usted mismo!
2. La próxima versión se realizará mediante sesión.
//shop_cart.jsp
<%@ página contentType="text/html;charset=gb2312"%>
<%@ sesión de página="true" %>
<%@ idioma de página="java" import="java.sql.*" %>
<jsp:useBean id="bka" alcance="página" clase="tienda.bka" />
<%
Cadena tipo_producto;
Acción de cuerda;
int id_producto;
int curvatura;
//tipo de producto
si (request.getParameter("tipo_producto")==null){
tipo_producto="todos";
}demás{
tipo_producto=request.getParameter("tipo_producto");
}
//Parámetros de número de página y tipo de producto, puede volver a la última página de compras cuando "seguir comprando"
si (request.getParameter("curpage")==null){
curvatura=1;
}demás{
curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));
}
//acción
si (request.getParameter("acción")==null){
acción="ver";
}demás{
acción=request.getParameter("acción");
}
//Número de artículo
si (request.getParameter("product_id")==null){
id_producto=0;
}demás{
product_id=java.lang.Integer.parseInt(request.getParameter("product_id"));
}
int bbb;
bbb=1;
Número entero = nuevo entero (bbb);
// número de tienda
session.putValue("shop_id",num);
//Nombre de usuario del cliente
session.putValue("nombre_invitado","asp2001");
String nombre_invitado=(Cadena)session.getValue("nombre_invitado");
Entero shop_id=(Entero)session.getValue("shop_id");
java.lang.String sql;
java.sql.ResultSetrs;
si (action.compareTo("agregar")==0) {
sql="seleccione cantidad_carrito de shop_cart donde cart_shop_id=" + shop_id
+ " y cart_guest_id='" + nombre_invitado + "' y cart_product_id=" + product_id;
rs = bka.executeQuery(sql);
si (rs.siguiente()){
int carrito_cantidad;
cantidad_carro=java.lang.Integer.parseInt(rs.getString("cantidad_carro"))+1;
sql="actualizar shop_cart set cart_quantity=" + cart_quantity + " donde cart_shop_id="
+ shop_id + "y cart_guest_id='" + guest_name + "' y cart_product_id=" + product_id;
rs = bka.executeQuery(sql);}
demás
{
sql="insertar en shop_cart (cart_shop_id,cart_guest_id,cart_product_id,cart_quantity) valores ('" + shop_id + "','"
+ nombre_invitado + "','" + id_producto + "',1)";
rs = bka.executeQuery(sql);
}
}
si (action.compareTo("borrar")==0) {
sql="eliminar de shop_cart donde cart_shop_id=" + shop_id + " y cart_guest_id='" + guest_name + "'";
rs = bka.executeQuery(sql);
}
if (action.compareTo("eliminar")==0) {
sql="eliminar de shop_cart donde cart_shop_id=" + shop_id + " y cart_guest_id='"
+ nombre_invitado + "' y carrito_producto_id=" + id_producto;
rs = bka.executeQuery(sql);
}
%>
<div align="centro"><centro>
<table border="0" cellpadding="0" cellspace="0" ancho="610"
altura="2">
<tr>
<td><método de formulario="POST"
action="shop_cart.jsp?action=actualización&product_type=<%=product_type%>&curp
edad=<%=curpación%>">
<table border="0" cellpadding="0" cellspace="0" ancho="610"
altura="2">
<tr>
<td width="122" height="7"><div align="center"><center><tabla
border="1" cellpadding="2" cellspace="0" ancho="100%" bordercolorlight="#FFB468"
bordecolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td ancho="100%"><div
align="center"><center><p>Carrito de compras</td>
</tr>
</tabla>
</center></div></td>
<td ancho="122" alto="7" estilo="borde: medio"
align="centro"><div align="centro"><centro><tabla
border="1" cellpadding="2" cellspace="0" ancho="100%"
bordecolorlight="#FFB468"
bordecolordark="#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>
</tabla>
</center></div></td>
<td ancho="122" alto="7" estilo="borde: medio"
align="centro"><div align="centro"><centro><tabla
border="1" cellpadding="2" cellspace="0" ancho="100%"
bordecolorlight="#FFB468"
bordecolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td width="100%"><div align="center"><center><p><a
href="javascript: document.forms[0].submit()">Refacturación</a></td>
</tr>
</tabla>
</center></div></td>
<td ancho="122" alto="7" estilo="borde: medio"
align="centro"><div align="centro"><centro><tabla
border="1" cellpadding="2" cellspace="0" ancho="100%"
bordecolorlight="#FFB468"
bordecolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td ancho="100%"><div align="centro"><centro><p>
<a href="shop_cart.jsp?action=clear&product_type=<%=product_type%>&curpage=<%=curpage%>">Borrar carrito de compras</a></td>
</tr>
</tabla>
</center></div></td>
<td width="122" height="7" style="border: medium" align="center"><div align="center"><center><tabla
border="1" cellpadding="2" cellspace="0" ancho="100%" bordercolorlight="#FFB468"
bordecolordark="#FFFFFF" bgcolor="#FFB468">
<tr>
<td width="100%"><div align="center"><center><p><a href="shop_order.asp">Confirmar compra</a></td>
</tr>
</tabla>
</center></div></td>
</tr>
<tr align="centro">
<td width="610" height="1" colspan="5"><div align="center"><center>
<table border="1" cellpadding="2" cellpacing="0" ancho="100%" bgcolor="#FDFEE2"
bordercolorlight="#FFB468" bordercolordark="#FFFFFF" altura="40">
<tr>
<td width="20%" height="8" align="left">Nombre del producto</td>
<td width="10%" height="8" align="left">Precio de mercado</td>
<td width="10%" height="8" align="left">Precio especial</td>
<td width="10%" height="8" align="left">Cantidad</td>
<td width="14%" height="8" align="left">Subtotal</td>
<td width="12%" height="8" align="left">Proporción de depósitos</td>
<td width="17%" height="8" align="left">Subtotal del depósito</td>
<td width="17%" height="8" align="left">Eliminar</td>
</tr>
<%
sql="seleccione 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 donde shop_cart.cart_shop_id=" + shop_id + " y shop_cart.cart_guest_id='" + guest_name + "' y shop_cart.cart_product_id=shop_product.product_id";
rs = bka.executeQuery(sql);
total entero;
int total_primero;
total=0;
total_primero=0;
Cadena nombre_producto;
int precio_producto;
int producto_descuento;
int producto_primero;
int carrito_cantidad;
si (rs.siguiente()){
mientras (rs.siguiente()) {
product_id=java.lang.Integer.parseInt(rs.getString(1));
nombre_producto=rs.getString(2);
precio_producto=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="<% =cantidad_carro%>"></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%>">eliminar </a></td>
</tr>
<%
total=total+descuento_producto*cantidad_carrito;
total_first=total_first+producto_descuento*cantidad_carro*producto_primero/100;
}
%>
<tr align="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 align="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 align="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>
</tabla>
</center></div>
<%
}demás{
%>
<p align="center">¡El carrito de compras está vacío!</p>
<%
}
%>
Parte de operación de la base de datos
El programa utiliza dos tablas:
1 mesa shop_cart
cart_id int Numeración automática del número del carrito de compras
cart_shop_id nvarchar número de tienda
cart_product_id nvarchar número de producto
cart_quantity int La cantidad del producto almacena temporalmente los datos del carrito de compras
2 tabla tienda_producto
product_id int número de producto numeración automática
shop_id nvarchar número de tienda
nombre_producto nvarchar nombre del producto
product_bb nvarchar introducción del producto
product_price int precio de mercado
product_discount int precio de descuento
product_img img imagen
estado_producto estado nvarchar
product_first índice de depósito int
product_type nvanchar tipo de producto almacena datos del producto
Javabeans creados con bka.java: bka.class puede proporcionar operaciones en la base de datos.
Además, bka.dsn debe estar registrado en el sistema DSN del panel de control.
Esto permite que JSP llame a la base de datos SQL a través de JDBC-ODBC.
Para llamar a javabean en la página, básicamente puedes usar el siguiente método:
<%@ idioma de página="java" import="java.sql.*" %>
<jsp:useBean id="RegisterBean" alcance="página" clase="tienda.bka" />
<%
String sql="seleccionar * de xxx";
Conjunto de resultados rs = RegisterBean.executeQuery(sql);
si(rs.siguiente()) {
rs.cerrar();
RegisterBean.closeStmt();
session.putValue("register_message","¡se encontró un nombre duplicado!");
}
%>
Tenga en cuenta que rs debe cerrarse después de su uso.
El siguiente es el programa fuente de bka.java. Tenga en cuenta que debe usar javac para compilarlo en un archivo de clase o javabean antes de usarlo.
--tienda/bka.java--
tienda de paquetes;
importar java.sql.*;
clase pública bka {
Cadena sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
Cadena sConnStr = "jdbc:odbc:bka";
Conexión de conexión = nula;
Conjunto de resultados rs = nulo;
bka pública() {
intentar {
Clase.forName(sDBDriver);
}
captura(java.lang.ClassNotFoundException e) {
System.err.println("bka(): " + e.getMessage());
}
}
conjunto de resultados público ejecutar consulta (cadena sql) {
rs = nulo;
intentar {
conexión = DriverManager.getConnection(sConnStr,"xxx","yyy");
Declaración stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
captura (SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
devolver rs;
}
}