Übersicht über JSP-Syntaxelemente
Um die Dinge klarer zu machen, finden Sie hier einen kurzen Überblick über JSP-Syntaxelemente :
- Anweisungen : Diese enthalten Informationen zur gesamten JSP-Seite.
- Skriptelemente : Dies sind Java-Codierungselemente wie Deklarationen, Ausdrücke, Scriptlets und Kommentare.
- Objekte und Bereiche : JSP-Objekte können entweder explizit oder implizit erstellt werden und sind innerhalb eines bestimmten Bereichs zugänglich, z. B. von einer beliebigen Stelle auf der JSP-Seite oder der Sitzung.
- Aktionen : Diese erstellen Objekte oder wirken sich auf den Ausgabestream in der JSP-Antwort (oder auf beide) aus.
Wie Inhalte in JSP enthalten sind
Es gibt verschiedene Mechanismen zum Wiederverwenden von Inhalten in einer JSP-Datei.
Die folgenden 4 Mechanismen zum Einfügen von Inhalten in JSP können als direkte Wiederverwendung eingestuft werden :
(für die ersten 3 Mechanismen, die aus "Head First Servlets und JSP" zitiert werden )
1) Die Include- Richtlinie :
<%@ include file="header.html" %>
Statisch : Fügt den Inhalt aus dem Wert des Dateiattributs zur aktuellen Seite zur Übersetzungszeit hinzu . Die Direktive war ursprünglich für statische Layoutvorlagen wie HTML-Header gedacht.
2) Die <jsp:include>
Standardaktion :
<jsp:include page="header.jsp" />
Dynamisch : Fügt den Inhalt aus dem Wert des Seitenattributs zur Anforderungszeit zur aktuellen Seite hinzu . War eher für dynamische Inhalte gedacht, die von JSPs stammen.
3) Das <c:import>
JSTL-Tag:
<c:import url=”http://www.example.com/foo/bar.html” />
Dynamisch : Fügt den Inhalt aus dem Wert des URL-Attributs zur aktuellen Seite zur Anforderungszeit hinzu . Es funktioniert sehr ähnlich
<jsp:include>
, ist aber leistungsfähiger und flexibler: Im Gegensatz zu den beiden anderen Includes kann die <c:import>
URL von außerhalb des Webcontainers stammen !
4) Präludien und Codas:
Statisch : Präludien und Codas können nur auf den Anfang und das Ende von Seiten angewendet werden .
Sie können implizit enthalten Präludien (auch als Header) und Coda
(auch Fußzeilen genannt) für eine Gruppe von JSP - Seiten durch das Hinzufügen
<include-prelude>
und <include-coda>
Elemente jeweils in einem <jsp-property-group>
Element in der Web - Anwendung web.xml Deployment Descriptor. Lesen Sie hier mehr:
• Konfigurieren impliziter Includes am Anfang und Ende von JSPs
• Definieren impliziter Includes
Die Tag-Datei ist eine indirekte Methode zur Wiederverwendung von Inhalten, bei der wiederverwendbare Inhalte gekapselt werden . Eine Tag-Datei ist eine Quelldatei, die ein Fragment von JSP-Code enthält, das als benutzerdefiniertes Tag wiederverwendet werden kann .
Der Zweck von Includes- und Tag-Dateien ist unterschiedlich.
Die Tag-Datei (ein mit JSP 2.0 eingeführtes Konzept) ist eine der Optionen zum Erstellen benutzerdefinierter Tags . Es ist eine schnellere und einfachere Möglichkeit, benutzerdefinierte Tags zu erstellen.
Benutzerdefinierte Tags , auch als Tag-Erweiterungen bezeichnet, sind JSP-Elemente, mit denen benutzerdefinierte Logik und Ausgaben anderer Java-Komponenten in JSP-Seiten eingefügt werden können. Die durch ein benutzerdefiniertes Tag bereitgestellte Logik wird von einem Java-Objekt implementiert, das als Tag-Handler bezeichnet wird .
Einige Beispiele für Aufgaben, die von benutzerdefinierten Tags ausgeführt werden können, umfassen das Bearbeiten impliziter Objekte, das Verarbeiten von Formularen, den Zugriff auf Datenbanken und andere Unternehmensdienste wie E-Mail und Verzeichnisse sowie die Implementierung der Flusssteuerung.
In Bezug auf Ihre Bearbeitung
Möglicherweise gibt es in Ihrem Beispiel (in Ihrer Bearbeitung ) keinen Unterschied zwischen der Verwendung von Direct Include und einer Tag-Datei. Aber benutzerdefinierte Tags haben eine breite Palette an Funktionen . Sie können
Sie können mithilfe von Attributen angepasst werden, die von der aufrufenden Seite übergeben werden.
Übergeben Sie Variablen an die aufrufende Seite zurück.
Greifen Sie auf alle Objekte zu, die für JSP-Seiten verfügbar sind.
Miteinander kommunizieren. Sie können eine JavaBeans-Komponente erstellen und initialisieren, eine öffentliche EL-Variable erstellen, die auf diese Bean in einem Tag verweist, und die Bean dann in einem anderen Tag verwenden.
Ineinander verschachtelt sein und über private Variablen kommunizieren.
Lesen Sie dies auch aus "Pro JSP 2": Grundlegendes zu benutzerdefinierten JSP-Tags .
Nützliches Lesen.
Fazit
Verwenden Sie für jede Aufgabe die richtigen Werkzeuge.
Verwenden Sie Tag-Dateien, um schnell und einfach benutzerdefinierte Tags zu erstellen , mit denen Sie wiederverwendbaren Inhalt kapseln können .
Was den Einschluss von Inhalten in JSP betrifft (Zitat von hier ):
- Verwenden Sie die include-Direktive, wenn sich die Datei selten ändert . Es ist der schnellste Mechanismus. Wenn Ihr Container Änderungen nicht automatisch erkennt, können Sie das Wirksamwerden der Änderungen erzwingen, indem Sie die Hauptseitenklassendatei löschen.
- Verwenden Sie die Include-Aktion nur für Inhalte, die sich häufig ändern , und ob die einzuschließende Seite erst entschieden werden kann, wenn die Hauptseite angefordert wird.