RemoveFromCartServlet.java
package com.popx.presentazione;
import com.popx.modello.ProdottoBean;
import com.popx.persistenza.ProdottoDAO;
import com.popx.persistenza.ProdottoDAOImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
@WebServlet("/RemoveFromCartServlet")
public class RemoveFromCartServlet extends HttpServlet {
private ProdottoDAO prodottoDAO;
// 👉 costruttore production
public RemoveFromCartServlet() {
this.prodottoDAO = new ProdottoDAOImpl();
}
// 👉 costruttore test
public RemoveFromCartServlet(ProdottoDAO prodottoDAO) {
this.prodottoDAO = prodottoDAO;
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String productId = request.getParameter("productId");
HttpSession session = request.getSession();
List<ProdottoBean> cart = (List<ProdottoBean>) session.getAttribute("cart");
String userEmail = (String) session.getAttribute("userEmail");
try {
if (productId != null && !productId.isEmpty() && cart != null) {
cart.removeIf(product -> product.getId().equals(productId));
session.setAttribute("cart", cart);
if (userEmail != null) {
prodottoDAO.removeProductFromCart(userEmail, productId);
}
response.setContentType("application/json");
response.getWriter().write("{\"success\": true}");
} else {
response.setContentType("application/json");
response.getWriter().write(
"{\"success\": false, \"message\": \"Invalid product ID.\"}"
);
}
} catch (SQLException e) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.getWriter().write(
"{\"success\": false, \"message\": \"Errore nella rimozione del prodotto.\"}"
);
}
}
}