(转载)jsp实现购物车

转自:http://developer.51cto.com/art/200907/133510.htm

JSP Session 机制购物车之一构建的商品类

◆写一个Goods类,并定义商品的各个属性,返回商品属性的方法,以及商品对象进行比较的方法

◆Goods.java

  1. package com.viita.Shop;  
  2.  
  3. public class Goods implements Comparable {  
  4.  

◆初始化各成员变量

  1. private String Id = null;//商品的编号Id  
  2. private String name = null;//商品的名称name  
  3. private float price = 0.00F;//商品的价格price  
  4. private int number = 0;//商品的数量number  
  5. public Goods(String Id, String name, float price, int number) {  
  6. this.Id = Id;  
  7. this.name = name;  
  8. this.price = price;  
  9. this.number = number;  
  10.  
  11. }  
  12. public String getId() //返回订购商品的编号Id  
  13. {  
  14. return this.Id;  
  15. }  
  16. public String getName() //返回订购商品的名称name  
  17. {  
  18. return this.name;  
  19. }  
  20. public float getPrice() //返回订购商品的价格price  
  21. {  
  22. return this.price;  
  23. }  
  24. public int getNumber() //返回订购商品的数量number  
  25. {  
  26. return this.number;  
  27. }  
  28. public int compareTo(Object m) {  
  29. // TODO Auto-generated method stub  
  30.  
  31. Goods n = (Goods) m;  
  32. int comRs = Id.compareTo(n.Id);  
  33. return comRs;  
  34.  
  35. }  
  36.  
  37. }  
  38.  

JSP Session 机制购物车之二购物车实现

◆首先建立Goods(商品)对象goods,并建立建立ArrayList对象ay

◆通过ArrayList对象的方法add()将商品对象添加到ArrayList对象ay中

◆由于ArrayList对象是具有添加和删除成员的方法,从而实现多个商品存储管理于ArrayList对象

◆将ArrayList对象ay存储于session对象当中,实现购物车功能

◆shopcar.jsp

  1. <%@ page language="java" import=" java.sql.*,com.viita.Shop.*,java.util.*" pageEncoding="GBK"%> 
  2. <%  
  3.  

◆设置编码格式

  1. request.setCharacterEncoding("GBK");  
  2.  

◆获取参数信息

  1. String id = request.getParameter("id");  
  2. String name = request.getParameter("name");  
  3. int number = java.lang.Integer.parseInt(request.getParameter("number"));  
  4. float pricejava.lang.Float.parseFloat(request.getParameter("price")); 

◆建立商品对象和ArrayList对象

  1. Goods goods = new Goods(id,name,price,number);  
  2. ArrayList ay = null

◆如果session中从未写入过,则将建立的商品对象添加到ArrayList对象当中,并写入 session

  1. if((ArrayList)session.getAttribute("car")==null)  
  2. {  
  3. ay = new ArrayList();  
  4. ay.add(goods);  
  5. session.setAttribute("car",ay);  
  6. response.sendRedirect("order_index.jsp");  

◆如果写如过,则将商品对象添加到ArrayList对象当中,并写入 session

  1. else  
  2. {  
  3. ay=(ArrayList)session.getAttribute("car"); 

◆如果ArrayList 对象为空,则直接添加到ArrayList对象当中

  1. if(ay.isEmpty())  
  2. {  
  3. ay.add(goods);  
  4. session.setAttribute("car",ay);  
  5. response.sendRedirect("order_index.jsp");  

◆如果ArrayList 对象不为空,则判断购入商品是否已经存在于车中

  1. else  
  2. {  
  3. Iterator it = ay.iterator();  
  4. for(int i = 0;i<ay.size();i++) //下面还有另一种遍历方法  
  5. {  
  6. Goods shop = (Goods)it.next(); 

◆如果购入商品已经存在,则打印输入提示信息

  1. if(shop.compareTo(goods)==0)  
  2. {  
  3. out.println("<script>alert('你已经订购了此商品!');window.close();script>");  

◆如果购入商品不存在,则直接将商品添加到ArrayList对象当中,并写入 session

  1. else  
  2. {  
  3. ay.add(goods);  
  4. session.setAttribute("car",ay);  
  5. response.sendRedirect("order_index.jsp");  
  6. }  
  7. }  
  8. }  
  9. }   
  10. %> 

JSP Session 机制购物车之三删除商品

◆对购物车中的商品进行删除操作

◆removeGoods.jsp

  1. <%@ page language="java" import="java.sql.*,com.viita.Shop.*,java.util.*" pageEncoding="GBK"%> 
  2. <%  

◆设置编码格式

  1. request.setCharacterEncoding("gb2313"); 

◆获取参数信息

  1. String id = request.getParameter("id");  
  2. String name = request.getParameter("name");  
  3. float price = java.lang.Float.parseFloat(request.getParameter("price"));  
  4. int number = java.lang.Integer.parseInt(request.getParameter("number")); 

◆创建符合条件参数要删除的商品对象

  1. Goods goods = new Goods(id,name,price,number); 

◆获取session 中存储的ArrayList对象

  1. ArrayList ay = (ArrayList)session.getAttribute("car");  
  2. Iterator it = ay.iterator(); 

◆遍历ArrayList对象,并将ArrayList对象中的元素和创建的符合参数条件要删除的商品进行比较

  1. for(int i = ay.size();it.hasNext();i--)  
  2. {  
  3. Goods shop = (Goods)it.next(); 

◆查询是否有ArrayList对象中的元素与要删除的商品相同

  1. if(shop.compareTo(goods)==0)  
  2. {  
  3. int index = ay.indexOf(shop);  

◆如果ArrayList对象已经为空,则跳转

  1. if(ay.isEmpty())  
  2. {  
  3. response.sendRedirect("order_index.jsp");  

◆如果ArrayList对象不为空,则从其中移去要与要删除的商品条件相符的元素,并重新写session

  1. else  
  2. {  
  3. ay.remove(index);  
  4. session.setAttribute("car",ay);  
  5. response.sendRedirect("order_index.jsp");  
  6. }  
  7. }  
  8. else  
  9. {  
  10. out.print("程序异常");  
  11. }  
  12. }  
  13. %> 
posted @ 2011-12-06 10:38  agile_work  阅读(729)  评论(0编辑  收藏  举报