web-13

1.什么是 Session 会话?
Session 就一个接口(HttpSession)。
Session 就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。
每个客户端都有自己的一个 Session 会话。
Session 会话中,我们经常用来保存用户登录之后的信息。
2、购物车布局
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h2>我的购物车</h2>
    <a href = "index.jsp">返回首页</a>
    <hr/>
    <table border ="1" width = "70%">
    <tr>
    <th><input type="checkbox"  οnclick="myAll()" id="allCheckBox">全选</th>
        <th>编号</th>
        <th>名称</th>
        <th>价格</th>
        <th>图片</th>
        <th>数量</th>
        <th>总价格</th>
        <th>操作</th>
    </tr>
    <%
        //获取购物车
        //Cart cart = (Cart)session.getAttribute("cart");
        List<Cart> listCarts = (List<Cart>)session.getAttribute("listCarts");
        
        //定义一个页码
        int pageIndex = 1;
        //定义一个变量存储每页显示的条数
        int pageSize = 4;
        //当用户点击了下一页   获取到下一页超链接上的参数
        String pIndex= request.getParameter("pageIndex");
        if(pIndex!=null){
            pageIndex = Integer.valueOf(pIndex);
        }
        
        //定义一个变量存储总记录数
        int pageCount = listCarts.size();
        System.out.println("总记录数: "+pageCount);
        //pageIndex = 1    0-3  0 1 2 3
        //pageIndex = 2    4-7  4  5  6   7
        int start = (pageIndex-1)*pageSize;
        //sublist  参数end  没有等于
        int end = pageIndex*pageSize;
        if(end > pageCount){
            end = pageCount;
        }
        int pageMax = pageCount/pageSize;
        if(pageCount%pageSize!=0){
            pageMax++;
        }
        
        
        
        //调用伪分页的方法  subList(start,end);
        listCarts = listCarts.subList(start,end);
        
        for(Cart cart : listCarts){
            
    %>
        <tr id = "<%=cart.getGoods().getGid()%>">
        <td><input type="checkbox"  name="cartCheckBox" οnclick="selectSingle()"></td>
            <td><%=cart.getGoods().getGid() %></td>
            <td><%=cart.getGoods().getGname() %></td>
            <td><%=cart.getGoods().getGprice() %></td>
            <td><img src = "<%=cart.getGoods().getGpath() %>"/></td>
            <td>
                <button οnclick="add('a',<%=cart.getGoods().getGid()%>)">-</button>
                <input readonly="readonly" type = "text" style ="width:40px" value = "<%=cart.getCcount() %>"/>
                <button οnclick="add('b',<%=cart.getGoods().getGid()%>)">+</button>
            </td>
            <td><%=cart.getCtotal() %></td>
            <td>
                <button οnclick="delCart(<%=cart.getGoods().getGid()%>)">删除</button>
                <button οnclick="updateCart(<%=cart.getGoods().getGid()%>)">修改</button>
            </td>
        
        </tr>
    
    <%        
        }
    %>
    
</table>
<!-- 购物车页面实现分页 -->
<!-- 每一页现实的商品条数4条 -->
<p>
    [<%=pageIndex %>/<%=pageMax %>]
    <a href = "Cart.jsp?pageIndex=1">首页</a>
    <a href = "Cart.jsp?pageIndex=<%=pageIndex-1<=0?1:pageIndex-1%>">上一页</a>
    <a href = "Cart.jsp?pageIndex=<%=pageIndex+1>pageMax?pageMax:pageIndex+1%>">下一页</a>
    <a href="Cart.jsp?pageIndex=<%=pageMax%>">尾页</a>
 
 
</p>
    
    <script type="text/javascript">
    function $(sid){
        return document.getElementById(sid);
    }
        function delCart(id){
            if(window.confirm("您确定要删除吗?")){
                location.href="doDel.jsp?gid="+id;
            }
        }
        
        
        function add(type,id){
            //根据参数id获取tr标签
            var tr = document.getElementById(id);
            //console.log(tr)
            //根据tr获取数量
            var ccount = tr.cells[4].children[1].value;
            console.log(ccount);
            if(type === 'a'){//减法
                ccount--;
            }else if(type==='b'){//加法
                ccount++;
            }
            tr.cells[4].children[1].value = ccount;
        }
        
        function updateCart(id){
            //根据id获取到数量
            var tr = document.getElementById(id);
            var ccount = tr.cells[4].children[1].value;
            //console.log(ccount);
            location.href="doUpdate.jsp?gid="+id+"&ccount="+ccount;
        }
    
        function myAll(){
            var cs = document.getElementsByName("cartCheckBox");
            var qx = $("allCheckBox");
            for(var i=0;i<cs.length;i++){
                cs[i].checked = qx.checked;
                
            }
        } 
 
        //控制单个选中
        function selectSingle(){
            var cs = document.getElementsByName("cartCheckBox");
            var qx = $("allCheckBox");
            var f = true;//假设选中
            for(var i=0;i<cs.length;i++){
                if(cs[i].checked==false){//如果有一个没选中 全选框就不选中
                    f = false;
                    break;
                }
            }
            qx.checked = f;
        } 
    </script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值