Để 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:
- 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. - 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. - 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. - 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"));