Maison > Java > javaDidacticiel > Un servlet peut-il prétraiter le chargement d'une page JSP sans soumission de formulaire ?

Un servlet peut-il prétraiter le chargement d'une page JSP sans soumission de formulaire ?

DDD
Libérer: 2024-12-07 22:28:16
original
505 Les gens l'ont consulté

Can a Servlet Preprocess a JSP Page Load Without a Form Submission?

Prétraitement des servlets pour le chargement de page JSP

Vous pouvez rencontrer un scénario dans lequel vous souhaitez afficher directement les résultats d'une base de données dans un tableau HTML lorsque une page JSP se charge. Cela soulève la question de savoir s'il est possible d'invoquer un servlet à partir d'un fichier JSP sans utiliser un formulaire HTML traditionnel.

Prétraitement avec la méthode doGet() de servlet

La réponse est affirmatif. En utilisant la méthode doGet() d'un servlet, vous pouvez prétraiter une requête et la transmettre ensuite au JSP. Cela implique de rediriger les liens et les barres d'adresse du navigateur vers l'URL du servlet au lieu de l'URL de la JSP.

Exemple de mise en œuvre

Considérez l'extrait de code suivant :

@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);
    }

}
Copier après la connexion

Dans le fichier JSP (/WEB-INF/products.jsp) :

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<table>
    <c:forEach items="${products}" var="product">
        <tr>
            <td>${product.name}</td>
            <td>${product.description}</td>
            <td>${product.price}</td>
        </tr>
    </c:forEach>
</table>
Copier après la connexion

Considérations

  • Placez le fichier JSP dans le dossier /WEB-INF pour empêcher les accès par les utilisateurs.
  • Servlet 3.0 (Tomcat 7, etc.) est requis pour l'annotation @WebServlet soutien. Reportez-vous à l'annotation @WebServlet avec Tomcat 7 pour plus d'informations.
  • Pour les versions de servlet antérieures à 3.0, l'enregistrement manuel du servlet dans web.xml est nécessaire.

Ressources supplémentaires

  • Wiki des servlets page
  • doGet et doPost dans les servlets
  • Comment éviter le code Java dans JSP
  • La servlet renvoie "Statut HTTP 404 La ressource demandée (/servlet) n'est pas disponible"

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal