0

I'm trying to get product list and iterate them into JSP. There's my tried:

ProductsServlet.java

package product.servlet;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import product.dao.ProductDAO;
import product.model.Product;

@WebServlet("/")
public class ProductServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private ProductDAO productDAO;

    public ProductServlet() {
        super();
        this.productDAO = new ProductDAO();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        this.doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String action = request.getServletPath();
        
        System.out.println("Action: " + action);

        try {
            switch (action) {
            case "/insert":
                insertProduct(request, response);
                break;
            case "/delete":
                deleteProduct(request, response);
                break;
            case "/update":
                updateProduct(request, response);
                break;
            case "/getProductByID":
                getProductByID(request, response);
                break;
            case "/openProductsPage":
                openProductsPage(request, response);
                break;
            default:
                getProducts(request, response);
                break;
            }
        } catch (SQLException ex) {
            throw new ServletException(ex);
        }
    }

    private void getProducts(HttpServletRequest request, HttpServletResponse response)
            throws SQLException, IOException, ServletException {
        List<Product> products = productDAO.getProducts();
        request.setAttribute("products", products);
        request.getRequestDispatcher("products.jsp");
    }

    private void getProductByID(HttpServletRequest request, HttpServletResponse response)
            throws SQLException, IOException, ServletException {
        int productId = Integer.parseInt(request.getParameter("id"));
        Product product = productDAO.getProductByID(productId);
        request.setAttribute("product", product);
        RequestDispatcher dispatcher = request.getRequestDispatcher("product_details.jsp");
        dispatcher.forward(request, response);
    }

    private void openProductsPage(HttpServletRequest request, HttpServletResponse response)
            throws SQLException, IOException, ServletException {
        List<Product> products = productDAO.getProducts();
            
        for(Product product: products) {
            System.out.println("Product: " + product.getProductName());
        } 
        
        request.setAttribute("products", products);
        RequestDispatcher dispatcher = request.getRequestDispatcher("products.jsp");
        dispatcher.forward(request, response);
    }

    private void insertProduct(HttpServletRequest request, HttpServletResponse response)
            throws SQLException, IOException {
        String productName = request.getParameter("productName");
        String productPhoto = request.getParameter("productPhoto");
        double productPrice = Double.parseDouble(request.getParameter("productPrice"));
        int stockAmount = Integer.parseInt(request.getParameter("stockAmount"));
        int categoryID = Integer.parseInt(request.getParameter("categoryID"));

        Product newProduct = new Product(productName, productPhoto, productPrice, stockAmount, categoryID);
        productDAO.insertProduct(newProduct);
        response.sendRedirect("getProducts");
    }

    private void updateProduct(HttpServletRequest request, HttpServletResponse response)
            throws SQLException, IOException {
        int productId = Integer.parseInt(request.getParameter("id"));
        String productName = request.getParameter("productName");
        String productPhoto = request.getParameter("productPhoto");
        int productPrice = Integer.parseInt(request.getParameter("productPrice"));
        int stockAmount = Integer.parseInt(request.getParameter("stockAmount"));
        Product product = new Product(productId, productName, productPhoto, productPrice, stockAmount);
        productDAO.updateProduct(product);
        response.sendRedirect("getProducts");
    }

    private void deleteProduct(HttpServletRequest request, HttpServletResponse response)
            throws SQLException, IOException {
        int productId = Integer.parseInt(request.getParameter("id"));
        productDAO.deleteProduct(productId);
        response.sendRedirect("getProducts");

    }

}

pages/products.jsp

<div class="row isotope-grid">
          <c:forEach var="product" items="${products}">
            <div class="col-sm-6 col-md-4 col-lg-3 p-b-35 isotope-item ${product.getCategory().getCategoryName()}">
            <!-- Block2 -->
            <div class="block2">
              <div class="block2-pic hov-img0">
                <img src="..a${product.getProductPhoto()}" alt="IMG-PRODUCT" />

                <a
                  href="#"
                  class="block2-btn flex-c-m stext-103 cl2 size-102 bg0 bor2 hov-btn1 p-lr-15 trans-04 js-show-modal1"
                >
                  Hızlı İncele
                </a>
              </div>

              <div class="block2-txt flex-w flex-t p-t-14">
                <div class="block2-txt-child1 flex-col-l">
                  <a
                    href="product-detail.html"
                    class="stext-104 cl4 hov-cl1 trans-04 js-name-b2 p-b-6"
                  >
                    ${product.getProductName()}
                  </a>

                  <span class="stext-105 cl3"> ${product.getProductPrice()} TRY </span>
                </div>

                <div class="block2-txt-child2 flex-r p-t-3">
                  <a
                    href="#"
                    class="btn-addwish-b2 dis-block pos-relative js-addwish-b2"
                  >
                    <img
                      class="icon-heart1 dis-block trans-04"
                      src="../images/icons/icon-heart-01.png"
                      alt="ICON"
                    />
                    <img
                      class="icon-heart2 dis-block trans-04 ab-t-l"
                      src="../images/icons/icon-heart-02.png"
                      alt="ICON"
                    />
                  </a>
                </div>
              </div>
            </div>
          </div>
          </c:forEach>
        </div>

I watch this video and try to get solution. https://www.youtube.com/watch?v=RqiuxA_OFOk&t=1627s

I hope you can fix my error. I'm researching now.

Apache Tomcat Version: 9.0.76 Java Version: openjdk 11.0.19 2023-04-18 OpenJDK Runtime Environment (build 11.0.19+7-post-Ubuntu-0ubuntu122.04.1) OpenJDK 64-Bit Server VM (build 11.0.19+7-post-Ubuntu-0ubuntu122.04.1, mixed mode, sharing)

Javac Version: javac 11.0.19

bgebes
  • 95
  • 1
  • 13

0 Answers0