西蒙购物网(显示购物车处理类)

一、代码如下:
package net.fzq.shop.servlet;
/**

  • 功能:显示购物车控制程序
  • 作者:冯正权
  • 日期:2019年12月16日
    */

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.fzq.shop.bean.Product;
import net.fzq.shop.service.ProductService;

@WebServlet("/showCart")
public class ShowCartServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    // 获取商品类别标识符
    int categoryId = Integer.parseInt(request.getParameter("categoryId"));
    // 获取session对象
    HttpSession session = request.getSession();
    // 获取购物车
    LinkedHashMap<Integer, Integer> cart = (LinkedHashMap<Integer, Integer>) session.getAttribute("cart");

    // 判断购物车是否为空
    if (cart != null) {
        // 定义购物表
        List<HashMap<String, Object>> shoppingTable = new ArrayList<HashMap<String, Object>>();
        // 创建商品服务对象
        ProductService productService = new ProductService();
        // 购物总金额
        double totalPrice = 0.0;
        // 遍历购物车
        for (Integer id : cart.keySet()) {
            // 获取商品对象
            Product product = productService.findProductById(id);
            // 生成购物表记录
            HashMap<String, Object> shoppingItem = new HashMap<String, Object>();
            shoppingItem.put("id", product.getId());
            shoppingItem.put("name", product.getName());
            shoppingItem.put("price", product.getPrice());
            shoppingItem.put("amount", cart.get(id));
            shoppingItem.put("sum", product.getPrice() * cart.get(id));
            // 将购物表记录添加到购物表中
            shoppingTable.add(shoppingItem);
            // 累加购买总金额
            totalPrice = totalPrice + (Double) shoppingItem.get("sum");
        }

        // 将购物表和购买总金额保存到session里
        session.setAttribute("shoppingTable", shoppingTable);
        session.setAttribute("totalPrice", totalPrice);

        // 重定向到显示商品控制程序
        response.sendRedirect(request.getContextPath() + "/showProduct?categoryId=" + categoryId);
    } else {
        System.out.println("购物车里没有类别号为[" + categoryId + "]的商品!");
    }
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    doGet(request, response);
}

}
二、
运行如下:
在这里插入图片描述
三、结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值