这个应该类似购物车的暂存/**
* <p>Title: 购物车</p>
* <p>Description: 实现对商城购物车的操作</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: 公司</p>
* @author 网络信息部丰
* @version 1.0
*/
package cartbean;
import java.util.*;
import java.sql.*;
import sqlbean.*;
public class CartBean {
protected Hashtable itemHashtable = new Hashtable();
public CartBean() {
}
public void setItemHashtable(Hashtable ht)
{
itemHashtable=ht;
}
public Hashtable getItemHashtable()
{
return itemHashtable;
} /**
* 增加上商品到购物车
* @param id int 商品ID
* @param desc String 商品ISBN编号
* @param price double 商品单价
* @param qty int 数量
*/
public void addItem(int id,String isbn,String desc ,double price,int qty)
{
String[] item={Integer.toString(id),isbn,desc,Double.toString(price),Integer.toString(qty)};
if(itemHashtable.containsKey(Integer.toString(id)))
{
String[] workItem=(String[])itemHashtable.get(Integer.toString(id));
int workQty=Integer.parseInt(workItem[4]);
qty=qty+workQty;
workItem[4]=Integer.toString(qty);
}
else
itemHashtable.put(Integer.toString(id),item); } /**
* 修改购物车某种商品的数量
* @param id int 商品ID
* @param desc String 商品ISBN编号
* @param price double 商品单价
* @param qty int 数量
*/
public void changeItem(int id,int qty)
{
if(itemHashtable.containsKey(Integer.toString(id)))
{
String[] workItem=(String[])itemHashtable.get(Integer.toString(id));
workItem[4]=Integer.toString(qty);
}
} /**
* 删除购物车中的某种商品
* @param id int
*/
public void removeItem(int id)
{
if(itemHashtable.containsKey(Integer.toString(id)))
{
itemHashtable.remove(Integer.toString(id));
}
}
public Enumeration getEnumeration()
{
return itemHashtable.elements();
} /**
* 购物车商品总金额
* @return double
*/
public double getCost()
{
Enumeration enum=itemHashtable.elements();
String[] workItem;
double totalCost=0.00;
while(enum.hasMoreElements())
{
workItem=(String[])enum.nextElement();
totalCost=totalCost+(Integer.parseInt(workItem[4])*Double.parseDouble(workItem[3]));
}
return totalCost;
} /**
* 购物车商品类数
* @return int
*/
public int getNumofItem()
{
Enumeration enum=itemHashtable.elements();
String[] workItem;
int num=0;
while(enum.hasMoreElements())
{
workItem=(String[])enum.nextElement();
num=num+Integer.parseInt(workItem[4]);
}
return num;
} /**
* 清空购物车记录
*/
public void ClearItem()
{
itemHashtable.clear();
} public void InsertCart(CartBean a,int PPUserID)
{ Connection con;
try
{
Conn conn=new Conn();
con=conn.getConn();
Statement statement=con.createStatement();
Enumeration b=a.getEnumeration();
String c[];
while(b.hasMoreElements())
{
c=(String[])b.nextElement();
String values;
values=PPUserID+","+c[0]+","+c[3]+","+c[4];
statement.executeUpdate("insert into Cart(UserID,ProductID,Price,Num) values("+values+")");
}
conn.FreeConn();
}//try
catch(Exception e)
{
System.out.println(e.getMessage());
} //catch
}
}
* <p>Title: 购物车</p>
* <p>Description: 实现对商城购物车的操作</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: 公司</p>
* @author 网络信息部丰
* @version 1.0
*/
package cartbean;
import java.util.*;
import java.sql.*;
import sqlbean.*;
public class CartBean {
protected Hashtable itemHashtable = new Hashtable();
public CartBean() {
}
public void setItemHashtable(Hashtable ht)
{
itemHashtable=ht;
}
public Hashtable getItemHashtable()
{
return itemHashtable;
} /**
* 增加上商品到购物车
* @param id int 商品ID
* @param desc String 商品ISBN编号
* @param price double 商品单价
* @param qty int 数量
*/
public void addItem(int id,String isbn,String desc ,double price,int qty)
{
String[] item={Integer.toString(id),isbn,desc,Double.toString(price),Integer.toString(qty)};
if(itemHashtable.containsKey(Integer.toString(id)))
{
String[] workItem=(String[])itemHashtable.get(Integer.toString(id));
int workQty=Integer.parseInt(workItem[4]);
qty=qty+workQty;
workItem[4]=Integer.toString(qty);
}
else
itemHashtable.put(Integer.toString(id),item); } /**
* 修改购物车某种商品的数量
* @param id int 商品ID
* @param desc String 商品ISBN编号
* @param price double 商品单价
* @param qty int 数量
*/
public void changeItem(int id,int qty)
{
if(itemHashtable.containsKey(Integer.toString(id)))
{
String[] workItem=(String[])itemHashtable.get(Integer.toString(id));
workItem[4]=Integer.toString(qty);
}
} /**
* 删除购物车中的某种商品
* @param id int
*/
public void removeItem(int id)
{
if(itemHashtable.containsKey(Integer.toString(id)))
{
itemHashtable.remove(Integer.toString(id));
}
}
public Enumeration getEnumeration()
{
return itemHashtable.elements();
} /**
* 购物车商品总金额
* @return double
*/
public double getCost()
{
Enumeration enum=itemHashtable.elements();
String[] workItem;
double totalCost=0.00;
while(enum.hasMoreElements())
{
workItem=(String[])enum.nextElement();
totalCost=totalCost+(Integer.parseInt(workItem[4])*Double.parseDouble(workItem[3]));
}
return totalCost;
} /**
* 购物车商品类数
* @return int
*/
public int getNumofItem()
{
Enumeration enum=itemHashtable.elements();
String[] workItem;
int num=0;
while(enum.hasMoreElements())
{
workItem=(String[])enum.nextElement();
num=num+Integer.parseInt(workItem[4]);
}
return num;
} /**
* 清空购物车记录
*/
public void ClearItem()
{
itemHashtable.clear();
} public void InsertCart(CartBean a,int PPUserID)
{ Connection con;
try
{
Conn conn=new Conn();
con=conn.getConn();
Statement statement=con.createStatement();
Enumeration b=a.getEnumeration();
String c[];
while(b.hasMoreElements())
{
c=(String[])b.nextElement();
String values;
values=PPUserID+","+c[0]+","+c[3]+","+c[4];
statement.executeUpdate("insert into Cart(UserID,ProductID,Price,Num) values("+values+")");
}
conn.FreeConn();
}//try
catch(Exception e)
{
System.out.println(e.getMessage());
} //catch
}
}
解决方案 »
- 帮忙解决下这个中文字符乱码的问题
- javamail 发送邮件 Caused by: javax.mail.MessagingException: Unknown SMTP host: smtp.163.com
- jsp 筛选字符串问题
- XLoadTree 想说爱你!但。。。。。你怎么不看我一眼!
- 莫名其妙的jsp页面问题,真是见鬼了
- JFreeChart TimeSeries显示数据问题
- 请问,怎么实现使一servlet一直在后台运行,直到浏览器关闭。
- 请各位大虾推荐几个学习EJB的中文网站,从那上面可以下载中文教程,谢谢!
- jsp访问ACCESS的中文问题
- TOMCAT4.0.3下的日志?????
- 移植程序连接数据库时出问题,不知道怎么会事啊,一会要出丑了。。。急
- 日期问题。
<BODY LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
<jsp:useBean id="cart" scope="session" class="cartbean.CartBean"/>
....
if(request.getParameter("pp_ID")!=null)
{//增加
//double price=new Double(request.getParameter("pp_Price"));
String pp_Name=request.getParameter("pp_Name");
byte[] tmpbyte=pp_Name.getBytes("ISO8859_1");
pp_Name=new String(tmpbyte);
String pp_price=request.getParameter("pp_price");
String pp_isbn=request.getParameter("pp_isbn");cart.addItem(Integer.parseInt(request.getParameter("pp_ID")),pp_isbn,pp_Name,Double.parseDouble(pp_price),1);
}////在jsp中部分代码
up
up
这个说明 在你没有关闭浏览器的时候 你的东西一直包存的 刚才附加的代码只是说明怎样使用bean而已 你在上一页已经插入数据保存的话 打开其他页面时 不用传递什么 也可以直接读取出来的
<head>
<script language=javascript>
function check(form)
{
form.Result.value='B244|2424,C533|2324';
alert(form.Result.value);
form.submit();
return true;
}
</script>
</head>
<body>
<jsp:useBean id="buff" scope="session" class="testBuff">
</jsp:useBean>
<form action="#" method="POST" name="form1">
<table border="0" align="center" cellpadding="0" cellspacing="0" width="98%">
<%
if(request.getParameter("Result")!=null)
{
String values=request.getParameter("Result");
String[] str=values.split(",");
for(int i=0;i<str.length;i++)
{
String tmp[]=str[i].split("|");
buff.addItem(tmp[0],tmp[1]);
}
}.......
<tr align="right">
<td width=100% bgcolor="#ffffff" colspan="4" valign="middle" height="20" bordercolordark="#FFFFFF">
<p align="right">
<font color="#000000">共8步 第1步</font>
<img src="prev.gif" border=0></a>
<a href="test.jsp?Page=2&PageCount=8"
onclick="return check(form1);" >
<img src="next.gif" border=0></a>
</td>
</tr>
<tr align="center">
<td colspan="4">
<input type="hidden" name="Result" value=""/>
</td>
</tr>
</table></form></body></html>
调试跟踪结果:request.getParameter("Result")一直为空,为什么?应如何解决?
存储数据有不少办法,隐藏字段是个不错的选择。在点击下一步时,把表单所有的字段值存入隐藏字段(用特殊的分隔符隔开),在下一页再读取并解析。不过这种做法实在是不可取。还是到服务器访问一下吧,存到session里比什么都强。
但在js中能存入session吗?因为我的数据在存入之前要对数据进行判断和处理呀?
如何在js中把数据加入session中?
这问题需要JS处理了
存储数据有不少办法,隐藏字段是个不错的选择。在点击下一步时,把表单所有的字段值存入隐藏字段(用特殊的分隔符隔开),在下一页再读取并解析。不过这种做法实在是不可取。还是到服务器访问一下吧,存到session里比什么都强。
那应该如何存入?
但在js中能存入session吗?因为我的数据在存入之前要对数据进行判断和处理呀?
如何在js中把数据加入session中?
1、
用jsp的session,在javascript中如何用:
<script><%...%></script>这样吗?我这样用,取出来的时候依然为空呀??
2、用隐藏域
<script>form.hidevalue='xxxx';</script>但我在request是依然为空,????
你先看看我前面写的那些前提和我的具体情况
up!!!!!!!!!!!!!!!!!!!!!!!!!
up!!!!!!!!!!!!!!!!!!!!!!!!!
如果只是为了数据的判断和处理而只用JS来处理,显然是舍本逐末了。很多时候需要客户端和服务器端的完美结合,才能更好的解决问题。
只有把客户端的灵活性和服务器端的无所不能结合到一块,才是解决问题的好办法。