JSP-Anweisungen: Page-, Include- und Taglib-Tutorial

Was sind JSP-Richtlinien?

  • JSP-Anweisungen sind die Nachrichten an den JSP-Container. Sie stellen globale Informationen über eine gesamte JSP-Seite bereit.
  • JSP-Direktiven werden verwendet, um einem Container spezielle Anweisungen für die Übersetzung von JSP in Servlet-Code zu erteilen.
  • In der JSP-Lebenszyklusphase muss JSP in ein Servlet konvertiert werden, was die Übersetzungsphase darstellt.
  • Sie geben dem Container Anweisungen zum Umgang mit bestimmten Aspekten der JSP-Verarbeitung
  • Direktiven können viele durch Kommas getrennte Attribute als Schlüssel-Wert-Paare enthalten.
  • In JSP wird die Direktive in <%@ %>-Tags beschrieben.

Syntax der Richtlinie:

<%@ directive attribute="" %>

Es gibt drei Arten von Anweisungen:

  1. Seitenanweisung
  2. Anweisung einschließen
  3. Taglib-Direktive

Jeder von ihnen wird im Folgenden anhand von Beispielen ausführlich beschrieben:

JSP-Seitendirektive

Syntax der Page-Direktive:

<%@ page…%>
  • Es stellt Attribute bereit, die auf die gesamte JSP-Seite angewendet werden.
  • Es definiert seitenabhängige Attribute wie Skriptsprache, Fehlerseite usw bufferAnforderungen.
  • Es wird verwendet, um Anweisungen für einen Container bereitzustellen, der sich auf die aktuelle JSP-Seite bezieht.

Following ist die Liste der Attribute, die mit der Seitenanweisung verknüpft sind:

  1. Sprache
  2. Erweitert
  3. Import
  4. Inhaltstyp
  5. Info
  6. Sitzung
  7. isThreadSafe
  8. Autoflush
  9. buffer
  10. IsErrorPage
  11. Seitenkodierung
  12. Fehlerseite
  13. istELIgonored

Mehr details über jedes Attribut

1) Sprache: Es definiert die Programmiersprache (zugrunde liegende Sprache), die auf der Seite verwendet wird.

Syntax der Sprache:

<%@ page language="value" %>

Hier ist der Wert die Programmiersprache (zugrundeliegende Sprache)

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

Erklärung des Codes: Im obigen Beispiel lautet der Attributsprachenwert Javac Dies ist in diesem Fall die zugrunde liegende Sprache. Daher würde der Code in Ausdrucks-Tags mit dem Java-Compiler kompiliert.

2) Erweitert: Dieses Attribut wird verwendet, um die Klasse zu erweitern (zu erben), wie es JAVA tut

Syntax von Extends:

<%@ page extends="value" %>

Hier stellt der Wert die Klasse dar, von der er geerbt werden muss.

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	   pageEncoding="ISO-8859-1"%>

<%@ page extends="demotest.DemoClass" %>

Erklärung des Codes: Im obigen Code erweitert JSP die DemoClass, die sich im Demotest-Paket befindet, und erweitert alle Klassenfunktionen.

3) Importieren: Dieses Attribut ist das am häufigsten verwendete Attribut in Seitendirektivenattributen. Es wird verwendet, um den Container anzuweisen, andere Java-Klassen, Schnittstellen, Aufzählungen usw. zu importieren, während Servlet-Code generiert wird. Es ähnelt Importanweisungen in Java-Klassen und -Schnittstellen.

Syntax des Imports:

<%@ page import="value" %>

Hier gibt der Wert die Klassen an, die importiert werden müssen.

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    import="java.util.Date" pageEncoding="ISO-8859-1"%>

Erklärung des Codes:

Im obigen Code importieren wir die Date-Klasse aus dem Paket java.util (alle Dienstprogrammklassen) und es können alle folgenden Methoden verwendet werdenwing Klasse.

4) Inhaltstyp:

  • Es definiert das Zeichenkodierungsschema, dh es wird verwendet, um den Inhaltstyp und den Zeichensatz der Antwort festzulegen
  • Der Standardtyp von contentType ist „text/html; Zeichensatz=ISO-8859-1“.

Syntax des contentType:

<%@ page contentType="value" %>

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

Erklärung des Codes:

Im obigen Code ist der Inhaltstyp auf „text/html“ festgelegt, er legt die Zeichenkodierung für JSP und für die generierte Antwortseite fest.

5) Infos

  • Es definiert eine Zeichenfolge, auf die mit der Methode getServletInfo() zugegriffen werden kann.
  • Dieses Attribut wird zum Festlegen der Servlet-Beschreibung verwendet.

Syntax der Informationen:

<%@ page info="value" %>

Hier stellt der Wert die Servlet-Informationen dar.

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>

Erklärung des Codes:

Im obigen Code kann die Zeichenfolge „Guru Directive JSP“ von der Servlet-Schnittstelle mit getServletInfo() abgerufen werden.

6) Sitzung

  • Die JSP-Seite erstellt standardmäßig eine Sitzung.
  • Manchmal muss in JSP keine Sitzung erstellt werden, daher können wir dieses Attribut in diesem Fall auf „false“ setzen. Der Standardwert des Sitzungsattributs ist „true“, und die Sitzung wird erstellt. Wenn es auf „false“ gesetzt ist , dann können wir dem Compiler anweisen, die Sitzung nicht standardmäßig zu erstellen.

Syntax der Sitzung:

<%@ page session="true/false"%>

In diesem Fall kann das Sitzungsattribut auf „true“ oder „false“ gesetzt werden

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    session="false"%>

Erklärung des Codes:

Im obigen Beispiel ist das Sitzungsattribut auf „false“ gesetzt, daher geben wir an, dass wir in dieser JSP keine Sitzung erstellen möchten

7) isThreadSafe:

  • Es definiert das Threading-Modell für das generierte Servlet.
  • Es gibt den Grad der Thread-Sicherheit an, der auf der Seite implementiert ist.
  • Sein Standardwert ist true, also gleichzeitigneous
  • Wir können dieses Attribut verwenden, um die SingleThreadModel-Schnittstelle im generierten Servlet zu implementieren.
  • Wenn wir es auf „false“ setzen, implementiert es SingleThreadModel und kann auf alle gemeinsam genutzten Objekte zugreifen, was zu Inkonsistenzen führen kann.

Syntax von isThreadSafe:

<% @ page isThreadSafe="true/false" %>

Hier stellt „wahr“ oder „falsch“ dar, ob syncDie Hronisierung wird dort dann als wahr und als falsch festgelegt.

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    isThreadSafe="true"%>

Erklärung des Codes:

Im obigen Code ist isThreadSafe daher auf „true“ gesetzt syncDie Hronisierung wird durchgeführt und es können mehrere Threads verwendet werden.

8) AutoSpülung:

Dieses Attribut gibt an, dass die bufferDie ed-Ausgabe sollte automatisch geleert werden oder nicht und der Standardwert dieses Attributs ist wahr.

Wenn der Wert auf „false“ gesetzt ist, wird der buffer wird nicht automatisch geleert und wenn es voll ist, erhalten wir eine Ausnahme.

Wenn das buffer ist keine, dann ist das Falsche unzulässig, und es gibt keine buffering, so dass es automatisch gespült wird.

Syntax von autoFlush:

<% @ page autoFlush="true/false" %>

Hier stellt wahr/falsch dar, ob bufferEs muss getan werden oder nicht

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    autoFlush="false"%>

Erklärung des Codes:

Im obigen Code ist die automatische Spülung auf „false“ gesetzt und daher buffering wird nicht durchgeführt und die Ausgabe muss manuell geleert werden.

9) Buffer:

  • Mithilfe dieses Attributs kann das Ausgabeantwortobjekt erstellt werden buffered..
  • Wir können die Größe definieren bufferDies erfolgt über dieses Attribut und die Standardgröße beträgt 8 KB.
  • Es weist das Servlet an, das zu schreiben buffer bevor in das Antwortobjekt geschrieben wird.

Syntax von buffer:

<%@ page buffer="value" %>

Hier stellt der Wert die Größe dar buffer was definiert werden muss. Wenn nein buffer, dann können wir als none schreiben, und wenn wir keinen Wert angeben, ist der Standardwert 8 KB

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    buffer="16KB"%>

Erklärung des Codes:

In dem obigen Code, buffer Die Größe wird mit 16 KB angegeben, wobei die buffer würde so groß sein

10) isErrorPage:

  • Es zeigt an, dass eine JSP-Seite mit einer Fehlerseite auf einer anderen JSP-Seite überprüft wird
  • Jede mit dem Attribut „isErrorPage“ deklarierte JSP-Datei kann dann Ausnahmen von anderen JSP-Seiten empfangen, die Fehlerseiten haben.
  • Ausnahmen gelten nur für diese Seiten.
  • Der Standardwert ist false.

Syntax von isErrorPage:

<%@ page isErrorPage="true/false"%>

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    isErrorPage="true"%>

Erklärung des Codes:

Im obigen Code ist isErrorPage auf true gesetzt. Daher prüft es, ob bei allen anderen JSPs das Attribut „errorPage“ (im nächsten Attribut beschrieben) festgelegt ist, und kann Ausnahmen verarbeiten.

11) Seitenkodierung:

Das Attribut „pageEncoding“ definiert die Zeichenkodierung für die JSP-Seite.

Der Standardwert ist „ISO-8859-1“, wenn kein anderer Wert angegeben ist.

Syntax von pageEncoding:

<%@ page pageEncoding="vaue" %>

Hier gibt value den Zeichensatzwert für JSP an

Beispiel:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    isErrorPage="true"%>

Erklärung des Codes:

Im obigen Code wurde „pageEncoding“ auf den Standardzeichensatz ISO-8859-1 eingestellt

12) Fehlerseite:

Dieses Attribut wird verwendet, um die Fehlerseite für die JSP-Seite festzulegen, wenn JSP eine Ausnahme auslöst und dann zur Ausnahmeseite umleitet.

Syntax von errorPage:

<%@ page errorPage="value" %>

Hier stellt der Wert den Wert der Fehler-JSP-Seite dar

Beispiel:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    errorPage="errorHandler.jsp"%>

Erklärung des Codes:

Im obigen Code haben wir zur Behandlung von Ausnahmen errroHandler.jsp

13) isELIgnored:

  • IsELIgnored ist ein Flag-Attribut, bei dem wir entscheiden müssen, ob EL-Tags ignoriert werden sollen oder nicht.
  • Sein Datentyp ist Java Enum und der Standardwert ist „false“, daher ist EL standardmäßig aktiviert.

Syntax von isELIgnored:

<%@ page isELIgnored="true/false" %>

Hier stellt wahr/falsch den Wert von EL dar, unabhängig davon, ob er ignoriert werden soll oder nicht.

Beispiel:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    isELIgnored="true"%>

Erklärung des Codes:

Im obigen Code ist isELIgnored wahr und daher Ausdruckssprache (EL) wird hier ignoriert.

Im folgenden Beispiel verwenden wir vier Attribute (Codezeile 1-2).

Beispiel mit vier Attributen

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    isELIgnored="false"%>
 <%@page import="java.util.Date" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Directive Guru JSP1</title>
</head>
<body>
<a>Date is:</a>
<%= new java.util.Date() %>
</body>
</html>

Erklärung des Codes:

Codezeile 1-2: Hier haben wir vier Attribute definiert, d

  • Sprache: Es ist eingestellt als Javac als Programmiersprache
  • contentType: Als text/html festlegen, um dem Compiler mitzuteilen, dass HTML formatiert werden muss
  • pageEncoding: In diesem Attribut wird der Standardzeichensatz festgelegt
  • isELIgnored: Ausdrucks-Tag ist falsch und wird daher nicht ignoriert

Codezeile 3: Hier haben wir das Importattribut verwendet und es importiert die „Date-Klasse“, die aus dem Java-Util-Paket stammt, und wir versuchen, das aktuelle Datum im Code anzuzeigen.

Wenn Sie den obigen Code ausführen, erhalten Sie Folgendeswing Ausgabe

JSP-Seitenrichtlinie

Output:

  • Datum ist: Aktuelles Datum unter Verwendung der Datumsmethode der Datumsklasse

JSP-Include-Direktive

  • Die JSP-Include-Direktive (Codezeile 8) wird verwendet, um eine Datei in eine andere Datei einzubinden
  • Bei dieser enthaltenen Datei kann es sich um HTML-, JSP-, Textdateien usw. handeln.
  • Es ist auch nützlich, wenn Sie Vorlagen mit Benutzeransichten erstellen und die Seiten in Kopf- und Fußzeilen sowie Seitenleistenaktionen unterteilen.
  • Es schließt die Datei während der Übersetzungsphase ein

Syntax der Include-Direktive:

<%@ include….%>

Beispiel:

Directive_jsp2.jsp (Hauptdatei)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ include file="directive_header_jsp3.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Directive JSP2</title>
</head>
<body>
<a>This is the main file</a> 
</body>
</html>

Directive_header_jsp3.jsp (in der Hauptdatei enthalten)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

</head>
<body>
<a>Header file : </a>
<%int count =1; count++;
out.println(count);%> :
</body>
</html>

Erklärung des Codes:

Direktive_jsp2.jsp:

Codezeile 3: In diesem Code verwenden wir Include-Tags, bei denen wir die Datei „directive_header_jsp3.jsp“ in die Hauptdatei (_jsp2.jsp) einbinden und die Ausgabe sowohl der Hauptdatei als auch der enthaltenen Datei erhalten.

Directive_header_jsp3.jsp:

Codezeile 11-12: Wir haben eine auf 1 initialisierte Variablenanzahl genommen und diese dann erhöht. Dies ergibt die Ausgabe in der Hauptdatei, wie unten gezeigt.

Wenn Sie den obigen Code ausführen, erhalten Sie Folgendeswing Ausgabe:

JSP-Include-Direktive

Ausgang:

  • Die Ausgabe ist Header-Datei: 2: Dies ist die Hauptdatei
  • Die Ausgabe wird aus der Datei „directive_jsp2.jsp“ ausgeführt, während die enthaltene Datei „directive_header_jsp3.jsp“ zuerst kompiliert wird.
  • Nachdem die eingebundene Datei fertig ist, wird die Hauptdatei ausgeführt und die Ausgabe erfolgt aus der Hauptdatei „Dies ist die Hauptdatei“. Sie erhalten also die Ausgabe als „Header-Datei: 2“ von _jsp3.jsp und „Dies ist die Hauptdatei“ von _jsp2.jsp.

JSP Taglib-Direktive

  • Die JSP-Taglib-Direktive wird verwendet, um die Tag-Bibliothek mit „taglib“ als Präfix zu definieren, das wir in verwenden können JSP.
  • Weitere Einzelheiten werden im Abschnitt „Benutzerdefinierte JSP-Tags“ behandelt
  • Die JSP-Taglib-Direktive wird in den JSP-Seiten unter Verwendung der JSP-Standard-Tag-Bibliotheken verwendet
  • Es verwendet eine Reihe benutzerdefinierter Tags, identifiziert den Speicherort der Bibliothek und bietet Möglichkeiten zur Identifizierung benutzerdefinierter Tags auf der JSP-Seite.

Syntax der Taglib-Direktive:

<%@ taglib uri="uri" prefix="value"%>

Hier ist das Attribut „uri“ ein eindeutiger Bezeichner im Tag-Bibliotheksdeskriptor und das Attribut „prefix“ ein Tag-Name.

Beispiel:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="gurutag" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Directive JSP</title>
<gurutag:hello/>
</head>
<body>
</body>
</html>

Erklärung des Codes:

Codezeile 3: Hier wird „taglib“ mit den Attributen uri und prefix definiert.

Codezeile 9: „gurutag“ ist das definierte benutzerdefinierte Tag und kann überall verwendet werden