Heim > Java > javaLernprogramm > Kann ein Servlet das Laden einer JSP-Seite ohne Formularübermittlung vorverarbeiten?

Kann ein Servlet das Laden einer JSP-Seite ohne Formularübermittlung vorverarbeiten?

DDD
Freigeben: 2024-12-07 22:28:16
Original
506 Leute haben es durchsucht

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

Servlet-Vorverarbeitung für das Laden von JSP-Seiten

Möglicherweise stoßen Sie auf ein Szenario, in dem Sie Ergebnisse aus einer Datenbank direkt in einer HTML-Tabelle anzeigen möchten Eine JSP-Seite wird geladen. Dies wirft die Frage auf, ob es möglich ist, ein Servlet aus einer JSP-Datei aufzurufen, ohne ein herkömmliches HTML-Formular zu verwenden.

Vorverarbeitung mit der doGet()-Methode von Servlet

Die Antwort ist bejahend. Mithilfe der doGet()-Methode eines Servlets können Sie eine Anfrage vorverarbeiten und anschließend an die JSP weiterleiten. Dies beinhaltet die Umleitung von Links und Browser-Adressleisten zur URL des Servlets statt zur URL der JSP.

Beispielimplementierung

Bedenken Sie den folgenden Codeausschnitt:

@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

In der JSP-Datei (/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>
Nach dem Login kopieren

Überlegungen

  • Platzieren Sie die JSP-Datei im Ordner /WEB-INF, um Direktzugriff zu verhindern Zugriff durch Benutzer.
  • Servlet 3.0 (Tomcat 7 usw.) ist für die @WebServlet-Annotation erforderlich Unterstützung. Weitere Informationen finden Sie in der @WebServlet-Annotation mit Tomcat 7.
  • Für Servlet-Versionen vor 3.0 ist eine manuelle Servlet-Registrierung in web.xml erforderlich.

Zusätzliche Ressourcen

  • Servlets-Wiki Seite
  • doGet und doPost in Servlets
  • So vermeiden Sie Java-Code in JSP
  • Servlet gibt „HTTP-Status 404 Die angeforderte Ressource (/servlet) ist nicht verfügbar“ zurück

Das obige ist der detaillierte Inhalt vonKann ein Servlet das Laden einer JSP-Seite ohne Formularübermittlung vorverarbeiten?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage