javaWeb 13(session购物车项目)

上图就是购物车的主界面,商品展示界面

看看源代码

 

点击加入购物车可以进入我的购物车界面

 可以对它进行修改和删除,        并且点击继续买买可以进入主界面,点击结算

一、doshop逻辑代码

<%
    request.setCharacterEncoding("utf-8");
    //接收gid
    String gid = request.getParameter("gid");
    //根据gid拿到对应的商品对象=查询单个
    IGoodsBiz igb = new GoodsBiz(); 
    
    Goods goods =igb.getGoodsByGid(gid);
    /* //形成一个订单项
    Item i = new Item();
    //给对象赋值
    i.setGoods(goods);
    i.setSl(1);
    i.calc(); */
    
    //订单项集合
    //解决覆盖问题
    //先拿值
    List<Item> ls  =(List<Item>)session.getAttribute("mycart");
    if(ls==null){//没拿到值 说明之前购物车是空的
         ls = new ArrayList<Item>();
    }
    //int a=Integer.parseInt(gid);
    //解决加同一商品重复问题
    boolean f = false;//假设该商品不存在
    //循环遍历
    for(Item ii : ls){
        //说明存在
        if(ii.getGoods().getGid()==Integer.parseInt(gid)){
            //数量在原本的基础上加1
            ii.setSl(ii.getSl()+1);
            ii.calc();//改变总价
            f=true;
            break;
        }
    }
    if(f==false){//说明确实不存在
        //形成一个订单项
        Item i = new Item();
        //给对象赋值
        i.setGoods(goods);
        i.setSl(1);
        i.calc();
        //把订单项加到集合中
        ls.add(i);
    }
    
    //把集合存到session中
    session.setAttribute("mycart", ls);
    //跳转到购物车界面进行展示
    response.sendRedirect("cart.jsp");
%><%
    request.setCharacterEncoding("utf-8");
    //接收gid
    String gid = request.getParameter("gid");
    //根据gid拿到对应的商品对象=查询单个
    IGoodsBiz igb = new GoodsBiz(); 
    
    Goods goods =igb.getGoodsByGid(gid);
    /* //形成一个订单项
    Item i = new Item();
    //给对象赋值
    i.setGoods(goods);
    i.setSl(1);
    i.calc(); */
    
    //订单项集合
    //解决覆盖问题
    //先拿值
    List<Item> ls  =(List<Item>)session.getAttribute("mycart");
    if(ls==null){//没拿到值 说明之前购物车是空的
         ls = new ArrayList<Item>();
    }
    //int a=Integer.parseInt(gid);
    //解决加同一商品重复问题
    boolean f = false;//假设该商品不存在
    //循环遍历
    for(Item ii : ls){
        //说明存在
        if(ii.getGoods().getGid()==Integer.parseInt(gid)){
            //数量在原本的基础上加1
            ii.setSl(ii.getSl()+1);
            ii.calc();//改变总价
            f=true;
            break;
        }
    }
    if(f==false){//说明确实不存在
        //形成一个订单项
        Item i = new Item();
        //给对象赋值
        i.setGoods(goods);
        i.setSl(1);
        i.calc();
        //把订单项加到集合中
        ls.add(i);
    }
    
    //把集合存到session中
    session.setAttribute("mycart", ls);
    //跳转到购物车界面进行展示
    response.sendRedirect("cart.jsp");
%>
二、session版删除

<%
    //接收gid
    String gid = request.getParameter("gid");
    //拿到订单项集合
     List<Item> ls  =(List<Item>) session.getAttribute("mycart");
    //循环遍历
    for(Item i :ls){
        if(i.getGoods().getGid()==Integer.parseInt(gid)){
            //说明找到了移除
            ls.remove(i);
            break;
        }
    }
    response.sendRedirect("cart.jsp");
%>
三、session版的修改

<%
    //接收gid和num
    String gid = request.getParameter("gid");
    String num = request.getParameter("num");
    //拿到订单项集合
     List<Item> ls  =(List<Item>) session.getAttribute("mycart");
    //循环遍历
    for(Item i :ls){
        if(i.getGoods().getGid()==Integer.parseInt(gid)){
            //说明找到了移除
            i.setSl(Integer.parseInt(num));
            i.calc();
            break;
        }
    }
    response.sendRedirect("cart.jsp");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值