jsp购物车系统案例



jsp购物车系统。

<html>
<body>
<center>
商品显示页,请选购你喜欢的商品
</center>
<table>
<tr>
<td width=”190″>
<img src=”images/image1.jpg” width=”150″ height=”150″/>
</td>
<td>
<img src=”images/image2.jpg” width=”150″ heigth=”150″/>
</td>
<td>
HP笔记本电脑
</td>
<td>
移动硬盘
</td>
<td>
价格900.0
</td>
<!–传递”HP笔记本电脑”的参数–>
<a href=”/onlineshoppingcart/servlet/addShoppingCart?id=001&name=HP笔记本电脑&price=5999.0″>
<!–传递”移动硬盘”的参数–>
……
</tr>
</table>
</body>
</html>
//商品类
public class CartItem{
private String name;
private int quantity;
private double price;
private String id;
private String desc;
//构造函数,getter和setter方法
}
//网络购物车类
public class ShoppingCart{
private ArrayList<CartItem> cart;
public ShoppingCart(){
cart=new ArrayList<CartItem>();
}
public ArrayList<CartItem> getCart(){
return cart;
}
//添加商品到购物车
public void addCartItem(CartItem item){
CartItem oldItem=null;
//遍历购物车里的商品
for(int i=0;i<cart.size();i++){
oldItem=cart.get(i);
//当所要添加的商品类型与购物车的商品类型相同
if(oldItem.getId().equals(item.getId())){
//修改商品数量
oldItem.setQuantity(oldItem.getQuantity()+item.getQuantity());
return ;
}
}
//当购物车里该商品为空
cart.add(item);
}
}
public boolean removeCartItem(String id){
CartItem item=null;
for(int i=0;i<cart.size();i++){
item=cart.get(i);
//当所要删除的商品类型与购物车里商品的类型相同时
if(item.getId().equals(id)){
cart.remove(i);
return true;
}
}
return false;
}
public double getTotal(){
Iterator<CartItem> it=cart.Iterator();
double sum=0.0;
CartItem item=null;
while(it.hasNext()){
item=it.next();
sum=sum+item.getSum();
}
return sum;
}
//添加商品到购物车
public class AddShoppingCartServlet extends HttpServlet{
//编写doGet()方法
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
//调用doPost()方法
doPost(request,response);
}
//编写doPost()方法
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletExpcetion{
//设置编码方式
request.setCharacterEncoding(“uft-8″);
//获取Session对象
Session session=request.getSession();
//得到购物车
ShoppingCart cart=(ShoppingCart)session.getAttributes(“shoppingcart”);
//当购物车为空时
if(cart==null){
//新建一个购物车
cart=new ShoppingCart();
session.setAttribute9(“shoppingcart”,cart);
}
String id=request.getParameter(“id”);
String name=request.getParameter(“name”);
String quantity=request.getParameter(“q”);
String price=request.getParameter(“price”);
//检验所要加入的商品的信息
if(StringTool.validateNull(id)||StringTool.validateNull(name)||StringToolUtil.validateNull(price)){
printError(requst,response);
return ;
}
id=StringTool.filterHtml(id);
name=StringTool.filterHtml(name);
try{
if(StringTool.validateNull(quantity)){
//g根据所传入的商品信息创建商品,然后利用addCartItem()方法添入购物车
cart.addCartItem(new CartItem(id,name,1,Double.parseDouble(price)));
}else{
//根据所传入商品信息创建商品,然后利用addCartItem()方法添加购物车
cart.addCartItem(new CartItem(id,name,Integet.parseInt(quantity),Double.parseDouble(price)));
}
}catch(NumberFormatException e){
printError(request,response);
return;
}
response.sendRedirect(“/onlineshoppingcart/servlet/getShoppingCart”);
}
//当商品添加失败时,会转到的地址
}
//显示商品购物车信息:GetShoppingCartServlet.java
public class GetShoppingCartServlet extends HttpServlet{
//编写doGet()方法
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
//调用doPost()方法
doPost(request,response);
}
//编写doPost()方法
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletExpcetion{
HttpSession session=request.getSession();
//获取购物车
ShoppingCart cart=(ShoppingCart)session.getAttribute(“shoppincart”);
//设置页面编码
response.setContentType(“text/html;charset=utf-8″);
PrintWriter out=response.getWriter();//获取输出流
out.println(<html>);
out.println(“<head><title>display shoppingcart!</title></head>”)
out.println(“<a href=\”/onlineshoppingcart/showMerchandise.html\”>浏览商品,添加到购物车</a><br/>”);
return;
}
//当购物车不为空时
else{
out.println(“<h1>显示购物车内容</h1>”);
out.println(“<a href=\”/\onlineshoppingcart\showMerchandise.html”>浏览商品,添加到购物车</a><br/>”");
printCartItem(out,cart);
}
out.println(“</body>”);
out.println(“</html>”);
out.flush();
out.close();
}
//显示购物车商品信息的方法
private void printCartItem(PrintWriter out,ShoppingCart cart){
//获取购物车里的商品容器
ArrayList<CartItem> items=cart.getCart();
//定义一个商品对象
CartItem item=null;
//定义一个表格
out.println(“<table width=\”500\” border=\”1\” align=\”left\”>);
out.println(“<tr>”);
out.println(“<td width=\”200\”>商品名称</td>”);
out.println(“<td width=\”100\”>商品价格</td>”);
out.println(“<td width=\”100\”>商品数量</td>”);
out.println(“<td width=\”100\”>商品小计</td>”);
out.println(“</tr>”);
//遍历容器
for(int i=0;i<items.size();i++){
//得到商品
out.println(“<tr>”);
out.println(“<td>”+item.getName()+”</td>”);//获取商品名称
out.println(“<td>”+item.getPrice()+”</td>”);//获取商品名称
out.println(“<td>”+item.getQuantity()+”</td>”);//获取商品数量
out.println(“<td>”+item.getSum()+”</td>”);//获取商品小计
out.println(“</tr>”);
}
out.println(“</tr>”);
//输出购物车里所有商品的总价格
out.prinltn(“<td colspan=\”4\”>”总计:”+cart.getTotal()+”元”+</td>”);
out.println(“</tr>”);
out.println(“</table>”);
}
}