Đồ Án-Tạo trang giỏ hàng

Để tạo trang giỏ hàng trong ứng dụng bán sản phẩm Java web, chúng ta cần thực hiện các bước sau:

  1. Tạo trang jsp cho trang giỏ hàng (ví dụ: cart.jsp). Trong trang này, chúng ta sẽ hiển thị các sản phẩm đã được thêm vào giỏ hàng của người dùng và cho phép họ thay đổi số lượng sản phẩm hoặc xóa sản phẩm ra khỏi giỏ hàng.
  2. Tạo servlet xử lý các thao tác trên trang giỏ hàng. Chúng ta có thể đặt servlet này tên là CartServlet hoặc tùy chọn tên khác phù hợp với ứng dụng của mình.
  3. Trong servlet CartServlet, chúng ta sẽ lấy thông tin giỏ hàng từ session của người dùng, thực hiện các thao tác thêm, xóa hoặc sửa số lượng sản phẩm trong giỏ hàng và cập nhật lại thông tin giỏ hàng trong session.
  4. Sau khi thực hiện các thao tác trên giỏ hàng, chúng ta sẽ chuyển hướng trở lại trang giỏ hàng (cart.jsp) để hiển thị thông tin giỏ hàng mới nhất.

Dưới đây là một ví dụ về servlet CartServlet:

@WebServlet("/cart")
public class CartServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Lấy thông tin giỏ hàng từ session
        HttpSession session = request.getSession();
        Cart cart = (Cart) session.getAttribute("cart");

        // Kiểm tra nếu giỏ hàng không tồn tại, tạo mới giỏ hàng
        if (cart == null) {
            cart = new Cart();
            session.setAttribute("cart", cart);
        }

        // Chuyển hướng đến trang giỏ hàng
        RequestDispatcher dispatcher = request.getRequestDispatcher("cart.jsp");
        dispatcher.forward(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Lấy thông tin giỏ hàng từ session
        HttpSession session = request.getSession();
        Cart cart = (Cart) session.getAttribute("cart");

        // Kiểm tra nếu giỏ hàng không tồn tại, tạo mới giỏ hàng
        if (cart == null) {
            cart = new Cart();
            session.setAttribute("cart", cart);
        }

        // Thực hiện các thao tác trên giỏ hàng
        String action = request.getParameter("action");
        if ("add".equals(action)) {
            // Thêm sản phẩm vào giỏ hàng
            int productId = Integer.parseInt(request.getParameter("productId"));
            int quantity = Integer.parseInt(request.getParameter("quantity"));
            Product product = ProductService.getProductById(productId);
            cart.addProduct(product, quantity);
        } else if ("update".equals(action)) {
            // Cập nhật số lượng sản phẩm trong giỏ hàng
            int productId = Integer.parseInt(request.getParameter("productId"));
            int quantity = Integer.parseInt(request.getParameter("quantity"));
            cart.updateProduct(productId, quantity);
        } else if ("remove".equals(action)) {
            // Xóa sản phẩm ra khỏi giỏ hàng
            int productId = Integer.parseInt(request.getParameter("productId"));