我最近在学习jsp网站开发。。在学习javaBean的时候,书上有一个例题是购物车,但是书上的购物车代码有错误。但是在我修改过有些功能不实现。我希望给位朋友给解决。在这购物车里必须要用javaBean来做为后台处理提交的东西,例如实现在添加的物品后提交在另一个网页上显示商品的商品名、数量、单价、金额(这里的是每一种购买的商品)。最后还要算出所有商品的总金额。在这个购物车里要实现的功能有添加商品,修改商品,还有不管是在添加商品或是修改商品后可以返回首页再进行商品的选购并且重复的选购的商品不能覆盖原来同样的商品。现在我把我的代码给大家,,希望大家给我该哈,或是给我一个更好的代码谢谢大家了。。
这是首页代码。<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.util.*"%>
<%@ page import="test.GoodsCar" %>
<html>
<body><font size=3>
<jsp:useBean id="GoodsCar" class="test.GoodsCar" scope="session" />
<p>这是百货商场,请将您选择要购买的商品添加到购物车里:
<% String str=response.encodeRedirectURL("add.jsp");%>
<form action="<%=str%>" method=post name=form1>
<select name="item" value="没有选择">
<option value="橘子">橘子
<option value="苹果">苹果
<option value="可乐">可乐
<option value="牛奶">牛奶
<option value="水">水
</select>
<p>请输入购买的数量:
  <input type=text name="mount">
<p>选择计量单位:
  <input type="radio" name="unit" value="个">个
  <input type="radio" name="unit" value="公斤">公斤
  <input type="radio" name="unit" value="罐">罐
  <input type="radio" name="unit" value="瓶">瓶
 <input type=submit value="提交添加">
</form>
<p>您购买的购物车内有如下商品:
<% Hashtable list=GoodsCar.listGoods();
Enumeration e=list.elements();
while(e.hasMoreElements())

 String goods=(String)e.nextElement();
 out.print("<BR>"+goods);
}
%>
<% String str1=response.encodeRedirectURL("selectRemovedGoods.jsp");%>
<form action="<%=str1%>" method=post name=form2>
<input type=submit value="修改购物车内的物品">
</form>
</font>
</body>
</html>          
这是提交商品后的代码
<%@ page contentType="text/html;Charset=GB2312"%>
<%@ page import="java.util.*"%>
<%@ page import="test.GoodsCar" %>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head><body><font size =3>
<jsp:useBean id="GoodsCar" class="test.GoodsCar" scope="session" />
<jsp:setProperty name="GoodsCar" property="item" value="<%=request.getParameter("item")%>" />
<jsp:setProperty name="GoodsCar" property="mount" value="<%=Integer.parseInt(request.getParameter("mount"))%>" />
<jsp:setProperty name="GoodsCar" property="unit" value="<%=request.getParameter("unit")%>" />
名称:<jsp:getProperty name="GoodsCar" property="item" />
 数量:<jsp:getProperty name="GoodsCar" property="mount" />
 单位:<jsp:getProperty name="GoodsCar" property="unit" />
<%
GoodsCar.addGoodstoCar();
%>
<p>您的购物车有如下商品:
<% Hashtable list=GoodsCar.listGoods();
Enumeration e=list.elements();
while(e.hasMoreElements())

 String goods=(String)e.nextElement();
 out.print("<BR>"+goods);
}
%>
<% String str=response.encodeRedirectURL("car.jsp");%>
<br>
<form action ="<%=str%>" method =post name =form1>
<input type =submit value ="继续购物">
</form>
<% String str1=response.encodeRedirectURL("selectRemovedGoods.jsp");%>
<br>
<form action ="<%=str1%>" method =post name =form2>
<input type =submit value ="修改购物车中的商品">
</form>
</font></body></html>这是修改商品的代码
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.util.*"%>
<%@ page import="test.GoodsCar" %>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 2</title>
</head><body>
<font size =3>
<jsp:useBean id="GoodsCar" class="test.GoodsCar" scope="session" />
<%
String GoodsName=request.getParameter("deleteitem");
GoodsCar.deleteGoods(GoodsName);
out.print("您删除了商品:"+GoodsName);
%>
<p>现在购物车中的商品为:
<% 
Hashtable list=GoodsCar.listGoods();
Enumeration e=list.elements();
while(e.hasMoreElements())

  String goods=(String)e.nextElement();
  out.print("<BR>"+goods);
}
%>
<% String str1=response.encodeRedirectURL("car.jsp");%> <form action ="<%=str1%>" method =post name =form1>
<input type =submit value ="继续购物">
</form>
<% String str2=response.encodeRedirectURL("selectRemovedGoods.jsp");%>
<br>
<form action ="<%=str2%>" method =post name =form2>
<input type =submit value ="修改购物车中的商品">
</body></html>
这是修改后商品后显示购物车的商品的代码<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.util.*"%>
<%@ page import="test.GoodsCar" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head><body>
<font size =3>
<jsp:useBean id="GoodsCar" class="test.GoodsCar" scope="session" />
<p>从购物车中选择要删除的商品:
<% String str=response.encodeRedirectURL("removeWork.jsp");%>
<form action="<%=str%>" method=post name=form1>
<select name="deleteitem" value="没有选择">
<option value="橘子">橘子
<option value="苹果">苹果
<option value="可乐">可乐
<option value="牛奶">牛奶
<option value="水">水
</select>
<input type=submit value="提交删除">
</form> 
<p>您的购物车有如下商品:
<% Hashtable list=GoodsCar.listGoods();
Enumeration e=list.elements();
while(e.hasMoreElements())

  String goods=(String)e.nextElement();
out.print("<BR>"+goods);
}
%>
<% String str1=response.encodeRedirectURL("car.jsp");%>
<br>
<form action ="<%=str1%>" method =post name =form2>
<input type =submit value ="继续购物">
</font></body></html>
这是JAVAbean代码
package test;
import java.util.*;
import java.io.*;
public class GoodsCar implements Serializable

Hashtable list=new Hashtable();
String item="";
int mount=0;
String unit="";
  void GoodsCar(){
}
public void setItem(String newItem){
item=newItem;
}
public String getItem(){
return item;
}
public void setUnit(String newUnit){
unit=newUnit;
}
public String getUnit(){
return unit;
}
public void setMount(int m){
mount=m;
}
public int getMount(){
return mount;
}
public void addGoodstoCar()
{
String things="商品名称:"+item+" 数量:"+mount+"单位:"+unit;
list.put(item,things);
}
public Hashtable listGoods()
{
return list;
}
public void deleteGoods(String s)
{
list.remove(s);
}
}
谢谢大家了。。