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