package chatroom;
import java.util.HashMap;
import javax.servlet.http.*;public class testCartBean
{
private HashMap cart; public testCartBean()
{
cart= new HashMap();
}
/**将Request对象中的数据输入到JAVABean中
*@patrm clientRequest 从客户端传送来的数据
*/
public void processRequest(HttpServletRequest clientRequest)
{
String itemName,strItemNumber,submit;
int itemNumber=0;
//获得客户端数据
submit= clientRequest.getParameter("submit");
//点击clear按钮的情况
if(submit!=null)
if(submit.equals("clear"))
{
clear();
return ;
}
itemName= clientRequest.getParameter("itemName");
strItemNumber=clientRequest.getParameter("itemNumber"); if(itemName!=null)
{
try{
itemNumber= Integer.parseInt(clientRequest.getParameter("itemNumber"));
}
catch(NumberFormatException e)
{ itemNumber= 1;}
}
//当用户使用回车,而不是点击提交按钮的情况
if(submit==null)
{
addItem(itemName,itemNumber);
return;
}
//点击add按钮的情况
if(submit.equals("add"))
{
addItem(itemName,itemNumber);
return;
}
//点击remove按钮的情况
if(submit.equals("remove"))
{
removeItem(itemName);
}
//点击update按钮的情况
if(submit.equals("update"))
{
updateItem(itemName,itemNumber);
}
} /**向购物车添加商品
*@param itemName 商品名
*/
public void addItem(String itemName)
{
if(cart.get(itemName)==null)
{
cart.put(itemName,new Integer(1));
// System.out.println(cart.get(itemName));
// System.out.println(cart.get(itemName).toString());
}
else
{
int oldNumber= ((Integer)(cart.get(itemName))).intValue();
cart.remove(itemName);
cart.put(itemName,new Integer(oldNumber+1));
}
}
/**
*向购物车添加商品
*@param itemName 商品名
*@param itemNumber 商品数量
*/
public void addItem(String itemName,int itemNumber)
{
int oldNumber=0;
try
{
oldNumber= ((Integer)(cart.get(itemName))).intValue();
}
catch(NullPointerException e){}
cart.put(itemName,new Integer(itemNumber+oldNumber));
} //清除购物车中的商品
public void clear()
{
cart.clear();
}
/**
*更新购物车中某一项商品的数量
*@param itemName 商品名
*@param itemNumber 商品数量
*/
public void updateItem(String itemName,int itemNumber)
{
cart.remove(itemName);
cart.put(itemName,new Integer(itemNumber));
}
public void removeItem(String itemName)
{
cart.remove(itemName);
}
/**
*返回一个包含有购物车数据的HashMap对象
*@return 一个包含有购物车数据的HashMap对象
*/
public HashMap getCart()
{
HashMap returnCart= new HashMap(cart);
return returnCart;
}
public int getGoodsNumber(String goodsName)
{
int goodsNumber=0;
try{
goodsNumber= ((Integer)(cart.get(goodsName))).intValue();
}
catch(NullPointerException e)
{ return 0;}
return goodsNumber;
}
}
import java.util.HashMap;
import javax.servlet.http.*;public class testCartBean
{
private HashMap cart; public testCartBean()
{
cart= new HashMap();
}
/**将Request对象中的数据输入到JAVABean中
*@patrm clientRequest 从客户端传送来的数据
*/
public void processRequest(HttpServletRequest clientRequest)
{
String itemName,strItemNumber,submit;
int itemNumber=0;
//获得客户端数据
submit= clientRequest.getParameter("submit");
//点击clear按钮的情况
if(submit!=null)
if(submit.equals("clear"))
{
clear();
return ;
}
itemName= clientRequest.getParameter("itemName");
strItemNumber=clientRequest.getParameter("itemNumber"); if(itemName!=null)
{
try{
itemNumber= Integer.parseInt(clientRequest.getParameter("itemNumber"));
}
catch(NumberFormatException e)
{ itemNumber= 1;}
}
//当用户使用回车,而不是点击提交按钮的情况
if(submit==null)
{
addItem(itemName,itemNumber);
return;
}
//点击add按钮的情况
if(submit.equals("add"))
{
addItem(itemName,itemNumber);
return;
}
//点击remove按钮的情况
if(submit.equals("remove"))
{
removeItem(itemName);
}
//点击update按钮的情况
if(submit.equals("update"))
{
updateItem(itemName,itemNumber);
}
} /**向购物车添加商品
*@param itemName 商品名
*/
public void addItem(String itemName)
{
if(cart.get(itemName)==null)
{
cart.put(itemName,new Integer(1));
// System.out.println(cart.get(itemName));
// System.out.println(cart.get(itemName).toString());
}
else
{
int oldNumber= ((Integer)(cart.get(itemName))).intValue();
cart.remove(itemName);
cart.put(itemName,new Integer(oldNumber+1));
}
}
/**
*向购物车添加商品
*@param itemName 商品名
*@param itemNumber 商品数量
*/
public void addItem(String itemName,int itemNumber)
{
int oldNumber=0;
try
{
oldNumber= ((Integer)(cart.get(itemName))).intValue();
}
catch(NullPointerException e){}
cart.put(itemName,new Integer(itemNumber+oldNumber));
} //清除购物车中的商品
public void clear()
{
cart.clear();
}
/**
*更新购物车中某一项商品的数量
*@param itemName 商品名
*@param itemNumber 商品数量
*/
public void updateItem(String itemName,int itemNumber)
{
cart.remove(itemName);
cart.put(itemName,new Integer(itemNumber));
}
public void removeItem(String itemName)
{
cart.remove(itemName);
}
/**
*返回一个包含有购物车数据的HashMap对象
*@return 一个包含有购物车数据的HashMap对象
*/
public HashMap getCart()
{
HashMap returnCart= new HashMap(cart);
return returnCart;
}
public int getGoodsNumber(String goodsName)
{
int goodsNumber=0;
try{
goodsNumber= ((Integer)(cart.get(goodsName))).intValue();
}
catch(NullPointerException e)
{ return 0;}
return goodsNumber;
}
}
<%@ page import="java.util.*"%><html>
<head>
<title>
testCart
</title>
</head>
<jsp:useBean id="cart" scope="session" class="chatroom.testCartBean"/>
<body>
<center>
<p>请选择商品:</p>
<form name="testCart" method="post" action="testCart.jsp">
<select name="itemName" size=10>
<option value="a">a dsaf
<option value="s">s sadf
<option value="d">d dfdsf
<option value="f">f dsafdsa
<option value="g">g sdfdsafsdaf
<option value="h">h sdfdfdf sdf
<option value="j">j dasfsadfsadf
<option value="k">k sdaf
<option value="l">l sdfs
<option value="r">r afdsafsdf
</select>
<br> <br>
请填入所需要的数量:
<input name="itemNumber" type="text" size="4" maxlength="4">
<br> <br> <br>
<input type="submit" name="submit" value="add">
<input type="submit" name="submit" value="remove">
</form>
目前您的购物车中的商品有:
<a href="testCart.jsp?submit=clear">清除购物车</a>
</center>
<table border=1 height=20 valign="center">
<%
cart.processRequest(request);
//从购物车HashMap中得到一个包含所有商品名称的迭代器
HashMap myCart= cart.getCart();
Set cartKeySet= myCart.keySet();
Iterator ci= cartKeySet.iterator(); while(ci.hasNext())
{
String itemName,strOut;
Integer itemNumber; itemName=(String)ci.next(); if(itemName!=null)
{
itemNumber= (Integer)myCart.get(itemName); strOut= new String("");
strOut+= "<tr><td>"+itemName;
strOut+= "High Programming 共"+itemNumber+"本";
strOut+= "</td><td align=center>";
strOut+= "<a href=testCart.jsp?itemName=";
strOut+= itemName;
strOut+= "&submit=remove>删除</a>";
strOut+= "</td><td aling=center>修改为:</td>";
strOut+= "<td align=center><form action=testCart.jsp method=post>";
strOut+= "<input type=hidden name=itemName value=";
strOut+= itemName;
strOut+= "><input type=text name=itemNumber maxlength=4 size=4 value=";
strOut+= itemNumber.intValue();
strOut+= "><input type=submit value=update name=submit></form></td></tr>";
out.println(strOut);
}
}
Enumeration a= request.getParameterNames();
while(a.hasMoreElements())
{
System.out.println(a.nextElement());
}
%>
</table>
</body>
</html>
谢谢,有事先走,回来结帐
owenyang(阿炳)
这样是不是太耗资源了,
还要有关于订单的各种信息:书名,订单号,数量,付款方式,订购人员等等
在实现购物车时,可以通过session存储当前用户所要购买书的信息;定义一个shoppingCart类,这个类中包含各种下订单时所要用到的信息的私有变量,然后将一个包含订单信息的shoppingCart类型的变量存储到session中。当用户真正的下订单时,再将这些信息从session中取出提交给数据库,将库存,订单等信息存入数据库中。