您的位置:首页网页设计JSP实例 → jsp实现购物程序

jsp实现购物程序

时间:2004/11/7 3:39:00来源:本站整理作者:蓝点我要评论(0)

下面是我用JSP和数据库做的购物车的源程序:



注意:

1、重新计费部分还没有做好,大家自己动手吧!

2、下一版本将用session做。



//shop_cart.jsp



<%@ page="" contenttype="text/html;charset=gb2312">

<%@ page="" session="true">

<%@ page="" language="java" import="java.sql.*">



<%



String product_type;

String action;

int product_id;

int curpage;



//商品类型

if (request.getParameter("product_type")==null){

product_type="all";

}else{

product_type=request.getParameter("product_type");

}



//页数和商品类型参数,可以在“继续购物”时返回到上次购物的页面

if (request.getParameter("curpage")==null){

curpage=1;

}else{

curpage=java.lang.Integer.parseInt(request.getParameter("curpage"));

}



//动作

if (request.getParameter("action")==null){

action="view";

}else{

action=request.getParameter("action");

}



//商品编号

if (request.getParameter("product_id")==null){

product_id=0;

}else{

product_id=java.lang.Integer.parseInt(request.getParameter("product_id"));

}



int bbb;

bbb=1;



Integer num = new Integer(bbb);



//商店编号

session.putValue("shop_id",num);

//顾客username

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.ResultSet rs;





if (action.compareTo("add")==0) {



sql="select cart_quantity from shop_cart where cart_shop_id=" + shop_id



 + " and cart_guest_id='" + guest_name + "' and cart_product_id=" + product_id ;

rs = bka.executeQuery(sql);

if (rs.next()){

int cart_quantity;

cart_quantity=java.lang.Integer.parseInt(rs.getString("cart_quantity"))+1;

sql="update shop_cart set cart_quantity=" + cart_quantity + " where cart_shop_id="  



+ shop_id + " and cart_guest_id='" + guest_name + "' and cart_product_id=" + product_id ;

rs = bka.executeQuery(sql);}

else

{

sql="insert into shop_cart (cart_shop_id,cart_guest_id,cart_product_id,cart_quantity) values ('" + shop_id + "','"  



+ guest_name + "','" + product_id + "',1)";

rs = bka.executeQuery(sql);

}

}



if (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);

}



if (action.compareTo("delete")==0) {

sql="delete from shop_cart where cart_shop_id=" + shop_id + " and cart_guest_id='"



 + guest_name + "' and cart_product_id=" + product_id ;

rs = bka.executeQuery(sql);

}

%>





<table border="0" cellpadding="0" cellspacing="0" width="610"



height="2">










<form method="POST"



action="shop_cart.jsp?action=update&product_type=<%=product_type%>&curp



age=<%=curpage%>">

<table border="0" cellpadding="0" cellspacing="0" width="610"



height="2">


<table



border="1" cellpadding="2" cellspacing="0" width="100%" bordercolorlight="#FFB468"



bordercolordark="#FFFFFF" bgcolor="#FFB468">


<div



align="center">
购物车





<td width="122" height="7" style="border: medium"



align="center"><table

border="1" cellpadding="2" cellspacing="0" width="100%"



bordercolorlight="#FFB468"

bordercolordark="#FFFFFF" bgcolor="#FFB468">






<a



href="shop_list.jsp?shop_id=<%=shop_id%>&product_type=<%=product_type%>



&curpage=<%=curpage%>">继续购物





<td width="122" height="7" style="border: medium"



align="center"><table

border="1" cellpadding="2" cellspacing="0" width="100%"



bordercolorlight="#FFB468"

bordercolordark="#FFFFFF" bgcolor="#FFB468">






<a



href="javascript: document.forms[0].submit()">重新计费





<td width="122" height="7" style="border: medium"



align="center"><table

border="1" cellpadding="2" cellspacing="0" width="100%"



bordercolorlight="#FFB468"

bordercolordark="#FFFFFF" bgcolor="#FFB468">










&curpage=<%=curpage%>">清空购物车










<table

border="1" cellpadding="2" cellspacing="0" width="100%" bordercolorlight="#FFB468"

bordercolordark="#FFFFFF" bgcolor="#FFB468">


确认购买





























<%

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 from shop_cart,shop_product where shop_cart.cart_shop_id=" + shop_id + " and shop_cart.cart_guest_id='" + guest_name + "' and shop_cart.cart_product_id=shop_product.product_id";

rs = bka.executeQuery(sql);

int total;

int total_first;

total=0;

total_first=0;

String product_name;

int product_price;

int product_discount;

int product_first;

int cart_quantity;



if (rs.next()){

while (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));

%>

























<%

total=total+product_discount*cart_quantity;

total_first=total_first+product_discount*cart_quantity*product_first/100;

}

%>




























<table border="1" cellpadding="2" cellspacing="0" width="100%" bgcolor="#FDFEE2"  



bordercolorlight="#FFB468" bordercolordark="#FFFFFF" height="40">









商品名称
市场价
优惠价
数量
小计
定金比例
定金小计
删除
<%=product_name%>
<%=product_price%>
<%=product_discount%>
">
<%=product_discount*cart_quantity%>
<%=product_first>
<%=product_first*product_discount*cart_quantity>
">delete
总计
<%=total%>






定金总计
<%=total_first%>






结余
<%=total-total_first%>












<%

}else{

%>

购物车为空!



<%

}

%>





数据库操作部分



程序用到两个表:

1 shop_cart表

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 int 市场价

product_discount int 优惠价

product_img img 图片

product_status nvarchar 状态

product_first int 定金比例

product_type nvanchar 商品类型

存放商品资料



使用bka.java制成的javabean:bka.class可以提供对数据库的操作。



另外,需在控制面板的系统DSN中注册bka.dsn,

从而可使JSP通过JDBC-ODBC来调用sql数据库。

在页面中调用javabean,基本上可采用以下方式:





<%@ page="" language="java" import="java.sql.*">



<%

String sql="select * from xxx";

ResultSet rs = RegisterBean.executeQuery(sql);

if(rs.next()) {

rs.close();

RegisterBean.closeStmt();

session.putValue("register_message","duplicate name found!");

}

%>

注意应在使用后将rs关闭。





以下是bka.java的源程序。注意在使用前需用javac加以编译成为class文件即javabean.



--shop/bka.java--





package shop;

import java.sql.*;



public class bka {

String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";

String sConnStr = "jdbc:odbc:bka";

Connection conn = null;

ResultSet rs = null;



public bka() {

try {

Class.forName(sDBDriver);

}

catch(java.lang.ClassNotFoundException e) {

System.err.println("bka(): " + e.getMessage());

}

}



public ResultSet executeQuery(String sql) {

rs = null;

try {

conn = DriverManager.getConnection(sConnStr,"xxx","yyy");

Statement stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

}

catch(SQLException ex) {

System.err.println("aq.executeQuery: " + ex.getMessage());

}

return rs;

}

}



相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 没有查询到任何记录。 学习java必学的几门技术jspSmartUpload上传下载全攻略Tomcat5.x中的虚拟主机配置方法利用iText在JSP中生成PDF报表

人气排行 告诉大家JSP连接数据库程序代码JSP单页面网站文件管理器jsp留言板源代码一: 给jsp初学者.在jsp中用bean和servlet联合实现用户注册、使用JSP + JAVABEAN + XML 开发的一个例子jsp在线考试系统-jsp文件 jsp计数器代码JSP/JAVABEAN+TOMCAT4.0.5+MYSQL组合建站总