日期:2014-05-16  浏览次数:20373 次

jsp中用session写简单购物车

流程:
1、读取商品id
2、通过id查找出商品对象
3、建立购物车对象(属性包括商品和数量)
4、将步骤2中查找出的对象装进购物车对象中,并默认添加数量为1个。
5、建立一个购物车list,判断list是否为空。第一次进入肯定为空,那么就new一个list,然后list.add()。这中间包括一个判断过程,假如添加两件相同的商品,那么商品的数量要增加,价格要增加。
???? 判断是否是同一个商品时,可以通过id是否相同来判断。

?

?

?

	request.setCharacterEncoding("UTF-8");
	response.setCharacterEncoding("UTF-8");

	String id = request.getParameter("id");

	ProDAO pDao = new ProDAO();
	Product pro = pDao.findById(id);
	
	ShopCar sc = new ShopCar();
	sc.setPro(pro);
	sc.setNum(1);


		List<ShopCar> shopList = (List<ShopCar>) session.getAttribute("shopList");
		if (shopList == null) {
			shopList = new ArrayList<ShopCar>();
		}
		boolean flag = false;
		for (ShopCar s : shopList) {
			if (s.getPro().getId() == Integer.valueOf(id)) {
				flag = true;
				s.setNum(s.getNum() + 1);
				s.getPro().setPrice(s.getPro().getPrice() + s.getPro().getPrice());
				break;
			}
		}
		if (!flag) {
			shopList.add(sc);
		}

	   session.setAttribute("shopList", shopList);
	   response.sendRedirect("car.jsp");

?

?

其中需要注意的就是是否为null的判断。如果为null就new一个。

?

?

?

个人见解,大家发现有问题的话请留言指教。