Heim > Java > javaLernprogramm > Kann ich beim Laden einer Seite ein Servlet von einer JSP aus aufrufen, ohne ein HTML-Formular zu verwenden?

Kann ich beim Laden einer Seite ein Servlet von einer JSP aus aufrufen, ohne ein HTML-Formular zu verwenden?

Barbara Streisand
Freigeben: 2024-12-09 11:54:11
Original
713 Leute haben es durchsucht

Can I Call a Servlet from a JSP on Page Load Without Using an HTML Form?

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

}
Nach dem Login kopieren

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>
Nach dem Login kopieren

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:

  • [Servlets-Wiki-Seite](https://wiki.java.net/HowToWiki/Servlets)
  • [doGet und doPost in Servlets](https://docs.oracle.com/javaee/5/tutorial/servlets/basicservlets004.html)
  • [So vermeiden Sie Java-Code in JSP](https://stackoverflow.com/ a/9701987/6776571)
  • [Servlet gibt „HTTP-Status 404 der angeforderten Ressource“ zurück (/servlet) ist nicht verfügbar“](https://stackoverflow.com/a/4288938/6776571)

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage