import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.util.ArrayList;
import binh.dev.data.model.OrderItem;
import java.util.logging.Level;
import java.util.logging.Logger;
public class CartServlet extends BaseServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
super.doGet(request, response);
HttpSession session = request.getSession();
List<OrderItem> cart = (List<OrderItem>) session.getAttribute("cart");
cart = new ArrayList<>();
Logger.getLogger(CartServlet.class.getName()).log(Level.SEVERE, null, cart);
request.setAttribute("cart", cart);
session.setAttribute("total", total(cart));
request.getRequestDispatcher("cart.jsp").include(request, response);
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action");
throw new AssertionError();
response.sendRedirect("CartServlet");
private void createOrder(HttpServletRequest request) {
int quantity = Integer.parseInt(request.getParameter("quantity"));
int productId = Integer.parseInt(request.getParameter("productId"));
double price = Double.parseDouble(request.getParameter("productPrice"));
OrderItem orderItem = new OrderItem(quantity, price, 0, productId);
HttpSession session = request.getSession();
List<OrderItem> cart = (List<OrderItem>) session.getAttribute("cart");
boolean isExistInCart = false;
cart = new ArrayList<>();
for (OrderItem ord : cart) {
if (ord.getProductId() == productId) {
ord.setQuantity(ord.getQuantity() + quantity);
session.setAttribute("cart", cart);
private void deleteOrder(HttpServletRequest request) {
int productId = Integer.parseInt(request.getParameter("productId"));
HttpSession session = request.getSession();
List<OrderItem> cart = (List<OrderItem>) session.getAttribute("cart");
for (int i = 0; i < cart.size(); i++) {
OrderItem ord = cart.get(i);
if (ord.getProductId() == productId) {
session.setAttribute("cart", cart);
private void updateOrder(HttpServletRequest request) {
int productId = Integer.parseInt(request.getParameter("productId"));
int quantity = Integer.parseInt(request.getParameter("quantity"));
HttpSession session = request.getSession();
List<OrderItem> cart = (List<OrderItem>) session.getAttribute("cart");
if (cart != null && cart.isEmpty() == false) {
for (OrderItem ord : cart) {
if (ord.getProductId() == productId) {
ord.setQuantity(quantity);
session.setAttribute("cart", cart);
private int total(List<OrderItem> cart) {
for (OrderItem ods : cart) {
sum += ods.getPrice() * ods.getQuantity();
0 Nhận xét