Maison >Java >javaDidacticiel >Comment appeler des servlets à partir de fichiers JSP lors du chargement de la page ?
Appel de servlets à partir de fichiers JSP lors du chargement de la page
Introduction
Accès aux données et implémentation complexe la logique peut être obtenue avec les servlets, qui sont utilisés dans les applications Web Java pour traiter les demandes et les réponses de manière dynamique. Les développeurs peuvent être confrontés au besoin de lancer les fonctionnalités d'un servlet directement à partir d'un fichier JSP lors du chargement de la page. Cet article fournit une solution complète à ce défi.
Traitement des demandes avant le chargement de la page
Pour exécuter un servlet avant le rendu de la page JSP, la méthode doGet() de la servlet peut être utilisée. Cette méthode sert à prétraiter les requêtes et à les transmettre au JSP, dissociant ainsi efficacement le traitement de la présentation. En redirigeant les liens et les adresses du navigateur vers l'URL du servlet au lieu de celle du JSP, la fonctionnalité souhaitée peut être obtenue.
Un exemple pratique
Dans cet exemple, un servlet nommé ProductsServlet est utilisé pour récupérer les données produit d'une base de données et les transmettre au fichier JSP products.jsp pour affichage. La servlet est annotée avec @WebServlet("/products"), indiquant que son modèle d'URL est "/products".
@WebServlet("/products") public class ProductsServlet extends HttpServlet { @EJB private ProductService productService; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<Product> products = productService.list(); request.setAttribute("products", products); request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response); } }
Accéder aux données dans JSP
Dans le fichier products.jsp, la liste des produits est rendue à l'aide de la bibliothèque de balises standard Java Server Pages (JSTL) et du langage d'expression. (EL).
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ... <table border="1"> <c:forEach items="${products}" var="product"> <tr> <td>${product.name}</td> <td>${product.description}</td> <td>${product.price}</td> </tr> </c:forEach> </table>
Considérations
Il est crucial de s'assurer que le fichier JSP est placé dans le dossier /WEB-INF pour empêcher un accès direct sans appeler la servlet. De plus, notez que l'annotation @WebServlet n'est disponible que dans Servlet 3.0 et versions ultérieures, et si vous utilisez une version antérieure, l'enregistrement du servlet via le fichier web.xml est nécessaire.
Avantages de l'utilisation des servlets pour le traitement du chargement des pages
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!