victory的博客

长安一片月,万户捣衣声

0%

基于JavaWeb的网上购物商城 | 删除购物车中的商品

删除购物车中的商品

实现功能:
用户点击购物车中购物项后面的删除将这个购物项删除,总计金额减去当前购物项小计。

cart.jsp
为删除链接增加onclick属性,并使用js实现delCart方法。

<td>
    <a href="javascript:;" class="delete" onclick="delCart('${en.value.pro.pid}', '${en.value.subTotal}')">删除</a>
</td>
......
<script type="text/javascript">
    function delCart(pid, money){
        location.href="${pageContext.request.contextPath}/product?method=delCart&pid="+pid+"&money="+money;
    }
</script>

ProductServlet.java
在ProductServlet.java的doGet方法中添加delCart的判断,并完成delCart方法。

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String method = request.getParameter("method");
    if("getProById".equals(method)) {
        getProById(request, response);
    }else if("findListByCate".equals(method)) {
        findListByCate(request, response);
    }else if("cart".equals(method)) {
        cart(request, response);
    }else if("delCart".equals(method)) {
        delCart(request, response);
    }
}

public void delCart(HttpServletRequest request, HttpServletResponse response) {
    // TODO Auto-generated method stub
    try {
        String pid = request.getParameter("pid");
        String money = request.getParameter("money");
        //获取购物车
        HttpSession session = request.getSession();
        Cart cart = (Cart) session.getAttribute("cart");
        HashMap<String, CartItem> map = cart.getMap();
        CartItem c = map.remove(pid);
        double subTotal = c.getSubTotal();
        //购物车金额-小计
        cart.setSubMoney(cart.getSubMoney()-subTotal);
        //返回购物车页面
        request.getRequestDispatcher("/cart.jsp").forward(request, response);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
}