JSP-Richtlinien
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 wie folgt beschrieben:
<%@ %>
Stichworte.
Syntax der Richtlinie:
<%@ directive attribute="" %>
Arten von Anweisungen in JSP
Es gibt drei Arten von Anweisungen in JSP:
- Seitenanweisung
- Anweisung einschließen
- Taglib-Direktive
Jeder von ihnen wird im Folgenden anhand von Beispielen ausführlich beschrieben:
1) 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 und Pufferanforderungen.
- Es wird verwendet, um Anweisungen für einen Container bereitzustellen, der sich auf die aktuelle JSP-Seite bezieht.
Nachfolgend finden Sie eine Liste der mit der Seitenanweisung verknüpften Attribute:
- Sprache
- Erweitert
- Import
- Inhaltstyp
- Info
- Sitzung
- isThreadSafe
- Autoflush
- puffern
- IsErrorPage
- Seitenkodierung
- Fehlerseite
- istELIgonored
Weitere Details zu den einzelnen Attributen
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 Java 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 Hilfsklassen) und sie kann alle Methoden der folgenden Klasse verwenden.
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; charset=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. In diesem Fall können wir dieses Attribut auf „false“ setzen. Der Standardwert des Sitzungsattributs ist „true“ und die Sitzung wird erstellt. Wenn es auf „false“ gesetzt ist, können wir dem Compiler mitteilen, dass die Sitzung standardmäßig nicht erstellt werden soll.
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.
- Der Standardwert ist „true“, sodass gleichzeitige
- 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 bedeutet „true“ oder „false“, dass, wenn eine Synchronisierung stattfindet, diese auf „true“ bzw. „false“ gesetzt wird.
Beispiel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isThreadSafe="true"%>
Erklärung des Codes:
Im obigen Code ist isThreadSafe auf „true“ gesetzt, daher wird eine Synchronisierung durchgeführt und es können mehrere Threads verwendet werden.
8) AutoSpülung:
Dieses Attribut gibt an, ob die gepufferte Ausgabe automatisch geleert werden soll oder nicht. Der Standardwert dieses Attributs ist „true“. Wenn der Wert auf „false“ gesetzt ist, wird der Puffer nicht automatisch geleert. Wenn er voll ist, erhalten wir eine Ausnahme. Wenn der Puffer leer ist, ist „false“ unzulässig und es gibt keine Pufferung. Daher wird er automatisch geleert.
Syntax von autoFlush:
<% @ page autoFlush="true/false" %>
Hier gibt true/false an, ob gepuffert werden soll 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 Leerung auf „false“ eingestellt, daher wird keine Pufferung durchgeführt und die Ausgabe muss manuell geleert werden.
9) Buffer:
- Mit diesem Attribut kann das Ausgabeantwortobjekt gepuffert werden.
- Mit diesem Attribut können wir die Größe der Pufferung definieren. Die Standardgröße beträgt 8 KB.
- Es weist das Servlet an, den Puffer zu schreiben, bevor es in das Antwortobjekt schreibt.
Syntax des Puffers:
<%@ page buffer="value" %>
Hier stellt der Wert die Größe des Puffers dar, der definiert werden muss. Wenn kein Puffer vorhanden ist, können wir „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:
Im obigen Code wird die Puffergröße mit 16 KB angegeben, wobei der Puffer diese Größe haben würde
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 Java 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 „Datumsklasse“, die aus Java util-Paket, und wir versuchen, das aktuelle Datum im Code anzuzeigen.
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe
Ausgang:
- Datum ist: Aktuelles Datum unter Verwendung der Datumsmethode der Datumsklasse
2)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 die folgende Ausgabe:
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.
3) 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