JSP-Aktions-Tags

โšก Intelligente Zusammenfassung

JSP-Action-Tags verwenden XML-Syntax, um das Verhalten der Servlet-Engine zu steuern und Entwicklern so das Einbinden von Dateien, das Weiterleiten von Anfragen und die Arbeit mit Servlet-Engines zu ermรถglichen. JavaBohnen und betten dynamische Inhalte wรคhrend der Anfrageverarbeitung ein.

  • ๐Ÿท๏ธ Standard-Set: Elf Standard-Action-Tags verwalten Includes, Forwards, Beans, Plugins und XML-Ausgabe.
  • ๐Ÿ“œ XML-Syntax: Action-Tags folgen einer strikten XML-Form und werden bei jeder Anfrage neu ausgewertet.
  • ๐Ÿ”— Bean-Integration: jsp:useBean, jsp:setProperty und jsp:getProperty verwalten JavaLebenszyklus und Eigenschaften der Bohne.
  • โœ… Seitenfluss: jsp:include fรผhrt Ressourcen zusammen; jsp:forward leitet die Anfrageverarbeitung an eine andere Seite weiter.
  • ๐Ÿงช Dynamisches XML: jsp:body, jsp:attribute, jsp:text und jsp:output generieren dynamisch XML-Strukturen.
  • ๐Ÿค– KI-Modernisierung: KI-Assistenten helfen dabei, veralteten JSP-Aktionscode in moderne Frameworks zu รผberfรผhren.

JSP-Aktions-Tags

Was ist ein JSP-Action-Tag?

JSP-Action-Tags verwenden XML-Syntaxkonstrukte, um das Verhalten der Servlet-Engine zu steuern. Entwickler kรถnnen dynamisch eine Datei einfรผgen und wiederverwenden. JavaBean-Komponenten leiten den Benutzer auf eine andere Seite weiter und fรผhren รคhnliche Laufzeitoperationen mithilfe von JSP-Action-Tags wie `include` und `forward` durch. Im Gegensatz zu Direktiven werden Action-Tags bei jedem Seitenaufruf neu ausgewertet, wodurch sie sich ideal fรผr dynamisches Verhalten wรคhrend der Anfrageverarbeitung eignen.

Syntax:

<jsp:action_name attribute="value" />

In diesem Tutorial zu JSP Standard Action Tags lernen Sie, wie die einzelnen Action Tags funktionieren, was sie bewirken und wie Sie sie in einer realen JSP-Datei anwenden.

Liste der hรคufig verwendeten Action-Tags in JSP

Es gibt 11 Arten von Standard-Aktions-Tags in JSP. Hier ist die vollstรคndige Liste.

Name des Aktionstags Syntax Beschreibung
jsp:useBean Wird zum Aufrufen und Verwenden von Beans auf der JSP-Seite verwendet.
jsp:include <jsp:include page=โ€page URLโ€ flush=โ€true/falseโ€ /> Fรผgt wรคhrend der Anforderungsverarbeitung eine weitere JSP-Datei in die aktuelle Datei ein.
jsp:setProperty Legt die Eigenschaft einer Bean fest.
jsp:getProperty Ruft die Eigenschaft einer Bean ab und konvertiert sie zur Ausgabe in eine Zeichenfolge.
jsp:weiterleiten Leitet die Anforderung an eine andere JSP oder statische Seite weiter.
jsp:plugin Stellt vor Java Komponenten wie Applets oder Beans in JSP und generiert automatisch Tags.
jsp:body Definiert XML-Elemente, die wรคhrend der Anforderungsverarbeitung dynamisch generiert werden.
jsp:text Vorlagentext Wird verwendet, um Vorlagentext in JSP-Seiten einzufรผgen, der nur Text und EL-Ausdrรผcke enthรคlt.
jsp:param รœbergibt Parameter innerhalb der jsp:plugin-Aktion, um zusรคtzliche Daten hinzuzufรผgen.
jsp:Attribut Definiert XML-Attribute, die dynamisch generiert werden.
jsp:Ausgabe Gibt die XML- oder DOCTYPE-Deklaration an, die in der Ausgabe verwendet werden soll.

Nachdem Sie nun die vollstรคndige Liste haben, werden wir jedes dieser JSP Action Tags einzeln mit Syntax und einem funktionierenden Beispiel untersuchen.

jsp:useBean Action Tag

  • Dieser Aktionsname wird verwendet, wenn Sie Folgendes verwenden mรถchten: JavaBohnen auf der JSP-Seite.
  • Mit diesem Tag kรถnnen Sie auf einfache Weise eine Bean aufrufen und serverseitige Komponenten wiederverwenden.

Syntax von jsp:useBean:

<jsp:useBean id="" class="" />

Hierbei gibt id die Kennung fรผr diese Bean an und class ist der vollstรคndige Pfad der Bean-Klasse.

Ejemplo:

<%@ 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">
<title>Action JSP1</title>
</head>
<body>
<jsp:useBean id="name" class="demotest.DemoClass">
</body>
</html>

Erklรคrung des Codes:

Code Linie 10: Im obigen Code verwenden Sie die โ€žBean-IDโ€œ und den โ€žKlassenpfadโ€œ der Bean.

jsp:include Action-Tag

  • jsp:include wird verwendet, um eine JSP-Datei wรคhrend der Anfrageverarbeitung in eine andere Datei einzufรผgen, รคhnlich wie beim Einbinden. Richtlinien.
  • Es wird wรคhrend der Anfrageverarbeitungsphase hinzugefรผgt, was bedeutet, dass der enthaltene Inhalt jedes Mal neu ausgewertet wird, wenn die Seite angefordert wird.

Syntax von jsp:include:

<jsp:include page="page URL" flush="true/false">

Ejemplo:

In Action_jsp2 (Code In Zeile 10 binden wir eine date.jsp-Datei ein.

<%@ 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">
<title>Date Guru JSP</title>
</head>
<body>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>

Datum.jsp

<%@ 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">
<title>Insert title here</title>
</head>
<body>
<p>
Today's date: <%= new java.util.Date().toLocaleString()%>
</p>
</body>
</html>

Erklรคrung des Codes:

Action_jsp2.jsp

Code Linie 10: In der ersten Datei binden wir die Datei date.jsp in action_jsp2.jsp ein.

Date.jsp:

Code Linie 11: In der Datei date.jsp wird das heutige Datum in Zeile 11 ausgegeben.

Wenn Sie den Code ausfรผhren, erhalten Sie folgende Ausgabe.

jsp:include

Ausgang:

  • Es zeigt das heutige Datum mit Uhrzeit an, da die Datumsdatei in die Haupt-JSP-Seite eingebunden ist.

jsp:setProperty Action Tag

  • Diese Standardaktion in JSP wird verwendet, um die Eigenschaften des Beans festzulegen.
  • Sie mรผssen eine Bean definieren, bevor Sie die Eigenschaft festlegen kรถnnen.

Syntax:

<jsp:setProperty name="" property="" >

Hier definiert der Name die Bean, deren Eigenschaft gesetzt wird, und โ€žpropertyโ€œ ist die Eigenschaft, die Sie setzen mรถchten. Sie kรถnnen auch die Attribute โ€žvalueโ€œ und โ€žparamโ€œ festlegen. โ€žvalueโ€œ ist optional und definiert den Wert, der der Eigenschaft zugewiesen wird. โ€žparamโ€œ ist der Name des Anfrageparameters, mit dem der Wert abgerufen werden kann. Das Beispiel fรผr โ€žsetPropertyโ€œ wird im Folgenden zusammen mit โ€žgetPropertyโ€œ veranschaulicht.

jsp:getProperty Action Tag

  • Diese Aktion dient dazu, die Eigenschaften der Bean abzurufen.
  • Es wandelt die Eigenschaft in einen String um und fรผgt diesen schlieรŸlich in die Ausgabe ein.

Syntax:

<jsp:getProperty name="" property="" >

Hierbei ist der Name die Bean, aus der die Eigenschaft abgerufen werden soll, und die Bean muss definiert sein. Das Eigenschaftsattribut ist der Name der Bean-Eigenschaft, die abgerufen werden soll.

Beispiel fรผr setProperty und getProperty:

TestBean.java:

package demotest;

import java.io.Serializable;

public class TestBean implements Serializable{
	
	private String msg = "null";
	
	public String getMsg() {
		return msg;
	}
	
	public void setMsg(String msg) {
		this.msg = msg;
	}
}

Action_jsp3.jsp

<%@ 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">
<title>Guru Action 3</title>
</head>
<body>
<jsp:useBean id="GuruTest" class="demotest.TestBean" />
<jsp:setProperty name="GuruTest" property="msg" value="GuruTutorial" />
<jsp:getProperty name="GuruTest" property="msg" />
</body>
</html>

Erklรคrung des Codes:

TestBean.java:

Code Linie 5TestBean implementiert die Klasse Serializable. Es handelt sich um eine Bean-Klasse mit Gettern und Settern im Code.

Code Linie 7Hier wird die private String-Variable msg als โ€žnullโ€œ behandelt.

Code Zeile 9-14Hier verwenden wir Getter und Setter der Variable โ€žmsgโ€œ.

Action_jsp3.jsp

Code Linie 10: Hier verwenden wir das โ€žuseBeanโ€œ-Tag, mit dem wir die Bean (TestBean) angeben, die in dieser JSP-Klasse verwendet werden soll.

Code Linie 11: Hier setzen wir den Wert fรผr die Eigenschaft msg der Bean TestBean auf โ€žGuruTutorialโ€œ.

Code Linie 12: Hier rufen wir mit getProperty den Wert der Eigenschaft msg fรผr die Bean TestBean ab (GuruTutorial), das in der Ausgabe angezeigt wird.

Wenn Sie den obigen Code ausfรผhren, erhalten Sie die folgende Ausgabe:

jsp:getProperty

Ausgang:

In diesem Beispiel verwenden wir TestBean, um die Eigenschaft โ€žmsgโ€œ mit setProperty festzulegen und ihren Wert mit getProperty abzurufen.GuruTutorialโ€œ.

jsp:forward Action-Tag

Das Action-Tag jsp:forward dient dazu, die Anfrage an eine andere JSP-Seite oder eine beliebige statische Seite weiterzuleiten.

Hier kann die Anfrage ohne Parameter oder mit Parametern weitergeleitet werden.

Syntax:

<jsp:forward page="value">

Hier stellt der Wert dar, wohin die Anfrage weitergeleitet werden muss.

Ejemplo:

Action_jsp41.jsp

<%@ 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">
<title>Guru Action JSP1</title>
</head>
<body>
<jsp:forward page="jsp_action_42.jsp" />
</body>
</html>

Jsp_action_42.jsp

Guru Action JSP2</title>
</head>
<body>
<a>This is after forward page</a>
</body>
</html>

Erklรคrung des Codes:

Action_jsp41.jsp

Code Linie 10: Hier verwenden wir die Forward-JSP-Aktion, um die Anfrage an die im Attribut angegebene Seite weiterzuleiten, also jsp_action_42.jsp.

Jsp_action_42.jsp

Code Linie 10: Sobald wir action_jsp41.jsp aufrufen, wird die Anfrage an diese Seite weitergeleitet, und wir erhalten die Ausgabe โ€žDies ist die Seite nach der Weiterleitungโ€œ.

Wenn wir den obigen Code ausfรผhren, erhalten wir die folgende Ausgabe.

jsp:weiterleiten

Ausgang:

Wir rufen action_jsp41.jsp auf, aber die Anfrage wird an jsp_action_42.jsp weitergeleitet, und wir erhalten von dieser Seite die Ausgabe โ€žDies ist die Seite nach der Weiterleitungโ€œ.

jsp:plugin Action Tag

  • Es wird zur Einfรผhrung verwendet Java Komponenten in JSP, wo die Java Komponenten kรถnnen entweder ein Applet oder eine Bean sein.
  • Es erkennt den Browser und fรผgt hinzu oder Tags in die Datei einfรผgen.

Syntax:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Hier gibt der Typ entweder ein Objekt oder eine Bean an.
  • Code Gibt den Klassennamen des Applets oder der Bean an.
  • CodeDie Basis enthรคlt die Basis URL das Klassendateien enthรคlt.

jsp:param Action Tag

  • Dies ist ein untergeordnetes Objekt des oben beschriebenen Plugin-Objekts.
  • Es muss eine oder mehrere Aktionen enthalten, um zusรคtzliche Parameter bereitzustellen.

Syntax:

<jsp:params>
<jsp:param name="val" value="val"/ >
</jsp:params>

Beispiel fรผr Plugin und Parameter:

Action_jsp5.jsp

<%@ 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">
<title>Action guru jsp5</title>
</head>
<body>
<jsp:plugin type="bean" code="Student.class" codebase="demotest.Student">
  <jsp:params>
     <jsp:param name="id" value="5" />
     <jsp:param name="name" value="guru" />
  </jsp:params>
</jsp:plugin>
</body>
</html>

Student.java

package demotest; 

import java.io.Serializable;

public class Student implements Serializable {
	
	public String getName () { 
		return name; 
	}
	public void setName (String name) {
		this.name = name;
	}
	public int getId() { 
		return id; 
	} 
	public void setId (int id) { 
		this.id = id; 
	} 
	private String name = "null"; 
	private int id = 0;
	
}

Erklรคrung des Codes:

Action_jsp5.jsp

Code Linie 10: Hier verwenden wir das jsp:plugin-Objekt, dem wir drei Attribute รผbergeben.

  • Art โ€“ in diesem Fall Bohne.
  • Code โ€“ Name der Datei.
  • CodeBasis โ€“ Pfad mit dem Paketnamen.

Code Zeile 11-14: Hier nehmen wir das jsp:params-Objekt, unter dem sich ein untergeordnetes param-Objekt mit den Attributen name und value befindet, und wir setzen die Werte id und name in diesen Attributen.

Student.java

Code 7-17: Wir verwenden Getter und Setter fรผr die Variablen id und name.

Code 19-20: Wir initialisieren die Variablen id und name.

Hier erhalten wir eine Ausgabe fรผr den Fall, dass die festgelegten Werte des Parameters in der Student-Bean verwendet werden. In diesem Fall erhalten wir keine Ausgabe, da wir die Werte des Parameters lediglich setzen und abrufen, sie aber nirgends ausgeben.

jsp:body Action-Tag

  • Dieses Tag wird verwendet, um das XML dynamisch zu definieren, wobei Elements Serie. kann wรคhrend der Anfragezeit anstatt zur Kompilierungszeit generiert werden.
  • Es definiert das XML, das dynamisch als Elementkรถrper generiert wird.

Syntax:

<jsp:body></jsp:body>

Hier schreiben wir den XML-Body-Tag innerhalb dieser Tags.

jsp:attribute Action Tag

  • Dieses Tag dient dazu, das XML dynamisch zu definieren, wobei die Elemente zur Anfragezeit und nicht zur Kompilierungszeit generiert werden kรถnnen.
  • Es definiert das Attribut des XML-Codes, das dynamisch generiert wird.

Syntax:

<jsp:attribute></jsp:attribute>

Hier schreiben wir das Attribut-Tag von XML.

Beispiel fรผr Kรถrper und Attribut:

Action_jsp6.jsp

<%@ 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">
<title>Action Guru JSP6</title>
</head>
<body>
<jsp:element name="GuruXMLElement">
<jsp:attribute name="GuruXMLattribute">
Value
</jsp:attribute>
<jsp:body>Guru XML</jsp:body>
</jsp:element>
</body>
</html>

Erklรคrung des Codes:

Code Linie 10: Hier definieren wir ein Element, das dynamisch generiert wird als XMLund sein Name wird sein GuruXMLElement.

Code Zeile 11-13: Hier definieren wir ein Attribut, das ein XML-Attribut des dynamisch generierten XML sein wird.

Code Linie 14: Hier haben wir die Body-Aktion, in der wir den XML-Body schreiben, der dynamisch generiert wird.

Wenn Sie den obigen Code ausfรผhren, erhalten Sie die folgende Ausgabe:

jsp:Attribut

Ausgang:

Hier erhalten wir die Ausgabe des Body-Tags des generierten XML-Dokuments.

jsp:text Action-Tag

  • Es dient dazu, Vorlagentext in JSP-Seiten einzufรผgen.
  • Sein Hauptteil enthรคlt keine anderen Elemente und enthรคlt nur Text und EL-Ausdrรผcke.

Syntax:

<jsp:text>template text</jsp:text>

Hierbei bezieht sich der Vorlagentext ausschlieรŸlich auf Vorlagentext (der beliebiger generischer Text sein kann, der auf JSP ausgegeben werden soll) oder auf jeglichen anderen Text. EL-Ausdruck.

Ejemplo:

Action_jsp7.jsp

<%@ 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">
<title>Guru Action JSP7</title>
</head>
<body>
<jsp:text>Guru Template Text</jsp:text>
</body>
</html>

Erklรคrung des Codes:

Code Linie 10: Hier verwenden wir das Textobjekt, um den Vorlagentext auszugeben.

Wenn Sie den obigen Code ausfรผhren, erhalten Sie die folgende Ausgabe.

jsp:text

Ausgang:

Wir bekommen Guru Vorlagentext, der innerhalb des Textaktionsobjekts platziert wird.

jsp:output Action-Tag

  • Es spezifiziert die XML-Deklaration oder die DOCTYPE-Deklaration von JSP.
  • Die XML-Deklaration und der DOCTYPE werden durch die Ausgabe deklariert.

Syntax:

<jsp:output doctype-root-element="" doctype-system="">

Hierbei bezeichnet doctype-root-element das Wurzelelement des XML-Dokuments in DOCTYPE. Doctype-system gibt den Dokumenttyp an, der in der Ausgabe generiert wird und ein Systemliteral liefert.

Ejemplo:

<%@ 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">
<title>Action Guru JSP8</title>
</head>
<body>
<jsp:output doctype-root-element="html PUBLIC" doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
</body>
</html>

Erklรคrung des Codes:

Code Linie 10: Hier verwenden wir das Ausgabeaktionsobjekt, um einen DOCTYPE zu generieren, der intern in diesem Format generiert wird:

Hierfรผr gibt es keine sichtbare Ausgabe, da dies intern generiert wird.

Hรคufig gestellte Fragen

JSP-Action-Tags sind XML-รคhnliche Elemente, die das Verhalten der Servlet-Engine wรคhrend der Anfrageverarbeitung steuern. Sie ermรถglichen es Entwicklern, Dateien einzubinden, Anfragen weiterzuleiten und โ€ฆ JavaBeans, eingebettete Applets und die dynamische Generierung von XML-Ausgabe innerhalb einer JSP-Seite.

Direktiven werden einmalig bei der Seitenรผbersetzung verarbeitet und beeinflussen die gesamte Seitenstruktur. Aktions-Tags werden bei jeder Anfrage neu ausgewertet, wodurch sie sich fรผr dynamisches Verhalten wie das Einbinden von Inhalten, das Weiterleiten von Anfragen und die Interaktion mit anderen Elementen eignen. JavaBohnen zur Laufzeit.

Verwenden Sie `jsp:include`, wenn Sie Inhalte einer anderen Seite in die aktuelle Antwort einfรผgen mรผssen, z. B. Kopf- oder FuรŸzeilen. Verwenden Sie `jsp:forward`, wenn die Steuerung vollstรคndig an eine andere Ressource รผbergeben werden soll und die aktuelle Seite keine weitere Ausgabe erzeugen soll.

jsp:useBean instanziiert oder findet eine JavaBean in einem bestimmten Gรผltigkeitsbereich. jsp:setProperty weist einer Bean-Eigenschaft einen Wert zu, und jsp:getProperty liest den Eigenschaftswert und schreibt ihn als Zeichenkette in die Antwort, wodurch eine saubere Trennung zwischen Prรคsentation und Bean-Logik ermรถglicht wird.

`jsp:body` und `jsp:attribute` definieren dynamische XML-Elementkรถrper und -Attribute. `jsp:text` schreibt Vorlagentext und EL-Ausdrรผcke, und `jsp:output` steuert die XML-Deklaration oder den DOCTYPE, der beim Rendern der JSP-Antwort erzeugt wird.

Kรผnstliche Intelligenz (KI) wird รผber REST-Aufrufe an Modell-APIs, eingebettete Chat-Assistenten und auf JSP-Seiten gerenderte Empfehlungs-Widgets in JSP- und JEE-Anwendungen integriert. KI unterstรผtzt auรŸerdem die Generierung von JSP-Standardcode, schlรคgt die Verwendung von Action-Tags vor und validiert die Bean-Verknรผpfung wรคhrend der Entwicklung.

Ja. KI-gestรผtzte Tools analysieren รคlteren JSP-Code, identifizieren Action-Tag-Muster und schlagen Refactorings fรผr moderne Frameworks wie Spring MVC, Thymeleaf oder REST plus Single-Page-Anwendung vor. Sie generieren auรŸerdem Migrationstests, Abhรคngigkeitsberichte und detaillierte Refactoring-Plรคne.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: