java web 开发 购物车功能的实现

为了方便自己以后复习,所以写的比较仔细,记录下自己的成长。。。。。

既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表、

通过查询在浏览器上显示

 基本显示已经做好了,现在进入我们的重头戏,Servlet

点击放入购物车时,将访问Servlet

购物车代码

 1 package com.servlet;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.util.HashMap;
 6 import java.util.Map;
 7 
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 
13 import com.dao.GoodsDAO;
14 import com.entity.Goods;
15 import com.entity.GoodsItem;
16 
17 public class PutCarServlet extends HttpServlet {
18 
19     public void doGet(HttpServletRequest request, HttpServletResponse response)
20             throws ServletException, IOException {
21 
22         response.setContentType("text/html");
23         PrintWriter out = response.getWriter();
24         
25         doPost(request, response);
26     }
27 
28     public void doPost(HttpServletRequest request, HttpServletResponse response)
29             throws ServletException, IOException {
30 
31         response.setContentType("text/html");
32         PrintWriter out = response.getWriter();
33         //得到编号
34         String id = request.getParameter("goodsID");
35         
36         //通过编号得到商品对象的所有信息
37         GoodsDAO dao = new GoodsDAO();
38         Goods g = dao.getGoodsByID(id);
39         //将商品放入购物车
40         
41         //map集合 就是购物车
42         // map<键,值>  商品编号作为键  商品项作为值
43         
44         //1.判断是否存在购物车
45         //购物车是放在session中的
46         //从session去取购物车
47         Map<String,GoodsItem> gwc = (Map<String,GoodsItem>)request.getSession().getAttribute("gwc");
48         //判断是否存在
49         if(gwc==null){
50             //创建购物车
51              gwc = new HashMap<String, GoodsItem>();
52         }
53         
54         //将商品项放入购物车
55         //put(商品编号,商品项) 向gwc集合中添加数据
56         //你要想 购物车中是否已存在该商品
57         // 说白了 就是在gwc集合中去匹配是否存在这样一个商品项 ==》去集合中匹配是否存在这样一个商品编号的key
58         
59         //判断是否存在商品编号的键
60     
61         if(gwc.containsKey(id)){
62             //存在
63             //设置数量+1
64             
65             //通过键 获得值
66             //键为商品编号  值为商品项 商品项里面包含商品对象信息 和数量信息
67             GoodsItem spx = gwc.get(id);
68             //得到原来的数量
69             int yldsl = spx.getCount();
70             //在原来的数量上+1
71             gwc.get(id).setCount(yldsl+1);
72             
73 //             gwc.get(id).setCount(gwc.get(id).getCount()+1)  ;
74             
75         }else{
76             //不存在
77             //创建一个新的商品项 数量为1
78             GoodsItem gi = new GoodsItem(g, 1);
79             
80             //将此商品项放入gwc
81             gwc.put(id, gi);
82         }
83         
84         //将购物车放入session
85         request.getSession().setAttribute("gwc", gwc);
86         
87         //继续购物
88         response.sendRedirect("index.jsp");
89     }
90 
91 }

 执行结果:

posted @ 2016-07-08 22:33  menu520  阅读(13577)  评论(0编辑  收藏  举报