Aufrufen eines Servlets aus einer JSP-Datei beim Laden der Seite
Frage:
Kann ein Servlet kann aus einer JSP-Datei aufgerufen werden, ohne dass ein HTML-Code verwendet werden muss Form?
Antwort:
Absolut. Um dies zu erreichen, nutzen Sie die doGet()-Methode des Servlets, um die Anfrage vorzuverarbeiten und sie anschließend an die JSP weiterzuleiten. Dies kann erreicht werden, ohne die JSP-URL in der Adressleiste oder in Links des Browsers anzugeben. Geben Sie stattdessen die Servlet-URL an.
Beispiel:
Betrachten Sie den folgenden Codeausschnitt:
Servlet (ProductsServlet.java):
@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); } }
JSP (products.jsp):
<%@ 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>
In diesem Beispiel ruft die doGet()-Methode des ProductsServlet eine Liste von Produkten ab und legt sie als Anforderungsattribut fest. Die Anfrage wird dann an die Seite „products.jsp“ weitergeleitet, die die Liste durchläuft und die Produkte in einer Tabelle anzeigt.
Hinweis:
Stellen Sie sicher, dass die JSP-Datei wird im Ordner /WEB-INF abgelegt, um unbefugten direkten Zugriff zu verhindern. Servlet 3.0 (oder höher) unterstützt die Annotation @WebServlet für die Servlet-Registrierung; Wenn Sie jedoch kein Upgrade durchführen können oder aus Kompatibilitätsgründen web.xml verwenden müssen, registrieren Sie das Servlet manuell in web.xml.
Zusätzliche Ressourcen:
Das obige ist der detaillierte Inhalt vonKann ich beim Laden einer Seite ein Servlet von einer JSP aus aufrufen, ohne ein HTML-Formular zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!