实现简易购物车

servlet代码

private void addCart(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		// TODO Auto-generated method stub
		int id = Integer.parseInt(request.getParameter("id"));
		//System.out.println(id);
		Food food = foodService.getFoodById(id);
		HttpSession session = request.getSession();
		Map cart = (Map) session.getAttribute("cart");
		
		if (null!=cart) {
			if (cart.get(food)!=null) {
				cart.put(food, cart.get(food)+1);
			}else {
				System.out.println("购物车里没有这个商品");
				cart.put(food, 1);
			}
			
		}else{
			cart=new HashMap();
			cart.put(food, 1);
		}
		
		session.setAttribute("cart", cart);
		
		//request.getRequestDispatcher("/front/detail/clientCart.jsp").forward(request, response);
		response.sendRedirect("front/detail/clientCart.jsp");
			
		
	}

主要通过session实现

 

前端代码

由于servlet处是将购物车里的数据存放在了一个map中因此在前端使用c标签取food具体信息的时候 需要加上key.属性

(其实将信息存储到set中是比较合理的 因为set是无序不重复 可去重 使用map的话 在servlet页面写去重逻辑会稍稍有些复杂 不过也可以通过重写equals和hashcode方法实现)

 

 

其次这里前端页面还用到了c标签里的set属性 主要是为了计算最后总价 是比较方便的了

你可能感兴趣的:(Java,前端)