jsp реализация программы покупок
Автор:Eve Cole
Время обновления:2009-07-02 17:12:58
Ниже приведен исходный код корзины покупок, которую я создал с использованием JSP и базы данных:
Уведомление:
1. Перевыставление счета еще не завершено, сделайте это самостоятельно!
2. Следующая версия будет сделана с использованием сеанса.
//shop_cart.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ страница session="true" %>
<%@ page Language="java" import="java.sql.*" %>
<jsp:useBean id="bka"scope="page" class="shop.bka" />
<%
Строка product_type;
Струнное действие;
ИНТ Product_id;
int курпаж;
//Тип продукта
if (request.getParameter("product_type")==null){
Product_type="все";
}еще{
Product_type=request.getParameter("product_type");
}
// Параметры номера страницы и типа продукта. При «продолжении покупок» вы можете вернуться на последнюю страницу покупок.
if (request.getParameter("curpage")==null){
курпаж = 1;
}еще{
curpage = java.lang.Integer.parseInt(request.getParameter("curpage"));
}
//действие
if (request.getParameter("action")==null){
действие="просмотр";
}еще{
action=request.getParameter("действие");
}
//номер позиции
если (request.getParameter("product_id")==null){
Product_id=0;
}еще{
Product_id=java.lang.Integer.parseInt(request.getParameter("product_id"));
}
интервал БББ;
ббб=1;
Целое число = новое целое число (bbb);
//номер магазина
session.putValue("shop_id",num);
//Имя пользователя клиента
session.putValue("guest_name","asp2001");
String Guest_name=(String)session.getValue("guest_name");
Integer shop_id=(Integer)session.getValue("shop_id");
java.lang.String sql;
java.sql.ResultSetrs;
если (action.compareTo("add")==0) {
sql="выберите cars_quantity из shop_cart, где cars_shop_id=" + shop_id
+ " и cart_guest_id='" + Guest_name + "' and cars_product_id=" + product_id ;
rs = bka.executeQuery(sql);
если (rs.next()){
интервал корзину_количество;
cars_quantity=java.lang.Integer.parseInt(rs.getString("cart_quantity"))+1;
sql="обновить магазин_карту установить корзину_количество=" + корзину_количество + " где тележка_магазин_ид="
+ shop_id + " и cart_guest_id='" + Guest_name + "' и cars_product_id=" + product_id ;
rs = bka.executeQuery(sql);}
еще
{
sql="вставить в shop_cart (cart_shop_id,cart_guest_id,cart_product_id,cart_quantity) значения ('" + shop_id + "','"
+ имя_гости + "','" + идентификатор_продукта + "',1)";
rs = bka.executeQuery(sql);
}
}
if (action.compareTo("clear")==0) {
sql="удалить из shop_cart, где cars_shop_id=" + shop_id + " и cars_guest_id='" + Guest_name + "'";
rs = bka.executeQuery(sql);
}
if (action.compareTo("delete")==0) {
sql="удалить из shop_cart, где cars_shop_id=" + shop_id + " и cars_guest_id='"
+ имя_гости + "' и cart_product_id=" + product_id ;
rs = bka.executeQuery(sql);
}
%>
<div align="center"><center>
<table border="0" cellpadding="0" cellpacing="0" width="610"
высота="2">
<тр>
<td><form метод="POST"
action="shop_cart.jsp?action=update&product_type=<%=product_type%>&curp
age=<%=curpage%>">
<table border="0" cellpadding="0" cellpacing="0" width="610"
высота="2">
<тр>
<td width="122" height="7"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="0" width="100%" bordercolorlight="#FFB468"
bordercolordark="#FFFFFF" bgcolor="#FFB468">
<тр>
<td width="100%"><div
align="center"><center><p>Корзина</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%"
бордюрколорлайт="#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 width="122" height="7" style="border: medium"
align="center"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="0" width="100%"
бордюрколорлайт="#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 width="122" height="7" style="border: medium"
align="center"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="0" width="100%"
бордюрколорлайт="#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: medium" align="center"><div align="center"><center><table
border="1" cellpadding="2" cellpacing="0" width="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>
<table border="1" cellpadding="2" cellpacing="0" width="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 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);
целое число;
интервал total_first;
итого=0;
total_first=0;
Строка имя_продукта;
интервал Product_price;
ИНТ Product_discount;
INT Product_first;
интервал корзину_количество;
если (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));
cars_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_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 таблица shop_product
Product_id int номер продукта автоматическая нумерация
shop_id nvarchar номер магазина
Product_name nvarchar название продукта
Product_bb nvarchar введение продукта
Product_price внутренняя рыночная цена
Product_discount int цена со скидкой
Product_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" />
<%
String sql="выберите * из xxx";
ResultSet rs = RegisterBean.executeQuery(sql);
если (rs.next ()) {
рс.закрыть();
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";
Соединение конн = ноль;
ResultSet rs = null;
общественный БКА () {
пытаться {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("bka(): " + e.getMessage());
}
}
public ResultSet ExecuteQuery (String sql) {
рс = ноль;
пытаться {
conn = DriverManager.getConnection(sConnStr, "xxx", "yyy");
Заявление stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
вернуть рупий;
}
}