0

I have created a database SQL and filled it up. Then I want to implement a MainServlet (code below) that retrieve data from the database and in a different JSP page, I want to insert that data in section like h1, h2 etc... I must use the ${} syntax but I don't know how to do that.

Briefly, In JSP file (code below, I MUST USE ${} SYNTAX) I want to "call" MainServlet and there I want to retrieve data from the database and view it in JSP file.

MainServlet.java

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * Servlet implementation class MainServlet
 */
@WebServlet({ "/MainServlet" })
public class MainServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private static final String PATH_JSP = "/WEB-INF/";
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MainServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see Servlet#init(ServletConfig)
     */
    public void init(ServletConfig config) throws ServletException {
        // TODO Auto-generated method stub
    }

    /**
     * @see Servlet#destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String doveAndare = request.getParameter("azione");
        if(doveAndare==null)
            doveAndare = "index";
        try {
            String driverString = "com.mysql.cj.jdbc.Driver";
            Class.forName(driverString);
            String connString = "jdbc:mysql://localhost:3306/ldd_jewels?user=root&password=";
            Connection conn = DriverManager.getConnection(connString);
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM JEWEL");
            while (rs.next() == true) {
                System.out.println(rs.getString("Category") + "\t" + rs.getString("Name"));
                
                /* I try that but does not work
                request.setAttribute("name", rs.getString("Name"));
                javax.servlet.RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/widering_male.jsp");
                dispatcher.forward(request, response); */
            }
            stmt.close();
            conn.close();
        } catch(Exception e) {
            e.printStackTrace();
        }
        request.getRequestDispatcher(PATH_JSP+doveAndare+".jsp").forward(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

doublerow.jsp

   <section id="portfolio-details" class="portfolio-details">
        <div class="container">
          <div class="row gy-4">
            <div class="col-lg-8">
              <div class="portfolio-details-slider swiper">
                <div class="swiper-wrapper align-items-center">
                  <div class="swiper-slide">
                    <img src="assets/img/jewels/doublerow_1.jpg" alt="" />
                  </div>

                  <div class="swiper-slide">
                    <img src="assets/img/jewels/doublerow_2.jpg" alt="" />
                  </div>

                  <div class="swiper-slide">
                    <img src="assets/img/jewels/doublerow_3.jpg" alt="" />
                  </div>
                </div>
                <div class="swiper-pagination"></div>
              </div>
            </div>

            <div class="col-lg-4">
              <div class="portfolio-info">
                <h3>Product details</h3>
                <ul>
                  <li><strong>Code</strong>: 1S3D5</li>
                  <li><strong>Category</strong>: Bracelets</li>
                  <li><strong>Name</strong>: Double Row Hinged Bangle</li>
                  <li><strong>Gender</strong>: Female</li>
                  <li><strong>Material</strong>: Yellow gold</li>
                  <li><strong>Size</strong>: 121mm</li>
                  <li><strong>Price</strong>: €5500</li>
                </ul>
              </div>
              <div class="portfolio-description">
                <h2>Description of product</h2>
                <p>
                  The entwined ends of Tiffany Knot’s signature motif symbolize
                  the power of connections between people. Balancing strength
                  and elegance, each Tiffany Knot design is a complex feat of
                  craftsmanship. This bangle is crafted with yellow gold and
                  polished by hand for high shine. Wear on its own or partnered
                  with classic silhouettes for an unexpected pairing.
                </p>
              </div>
            </div>
          </div>
        </div>
      </section>
Dharman
  • 30,962
  • 25
  • 85
  • 135
Lorenzo
  • 11
  • 3

0 Answers0