JSP akcijske oznake

⚡ Pametni sažetak

JSP oznake akcija koriste XML sintaksu za kontrolu ponašanja servlet mehanizma, omogućujući programerima uključivanje datoteka, prosljeđivanje zahtjeva, rad s JavaBeans i ugrađuju dinamički sadržaj tijekom obrade zahtjeva.

  • 🏷️ Standardni set: Jedanaest standardnih oznaka akcija obrađuje uključivanja, prosljeđivanja, beanove, dodatke i XML izlaz.
  • 📜 XML sintaksa: Oznake akcija slijede strogi XML oblik i ponovno se procjenjuju pri svakom zahtjevu.
  • 🔗 Integracija beana: Upravljanje jsp:useBean, jsp:setProperty i jsp:getProperty JavaŽivotni ciklus i svojstva zrna.
  • Tijek stranice: jsp:include spaja resurse; jsp:forward prenosi rukovanje zahtjevima na drugu stranicu.
  • 🧪 Dinamički XML: jsp:body, jsp:attribute, jsp:text i jsp:output dinamički generiraju XML strukture.
  • 🤖 Modernizacija umjetne inteligencije: AI asistenti pomažu u refaktoriranju naslijeđenog JSP akcijskog koda u moderne okvire.

JSP akcijske oznake

Što je JSP oznaka akcije?

JSP oznake akcija koriste XML sintaksne konstrukcije za kontrolu ponašanja servlet mehanizma. Programeri mogu dinamički umetnuti datoteku, ponovno je koristiti JavaBean komponente prosljeđuju korisnika na drugu stranicu i izvode slične operacije tijekom izvođenja putem JSP Action Tags-ova poput include i forward. Za razliku od direktiva, action tag-ovi se ponovno procjenjuju svaki put kada se pristupa stranici, što ih čini idealnim za dinamičko ponašanje tijekom obrade zahtjeva.

Sintaksa:

<jsp:action_name attribute="value" />

U ovom vodiču o standardnim JSP oznakama akcija, naučit ćete kako svaka oznaka akcije funkcionira, što radi i kako je primijeniti u pravoj JSP datoteci.

Popis često korištenih oznaka akcija u JSP-u

Postoji 11 vrsta standardnih akcijskih oznaka u JSP-u, a ovdje je njihov potpuni popis.

Naziv radnje oznake Sintaksa Description
jsp:useBean Koristi se za pozivanje i korištenje beana na JSP stranici.
jsp: uključiti <jsp:include page=”page URL”flush=”true/false” /> Uključuje drugu JSP datoteku u trenutnu datoteku tijekom obrade zahtjeva.
jsp:setProperty Postavlja svojstvo graha.
jsp:getProperty Dohvaća svojstvo beana i pretvara ga u niz za izlaz.
jsp: naprijed Prosljeđuje zahtjev na drugi JSP ili statičnu stranicu.
jsp: dodatak Uvodi Java komponente poput apleta ili beana u JSP i automatski generira oznake.
jsp:tijelo Definira XML elemente koji se dinamički generiraju tijekom obrade zahtjeva.
jsp:tekst tekst predloška Koristi se za umetanje teksta predloška u JSP stranice, koje sadrže samo tekst i EL izraze.
jsp:param Prosljeđuje parametre unutar akcije jsp:plugin za dodavanje dodatnih podataka.
jsp:atribut Definira XML atribute koji se dinamički generiraju.
jsp: izlaz Određuje XML ili DOCTYPE deklaraciju koja će se koristiti u izlazu.

Sada kada imate cijeli popis, istražit ćemo svaku od ovih JSP oznaka akcija jednu po jednu sa sintaksom i radnim primjerom.

jsp:useBean Oznaka akcije

  • Ovaj naziv akcije se koristi kada želite koristiti JavaBeanovi na JSP stranici.
  • Pomoću ove oznake možete jednostavno pozvati bean i ponovno koristiti komponente na strani poslužitelja.

Sintaksa jsp:useBean-a:

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

Ovdje id određuje identifikator za ovaj bean, a class je puna putanja klase beana.

Primjer:

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

Objašnjenje koda:

Code Redak 10: U gornjem kodu koristite "bean id" i "class path" beana.

jsp:uključi oznaku akcije

  • jsp:include se koristi za umetanje JSP datoteke u drugu datoteku tijekom obrade zahtjeva, slično kao i uključivanje Direktive.
  • Dodaje se tijekom faze obrade zahtjeva, što znači da se uključeni sadržaj procjenjuje svaki put kada se stranica zatraži.

Sintaksa jsp:include:

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

Primjer:

U Action_jsp2 (Code Redak 10), uključujemo datoteku 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>

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>

Objašnjenje koda:

Akcija_jsp2.jsp

Code Redak 10: U prvoj datoteci uključujemo datoteku date.jsp u action_jsp2.jsp.

Datum.jsp:

Code Redak 11: Današnji datum ispisujemo u liniji koda 11 u date.jsp.

Kada izvršite kod, izlaz je sljedeći.

jsp: uključiti

Izlaz:

  • Prikazuje današnji datum s vremenom jer je datoteka s datumom uključena u glavnu JSP stranicu.

Oznaka akcije jsp:setProperty

  • Ova standardna akcija u JSP-u se koristi za postavljanje svojstva beana.
  • Prije postavljanja svojstva morate definirati bean.

Sintaksa:

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

Ovdje name definira bean čije je svojstvo postavljeno, a property je svojstvo koje želite postaviti. Također možete postaviti atribute value i param. Ovdje value nije obavezan i definira vrijednost koja je dodijeljena svojstvu. Ovdje je param naziv parametra zahtjeva pomoću kojeg se vrijednost može dohvatiti. Primjer setProperty bit će prikazan u nastavku s getProperty.

Oznaka akcije jsp:getProperty

  • Ova akcija se koristi za dobivanje svojstva graha.
  • Pretvara svojstvo u niz znakova i na kraju ga ubacuje u izlaz.

Sintaksa:

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

Ovdje je naziv beana iz kojeg se svojstvo treba dohvatiti, a bean treba biti definiran. Atribut svojstva je naziv svojstva beana koje se treba dohvatiti.

Primjer setProperty i 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;
	}
}

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

Objašnjenje koda:

TestBean.java:

Code linija 5TestBean implementira Serializable klasu. To je bean klasa s getterima i setterima u kodu.

Code linija 7Ovdje uzimamo privatnu string varijablu msg kao "null".

Code Linija 9-14Ovdje koristimo gettere i settere varijable „msg“.

Akcija_jsp3.jsp

Code Redak 10: Ovdje koristimo oznaku „useBean“ koja određuje bean (TestBean) koji se mora koristiti u ovoj JSP klasi.

Code Redak 11: Ovdje postavljamo vrijednost za svojstvo msg za bean TestBean kao "GuruTutorijal”.

Code Redak 12: Ovdje, koristeći getProperty, dobivamo vrijednost svojstva msg za bean TestBean (GuruVodič), što je prikazano u izlazu.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz:

jsp:getProperty

Izlaz:

U ovom primjeru, koristeći TestBean, postavljamo svojstvo "msg" pomoću setProperty i dobivamo vrijednost svojstva pomoću getProperty kao "GuruTutorijal”.

Oznaka radnje jsp:forward

Oznaka akcije jsp:forward koristi se za prosljeđivanje zahtjeva na drugi JSP ili bilo koju statičku stranicu.

Ovdje se zahtjev može proslijediti bez parametara ili s parametrima.

Sintaksa:

<jsp:forward page="value">

Ovdje vrijednost predstavlja gdje se zahtjev mora proslijediti.

Primjer:

Akcija_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_akcija_42.jsp

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

Objašnjenje koda:

Akcija_jsp41.jsp

Code Redak 10: Ovdje koristimo akciju forward JSP za prosljeđivanje zahtjeva na stranicu navedenu u atributu, tj. jsp_action_42.jsp.

Jsp_akcija_42.jsp

Code Redak 10: Nakon što pozovemo action_jsp41.jsp, zahtjev se prosljeđuje na ovu stranicu i dobivamo izlaz kao „Ovo je nakon stranice za prosljeđivanje“.

Kada izvršimo gornji kod, dobivamo sljedeći izlaz.

jsp: naprijed

Izlaz:

Pozivamo action_jsp41.jsp, ali zahtjev se prosljeđuje na jsp_action_42.jsp i dobivamo izlaz s te stranice kao „Ovo je nakon stranice za prosljeđivanje“.

Oznaka radnje jsp:plugin

  • Koristi se za upoznavanje Java komponente u JSP, gdje je Java Komponente mogu biti ili applet ili bean.
  • Detektira preglednik i dodaje ili oznake u datoteku.

Sintaksa:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Ovdje tip određuje ili objekt ili bean.
  • Code određuje naziv klase apleta ili beana.
  • Codebaza sadrži bazu URL koji sadrži datoteke klasa.

Oznaka radnje jsp:param

  • Ovo je podređeni objekt objekta dodatka opisanog gore.
  • Mora sadržavati jednu ili više radnji za pružanje dodatnih parametara.

Sintaksa:

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

Primjer dodatka i parametra:

Akcija_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;
	
}

Objašnjenje koda:

Akcija_jsp5.jsp

Code Redak 10: Ovdje koristimo objekt jsp:plugin gdje uzimamo tri atributa.

  • Vrsta – u ovom slučaju to je grah.
  • Code – naziv datoteke.
  • Codebaza – putanja s nazivom paketa.

Code Redak 11-14: Ovdje uzimamo objekt jsp:params, ispod kojeg se nalazi podređeni objekt param s atributima name i value, te u te atribute postavljamo vrijednosti id i name.

Student.java

Code -7 17: Za varijable id i name koristimo gettere i settere.

Code -19 20: Inicijaliziramo varijable id i name.

Ovdje ćemo dobiti izlaz u slučaju kada će se postavljene vrijednosti parametra koristiti u Student beanu. U ovom slučaju nećemo imati nikakav izlaz jer samo postavljamo i dobivamo vrijednosti parametra, ali ga nigdje ne ispisujemo.

Oznaka radnje jsp:body

  • Ova oznaka se koristi za dinamičko definiranje XML-a, gdje je Elementi može se generirati tijekom vremena zahtjeva, a ne tijekom vremena kompilacije.
  • Definira XML, koji se dinamički generira kao tijelo elementa.

Sintaksa:

<jsp:body></jsp:body>

Ovdje pišemo XML oznaku tijela unutar ovih oznaka.

jsp:attribute Oznaka radnje

  • Ova oznaka se koristi za dinamičko definiranje XML-a, gdje se elementi mogu generirati tijekom vremena zahtjeva, a ne tijekom vremena kompilacije.
  • Definira atribut XML-a koji će se dinamički generirati.

Sintaksa:

<jsp:attribute></jsp:attribute>

Ovdje pišemo atributnu oznaku XML-a.

Primjer tijela i atributa:

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

Objašnjenje koda:

Code Redak 10: Ovdje definiramo element koji se dinamički generira kao XML, a njegovo ime će biti GuruXMLElement.

Code Redak 11-13: Ovdje definiramo atribut, koji će biti XML atribut dinamički generiranog XML-a.

Code Redak 14: Ovdje imamo akciju tijela, gdje pišemo XML tijelo koje će se dinamički generirati.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz:

jsp:atribut

Izlaz:

Ovdje dobivamo izlaz iz oznake tijela generiranog XML-a.

Oznaka radnje jsp:text

  • Koristi se za umetanje teksta predloška u JSP stranice.
  • Njegovo tijelo ne sadrži nikakve druge elemente, a sadrži samo tekst i EL izraze.

Sintaksa:

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

Ovdje se tekst predloška odnosi samo na tekst predloška (koji može biti bilo koji generički tekst koji treba ispisati na JSP-u) ili bilo koji EL izraz.

Primjer:

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

Objašnjenje koda:

Code Redak 10: Ovdje uzimamo tekstualni objekt za ispis teksta predloška.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz.

jsp:tekst

Izlaz:

Dobivamo Guru Predložak teksta, koji se postavlja unutar objekta tekstualne akcije.

Oznaka radnje jsp:output

  • Specificira XML deklaraciju ili DOCTYPE deklaraciju JSP-a.
  • XML deklaracija i DOCTYPE se deklariraju izlazom.

Sintaksa:

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

Ovdje, doctype-root-element označava korijenski element XML dokumenta u DOCTYPE-u. Doctype-system označava doctype koji se generira u izlazu i daje sistemski literal.

Primjer:

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

Objašnjenje koda:

Code Redak 10: Ovdje koristimo objekt izlazne akcije za generiranje DOCTYPE-a, a interno će se generirati u ovom formatu:

Neće biti vidljivog izlaza za ovo jer će se generirati interno.

Pitanja i odgovori

JSP oznake akcija su elementi u XML stilu koji kontroliraju ponašanje servlet mehanizma tijekom obrade zahtjeva. Omogućuju programerima uključivanje datoteka, prosljeđivanje zahtjeva, korištenje JavaBeanovi, ugrađuju aplete i dinamički generiraju XML izlaz unutar JSP stranice.

Direktive se obrađuju jednom prilikom prevođenja stranice i utječu na cjelokupnu strukturu stranice. Oznake radnji ponovno se procjenjuju pri svakom zahtjevu, što ih čini prikladnima za dinamičko ponašanje kao što je uključivanje sadržaja, prosljeđivanje zahtjeva i rad s JavaGrah za vrijeme izvođenja.

Koristite jsp:include kada trebate spojiti sadržaj s druge stranice u trenutni odgovor, poput zaglavlja ili podnožja. Koristite jsp:forward kada kontrola treba u potpunosti prenijeti na drugi resurs, a trenutna stranica ne bi trebala proizvoditi daljnji izlaz.

jsp:useBean instancira ili locira JavaBean u danom opsegu. jsp:setProperty dodjeljuje vrijednost svojstvu beana, a jsp:getProperty čita vrijednost svojstva i zapisuje je kao niz znakova u odgovoru, omogućujući jasno odvajanje između prezentacije i logike beana.

jsp:body i jsp:attribute definiraju tijela i atribute dinamičkih XML elemenata. jsp:text zapisuje doslovni tekst predloška i EL izraze, a jsp:output kontrolira XML deklaraciju ili DOCTYPE koji se generira kada JSP renderira svoj odgovor.

Umjetna inteligencija integrirana je u JSP i JEE aplikacije putem REST poziva za modeliranje API-ja, ugrađenih pomoćnika za chat i widgeta za preporuke koji se prikazuju na JSP stranicama. Umjetna inteligencija također pomaže u generiranju standardnog JSP koda, predlaže korištenje oznaka akcija i validira ožičenje beana tijekom razvoja.

Da. Alati potpomognuti umjetnom inteligencijom analiziraju naslijeđeni JSP kod, identificiraju obrasce oznaka akcija i predlažu refaktoriranje modernih okvira poput Spring MVC-a, Thymeleafa ili REST-a plus aplikacije od jedne stranice. Također generiraju testove migracije, izvješća o ovisnostima i detaljne planove refaktoriranja.

Sažmite ovu objavu uz: