Tag di azione JSP

โšก Riepilogo intelligente

I tag di azione JSP utilizzano la sintassi XML per controllare il comportamento del motore servlet, consentendo agli sviluppatori di includere file, inoltrare richieste e lavorare con JavaBean e incorpora contenuti dinamici durante l'elaborazione della richiesta.

  • ๐Ÿท๏ธ Serie standard: Undici tag di azione standard gestiscono inclusioni, inoltri, bean, plugin e output XML.
  • ๐Ÿ“œ Sintassi XML: I tag di azione seguono rigorosamente la struttura XML e vengono rivalutati a ogni richiesta.
  • ๐Ÿ”— Integrazione dei fagioli: jsp:useBean, jsp:setProperty e jsp:getProperty gestiscono JavaCiclo di vita e proprietร  dei fagioli.
  • โœ… Flusso di pagina: jsp:include unisce le risorse; jsp:forward trasferisce la gestione della richiesta a un'altra pagina.
  • ๐Ÿงช XML dinamico: jsp:body, jsp:attribute, jsp:text e jsp:output generano strutture XML in modo dinamico.
  • ๐Ÿค– Modernizzazione dell'intelligenza artificiale: Gli assistenti basati sull'intelligenza artificiale aiutano a rifattorizzare il codice JSP legacy e a integrarlo in framework moderni.

Tag di azione JSP

Che cos'รจ un tag di azione JSP?

I tag di azione JSP utilizzano costrutti di sintassi XML per controllare il comportamento del motore servlet. Gli sviluppatori possono inserire dinamicamente un file, riutilizzarlo JavaI componenti Bean reindirizzano l'utente a un'altra pagina ed eseguono operazioni di runtime simili tramite i tag di azione JSP come include e forward. A differenza delle direttive, i tag di azione vengono rivalutati ogni volta che si accede alla pagina, il che li rende ideali per un comportamento dinamico durante l'elaborazione delle richieste.

Sintassi:

<jsp:action_name attribute="value" />

In questo tutorial sui tag di azione standard di JSP, imparerai come funziona ciascun tag di azione, cosa fa e come applicarlo in un file JSP reale.

Elenco dei tag di azione piรน comunemente utilizzati in JSP

Ci sono 11 tipi di tag di azione standard in JSP. Ecco l'elenco completo.

Nome tag azione Sintassi Descrizione
jsp:useBean Utilizzato per richiamare e utilizzare i bean nella pagina JSP.
jsp:includi <jsp:include page=โ€page URLโ€ flush=โ€true/falseโ€ /> Include un altro file JSP nel file corrente durante l'elaborazione della richiesta.
jsp:setProperty Imposta la proprietร  di un bean.
jsp:getProperty Recupera la proprietร  di un bean e la converte in una stringa per l'output.
jsp: avanti Inoltra la richiesta a un'altra pagina JSP o statica.
jsp:plug-in Introduce Java componenti come applet o bean in JSP e genera automaticamente i tag.
jsp:corpo Definisce gli elementi XML generati dinamicamente durante l'elaborazione della richiesta.
jsp:testo testo modello Utilizzato per inserire testo modello nelle pagine JSP, contenenti solo testo ed espressioni EL.
jsp:param Passa parametri all'interno dell'azione jsp:plugin per aggiungere dati extra.
jsp:attributo Definisce gli attributi XML generati dinamicamente.
jsp:uscita Specifica la dichiarazione XML o DOCTYPE da utilizzare nell'output.

Ora che avete l'elenco completo, analizzeremo singolarmente ciascuno di questi tag di azione JSP, illustrandone la sintassi e fornendo un esempio pratico.

jsp:Tag di azione useBean

  • Questo nome di azione viene utilizzato quando si desidera utilizzare JavaBean nella pagina JSP.
  • Con questo tag, puoi richiamare facilmente un bean e riutilizzare i componenti lato server.

Sintassi di jsp:useBean:

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

Qui id specifica l'identificativo per questo bean e class รจ il percorso completo della classe del bean.

Esempio:

<%@ 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>

Spiegazione del codice:

Code Linea 10: Nel codice sopra riportato, si utilizzano l'"id del bean" e il "class path" del bean.

jsp:include Action Tag

  • jsp:include viene utilizzato per inserire un file JSP in un altro file durante l'elaborazione della richiesta, in modo simile all'inclusione direttive.
  • Viene aggiunto durante la fase di elaborazione della richiesta, il che significa che il contenuto incluso viene valutato ogni volta che la pagina viene richiesta.

Sintassi di jsp:include:

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

Esempio:

In Action_jsp2 (Code Alla riga 10), stiamo includendo un file date.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>Date Guru JSP</title>
</head>
<body>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>

Data.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>

Spiegazione del codice:

Azione_jsp2.jsp

Code Linea 10: Nel primo file, includiamo il file date.jsp in action_jsp2.jsp.

Data.jsp:

Code Linea 11: Stiamo stampando la data odierna alla riga di codice 11 nel file date.jsp.

Quando si esegue il codice, l'output รจ il seguente.

jsp:includi

Produzione:

  • Visualizza la data e l'ora odierne, poichรฉ il file delle date รจ incluso nella pagina JSP principale.

jsp:setProperty Action Tag

  • Questa azione standard in JSP viene utilizzata per impostare la proprietร  del bean.
  • รˆ necessario definire un bean prima di impostare la proprietร .

Sintassi:

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

Qui, il nome definisce il bean di cui viene impostata la proprietร , e la proprietร  รจ la proprietร  che si desidera impostare. รˆ possibile impostare anche gli attributi value e param. In questo caso, value non รจ obbligatorio e definisce il valore assegnato alla proprietร . Param รจ il nome del parametro di richiesta tramite il quale รจ possibile recuperare il valore. L'esempio di setProperty verrร  mostrato di seguito insieme a getProperty.

Tag di azione jsp:getProperty

  • Questa azione viene utilizzata per ottenere la proprietร  del bean.
  • Converte la proprietร  in una stringa e infine la inserisce nell'output.

Sintassi:

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

Qui, il nome รจ il bean da cui deve essere recuperata la proprietร , e il bean deve essere definito. L'attributo property รจ il nome della proprietร  del bean da recuperare.

Esempio di setProperty e 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;
	}
}

Azione_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>

Spiegazione del codice:

TestBean.java:

Code Linea 5: TestBean implementa la classe Serializable. Si tratta di una classe bean con metodi getter e setter nel codice.

Code Linea 7Qui assegniamo alla variabile stringa privata msg il valore "null".

Code Riga 9-14Qui utilizziamo i metodi getter e setter della variabile "msg".

Azione_jsp3.jsp

Code Linea 10: Qui stiamo utilizzando il tag "useBean", che specifica il bean (TestBean) che deve essere utilizzato in questa classe JSP.

Code Linea 11: Qui stiamo impostando il valore per la proprietร  msg per il bean TestBean come "GuruTutorialโ€.

Code Linea 12: Qui, utilizzando getProperty, otteniamo il valore della proprietร  msg per il bean TestBean (GuruTutorial), che viene mostrato nell'output.

Quando esegui il codice sopra, ottieni il seguente output:

jsp:getProperty

Produzione:

In questo esempio, utilizzando TestBean, impostiamo la proprietร  "msg" usando setProperty e otteniamo il valore della proprietร  usando getProperty come "GuruTutorialโ€.

jsp:forward Action Tag

Il tag di azione jsp:forward viene utilizzato per inoltrare la richiesta a un'altra pagina JSP o a qualsiasi pagina statica.

Qui la richiesta puรฒ essere inoltrata senza parametri o con parametri.

Sintassi:

<jsp:forward page="value">

Qui il valore rappresenta dove deve essere inoltrata la richiesta.

Esempio:

Azione_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>

Spiegazione del codice:

Azione_jsp41.jsp

Code Linea 10: Qui utilizziamo l'azione JSP "forward" per inoltrare la richiesta alla pagina specificata nell'attributo, ovvero jsp_action_42.jsp.

Jsp_action_42.jsp

Code Linea 10: Una volta richiamata la funzione action_jsp41.jsp, la richiesta viene inoltrata a questa pagina e otteniamo come output "Questo รจ dopo l'inoltro alla pagina".

Eseguendo il codice sopra riportato, otteniamo il seguente output.

jsp: avanti

Produzione:

Chiamiamo action_jsp41.jsp, ma la richiesta viene inoltrata a jsp_action_42.jsp e otteniamo l'output da quella pagina come "Questo รจ dopo la pagina di inoltro".

jsp:plugin Action Tag

  • Si usa per introdurre Java componenti in JSP, dove il Java I componenti possono essere applet o bean.
  • Rileva il browser e aggiunge O tag nel file.

Sintassi:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Qui il tipo specifica se si tratta di un oggetto o di un bean.
  • Code Specifica il nome della classe dell'applet o del bean.
  • Codela base contiene la base URL che contiene file di classi.

jsp:param Action Tag

  • Questo รจ un oggetto figlio dell'oggetto plugin descritto sopra.
  • Deve contenere una o piรน azioni per fornire parametri aggiuntivi.

Sintassi:

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

Esempio di plugin e parametro:

Azione_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>

studente.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;
	
}

Spiegazione del codice:

Azione_jsp5.jsp

Code Linea 10: Qui stiamo utilizzando l'oggetto jsp:plugin, a cui aggiungiamo tre attributi.

  • Tipo โ€“ in questo caso รจ fagiolo.
  • Code โ€“ nome del file.
  • Codebase โ€“ percorso contenente il nome del pacchetto.

Code Linea 11-14: Qui prendiamo l'oggetto jsp:params, al cui interno si trova un oggetto figlio param con gli attributi name e value, e impostiamo i valori di id e name in questi attributi.

studente.java

Code 7-17: Utilizziamo i metodi getter e setter per le variabili id โ€‹โ€‹e name.

Code 19-20: Stiamo inizializzando le variabili id โ€‹โ€‹e name.

Qui otterremo l'output nel caso in cui i valori impostati del parametro vengano utilizzati nel bean Student. In questo caso, non avremo alcun output poichรฉ stiamo solo impostando e recuperando i valori del parametro, ma non li stampiamo da nessuna parte.

tag di azione jsp:body

  • Questo tag viene utilizzato per definire dinamicamente l'XML, dove Elementi puรฒ essere generato al momento della richiesta anzichรฉ al momento della compilazione.
  • Definisce l'XML, che viene generato dinamicamente come corpo di un elemento.

Sintassi:

<jsp:body></jsp:body>

Qui scriviamo il tag body XML all'interno di questi tag.

jsp:attributo Action Tag

  • Questo tag viene utilizzato per definire l'XML in modo dinamico, consentendo la generazione degli elementi al momento della richiesta anzichรฉ in fase di compilazione.
  • Definisce l'attributo XML che verrร  generato dinamicamente.

Sintassi:

<jsp:attribute></jsp:attribute>

Qui scriviamo il tag attributo XML.

Esempio di corpo e attributo:

Azione_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>

Spiegazione del codice:

Code Linea 10: Qui definiamo un elemento, che viene generato dinamicamente come XMLe il suo nome sarร  GuruXMLElement.

Code Linea 11-13: Qui definiamo un attributo, che sarร  un attributo XML dell'XML generato dinamicamente.

Code Linea 14: Qui abbiamo l'azione "body", dove scriviamo il corpo XML, che verrร  generato dinamicamente.

Quando esegui il codice sopra, ottieni il seguente output:

jsp:attributo

Produzione:

Qui otteniamo l'output dal tag body dell'XML generato.

tag di azione jsp:text

  • Viene utilizzato per inserire testo modello nelle pagine JSP.
  • Il suo corpo non contiene altri elementi e contiene solo testo ed espressioni EL.

Sintassi:

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

Qui il testo del modello si riferisce solo al testo del modello (che puรฒ essere qualsiasi testo generico che deve essere stampato su JSP) o qualsiasi Espressione EL.

Esempio:

Azione_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>

Spiegazione del codice:

Code Linea 10: Qui stiamo prendendo l'oggetto testo per stampare il testo del modello.

Quando si esegue il codice sopra riportato, si ottiene il seguente output.

jsp:testo

Produzione:

Stiamo ottenendo Guru Testo modello, che viene inserito all'interno dell'oggetto azione testo.

jsp:output Action Tag

  • Specifica la dichiarazione XML o la dichiarazione DOCTYPE di JSP.
  • La dichiarazione XML e il DOCTYPE vengono dichiarati dall'output.

Sintassi:

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

Qui, doctype-root-element indica l'elemento radice del documento XML in DOCTYPE. Doctype-system indica il doctype generato nell'output e fornisce un letterale di sistema.

Esempio:

<%@ 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>

Spiegazione del codice:

Code Linea 10: Qui utilizziamo l'oggetto azione di output per generare un DOCTYPE, che internamente verrร  generato in questo formato:

Non ci sarร  alcun output visibile in quanto verrร  generato internamente.

DOMANDE FREQUENTI

I tag di azione JSP sono elementi in stile XML che controllano il comportamento del motore servlet durante l'elaborazione delle richieste. Consentono agli sviluppatori di includere file, inoltrare richieste, utilizzare JavaBean, applet incorporate e generazione dinamica di output XML all'interno di una pagina JSP.

Le direttive vengono elaborate una sola volta al momento della traduzione della pagina e influenzano la struttura complessiva della pagina. I tag di azione vengono rivalutati ad ogni richiesta, il che li rende adatti a comportamenti dinamici come l'inclusione di contenuti, l'inoltro delle richieste e il lavoro con JavaBean in fase di esecuzione.

Utilizza `jsp:include` quando devi unire contenuti da un'altra pagina alla risposta corrente, come intestazioni o piรจ di pagina. Utilizza `jsp:forward` quando il controllo deve essere completamente trasferito a un'altra risorsa e la pagina corrente non deve produrre ulteriore output.

jsp:useBean crea un'istanza o individua un JavaBean in un determinato ambito. jsp:setProperty assegna un valore a una proprietร  del bean, e jsp:getProperty legge il valore della proprietร  e lo scrive come stringa nella risposta, consentendo una netta separazione tra la logica di presentazione e quella del bean.

jsp:body e jsp:attribute definiscono corpi e attributi dinamici degli elementi XML. jsp:text scrive testo letterale del template ed espressioni EL, mentre jsp:output controlla la dichiarazione XML o DOCTYPE prodotta quando la JSP esegue il rendering della sua risposta.

L'intelligenza artificiale (IA) รจ integrata nelle applicazioni JSP e JEE tramite chiamate REST alle API del modello, assistenti di chat incorporati e widget di raccomandazione visualizzati sulle pagine JSP. L'IA contribuisce inoltre a generare codice JSP standard, a suggerire l'utilizzo dei tag di azione e a convalidare il collegamento dei bean durante lo sviluppo.

Sรฌ. Gli strumenti basati sull'intelligenza artificiale analizzano il codice JSP legacy, identificano i pattern dei tag di azione e propongono refactoring per framework moderni come Spring MVC, Thymeleaf o REST, oltre a un'applicazione a pagina singola. Generano anche test di migrazione, report sulle dipendenze e piani di refactoring dettagliati.

Riassumi questo post con: