Để thêm sản phẩm vào giỏ hàng trong một ứng dụng web bán hàng viết bằng Java Servlet, bạn có thể làm như sau:
- Tạo một servlet để xử lý yêu cầu thêm sản phẩm vào giỏ hàng.
- Trong servlet, lấy thông tin sản phẩm từ yêu cầu và thêm nó vào đối tượng giỏ hàng. Nếu giỏ hàng chưa được khởi tạo, bạn có thể tạo một đối tượng mới.
- Lưu đối tượng giỏ hàng vào session để nó có thể được truy cập từ các yêu cầu khác trong phiên đăng nhập hiện tại.
- Chuyển hướng người dùng đến trang giỏ hàng để xem sản phẩm đã được thêm vào.
Dưới đây là một ví dụ về servlet để thêm sản phẩm vào giỏ hàng:
@WebServlet("/add-to-cart") public class AddToCartServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Lấy thông tin sản phẩm từ yêu cầu int productId = Integer.parseInt(request.getParameter("productId")); String productName = request.getParameter("productName"); double productPrice = Double.parseDouble(request.getParameter("productPrice")); int quantity = Integer.parseInt(request.getParameter("quantity")); // Lấy đối tượng giỏ hàng từ session hoặc tạo một đối tượng mới nếu giỏ hàng chưa tồn tại HttpSession session = request.getSession(); Cart cart = (Cart) session.getAttribute("cart"); if (cart == null) { cart = new Cart(); session.setAttribute("cart", cart); } // Thêm sản phẩm vào giỏ hàng cart.addItem(new CartItem(productId, productName, productPrice, quantity)); // Chuyển hướng người dùng đến trang giỏ hàng response.sendRedirect(request.getContextPath() + "/cart.jsp"); } }
Trong ví dụ này, Cart
là một lớp đại diện cho đối tượng giỏ hàng và CartItem
là một lớp đại diện cho một mục trong giỏ hàng. Các thông tin sản phẩm được lấy từ yêu cầu và được sử dụng để tạo một đối tượng CartItem
, sau đó được thêm vào đối tượng Cart
. Đối tượng Cart
được lưu trữ trong session để có thể được truy cập từ các yêu cầu khác trong phiên đăng nhập hiện tại. Cuối cùng, người dùng được chuyển hướng đến trang giỏ hàng để xem sản phẩm đã được thêm vào.