GetProductServlet.java

package com.popx.presentazione;

import com.popx.modello.ProdottoBean;
import com.popx.persistenza.ProdottoDAO;
import com.popx.persistenza.ProdottoDAOImpl;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "GetProductServlet", urlPatterns = {"/getProduct"})
public class GetProductServlet extends HttpServlet {

    private ProdottoDAO prodottoDAO;

    // 🔹 costruttore production
    public GetProductServlet() {
        this.prodottoDAO = new ProdottoDAOImpl();
    }

    // 🔹 costruttore test
    public GetProductServlet(ProdottoDAO prodottoDAO) {
        this.prodottoDAO = prodottoDAO;
    }

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String productId = request.getParameter("id");

        if (productId == null || productId.isEmpty()) {
            response.sendError(
                    HttpServletResponse.SC_BAD_REQUEST,
                    "ID prodotto non fornito."
            );
            return;
        }

        try {
            ProdottoBean prodotto = prodottoDAO.getProdottoById(productId);

            if (prodotto == null) {
                response.sendError(
                        HttpServletResponse.SC_NOT_FOUND,
                        "Prodotto non trovato."
                );
                return;
            }

            request.setAttribute("prod", prodotto);
            request.getRequestDispatcher("/jsp/product.jsp")
                    .forward(request, response);

        } catch (Exception e) {
            response.sendError(
                    HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                    "Errore durante il recupero del prodotto."
            );
        }
    }
}