Để xử lý thêm, sửa, xoá giỏ hàng, ta cần lưu thông tin giỏ hàng vào session. Cụ thể, khi người dùng thêm sản phẩm vào giỏ hàng, ta sẽ lấy thông tin sản phẩm, kiểm tra xem sản phẩm này đã có trong giỏ hàng chưa. Nếu sản phẩm chưa có trong giỏ hàng, ta sẽ tạo một đối tượng mới để lưu thông tin sản phẩm và số lượng. Nếu sản phẩm đã có trong giỏ hàng, ta sẽ tăng số lượng của sản phẩm đó lên 1.
Khi người dùng cập nhật số lượng của sản phẩm trong giỏ hàng, ta cũng sẽ lưu thông tin giỏ hàng vào session. Nếu người dùng xoá sản phẩm trong giỏ hàng, ta sẽ lấy thông tin sản phẩm và số lượng trong giỏ hàng, và xoá sản phẩm đó khỏi giỏ hàng.
Sau khi xử lý giỏ hàng, ta sẽ chuyển hướng đến trang giỏ hàng để hiển thị thông tin giỏ hàng cho người dùng. Trên trang giỏ hàng, người dùng có thể cập nhật số lượng của sản phẩm hoặc xoá sản phẩm khỏi giỏ hàng.
Dưới đây là một số đoạn mã mẫu để xử lý giỏ hàng trong Java Servlet:
- Thêm sản phẩm vào giỏ hàng:
// Lấy thông tin sản phẩm Product product = getProductById(productId); // Lấy giỏ hàng từ session Cart cart = (Cart) session.getAttribute("cart"); // Nếu giỏ hàng chưa có, tạo mới giỏ hàng if (cart == null) { cart = new Cart(); session.setAttribute("cart", cart); }
- Cập nhật số lượng của sản phẩm trong giỏ hàng:
// Lấy thông tin sản phẩm Product product = getProductById(productId); // Lấy giỏ hàng từ session Cart cart = (Cart) session.getAttribute("cart"); // Cập nhật số lượng của sản phẩm trong giỏ hàng cart.updateQuantity(product, quantity);
- Xoá sản phẩm khỏi giỏ hàng:
// Lấy thông tin sản phẩm Product product = getProductById(productId); // Lấy giỏ hàng từ session Cart cart = (Cart) session.getAttribute("cart"); // Xoá sản phẩm khỏi giỏ hàng cart.removeProduct(product);
- Chuyển hướng đến trang giỏ hàng:
response.sendRedirect("cart.jsp");