How to Call a Servlet from JSP on Page Load
In certain scenarios, you may need to invoke a servlet from a JSP file without using an HTML form. For instance, to display database query results in an HTML table upon page load.
Solution Using doGet() Method
The doGet() method in a servlet allows for request preprocessing and redirection to the JSP. Here's how you can implement this:
Implement doGet() in Servlet:
@WebServlet("/products") public class ProductsServlet extends HttpServlet { ... protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ... request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response); } }
Access Servlet Data in JSP:
...
${product.name} | ${product.description} | ${product.price} |
By doing this, the JSP file can access the objects set by the servlet in its doGet() method, enabling dynamic content generation.
Preventing Direct JSP Access
For security reasons, the JSP file should be placed within the /WEB-INF folder, preventing direct access by users.
Note
The @WebServlet annotation requires Servlet 3.0 or higher. If you're using an older version, you must register the servlet manually in the web.xml file.
References
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3