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: