JSP-műveletcímkék

⚡ Okos összefoglaló

A JSP Action Tag-ek XML szintaxist használnak a servlet motor viselkedésének szabályozására, lehetővé téve a fejlesztők számára fájlok beillesztését, kérések továbbítását, valamint a velük való munkát. JavaBeanek, és dinamikus tartalom beágyazása a kérésfeldolgozás során.

  • 🏷️ Standard készlet: Tizenegy szabványos műveleti címke kezeli az include-okat, a forwardokat, a beaneket, a pluginokat és az XML kimenetet.
  • 📜 XML szintaxis: A műveletcímkék szigorú XML formátumot követnek, és minden kérésnél újraértékelődnek.
  • 🔗 Bean integráció: jsp:useBean, jsp:setProperty és jsp:getProperty kezelés JavaA bab életciklusa és tulajdonságai.
  • Oldalfolyam: A jsp:include összevonja az erőforrásokat; a jsp:forward átviszi a kéréskezelést egy másik oldalra.
  • 🧪 Dinamikus XML: A jsp:body, jsp:attribute, jsp:text és jsp:output függvények dinamikusan generálják az XML struktúrákat.
  • 🤖 Mesterséges intelligencia modernizációja: A mesterséges intelligencia asszisztensek segítenek a régi JSP műveleti kód modern keretrendszerekbe való átdolgozásában.

JSP-műveletcímkék

Mi az a JSP műveleti címke?

A JSP Action Tagek XML szintaxis konstrukciókat használnak a servlet motor viselkedésének vezérlésére. A fejlesztők dinamikusan beszúrhatnak egy fájlt, újra felhasználhatják JavaA Bean komponensek továbbítják a felhasználót egy másik oldalra, és hasonló futásidejű műveleteket hajtanak végre JSP Action Tag-eken, például az include és a forward utasításokon keresztül. Az utasításokkal ellentétben az action tag-ek minden alkalommal újraértékelődnek, amikor az oldalhoz hozzáférnek, ami ideálissá teszi őket a dinamikus viselkedéshez a kérésfeldolgozás során.

Syntax:

<jsp:action_name attribute="value" />

Ebben a JSP szabványos műveleti címkékről szóló oktatóanyagban megtudhatod, hogyan működnek az egyes műveleti címkék, mit csinálnak, és hogyan alkalmazhatod őket egy valódi JSP fájlban.

A JSP-ben gyakran használt műveleti címkék listája

A JSP-ben 11 típusú szabványos műveleti címkét találhatunk, ezek teljes listája itt található.

Műveletcímke neve Szintaxis Leírás
jsp:useBean Beanek meghívására és használatára szolgál a JSP oldalon.
jsp:include <jsp:include page=”page URL„flush=”igaz/hamis” /> A kérésfeldolgozás során egy másik JSP-fájlt is tartalmaz az aktuális fájlba.
jsp:setProperty Beállítja a bab tulajdonságait.
jsp:getProperty Lekéri egy bab tulajdonságát, és karakterláncsá alakítja a kimenethez.
jsp: előre Továbbítja a kérést egy másik JSP-re vagy statikus oldalra.
jsp: plugin Bemutatja Java olyan összetevőket, mint a kisalkalmazások vagy a babok JSP-be, és automatikusan generál címkéket.
jsp:body Meghatározza a kérésfeldolgozás során dinamikusan generált XML-elemeket.
jsp:text sablon szöveg Sablonszöveg beszúrására használható JSP-oldalakba, amelyek csak szöveget és EL-kifejezéseket tartalmaznak.
jsp:param Paramétereket ad át a jsp:plugin műveleten belül további adatok hozzáadásához.
jsp:attribútum Dinamikusan előállított XML-attribútumokat határoz meg.
jsp:output Megadja a kimenetben használandó XML vagy DOCTYPE deklarációt.

Most, hogy a teljes lista a rendelkezésedre áll, egyesével megvizsgáljuk ezeket a JSP műveleti címkéket szintaxissal és egy működő példával.

jsp:useBean műveletcímke

  • Ezt a műveletnevet akkor használjuk, ha a következőt szeretnéd használni: JavaBeanek a JSP oldalon.
  • Ezzel a címkével könnyedén meghívhatsz egy beant, és újra felhasználhatod a szerveroldali komponenseket.

A jsp:useBean szintaxisa:

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

Itt az „id” a bean azonosítóját, az „class” pedig a bean osztály teljes elérési útját jelöli.

Példa:

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

A kód magyarázata:

Code 10 vonal: A fenti kódban a bab „bean azonosítóját” és „osztályútvonalát” használjuk.

jsp:include műveletcímke

  • A jsp:include függvény segítségével JSP fájlt illeszthetünk be egy másik fájlba a kérésfeldolgozás során, hasonlóan az include-hoz Irányelvek.
  • A kérésfeldolgozási fázisban kerül hozzáadásra, ami azt jelenti, hogy a beillesztett tartalmat minden alkalommal kiértékeli a rendszer, amikor az oldalt lekérik.

A jsp:include szintaxisa:

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

Példa:

Az Action_jsp2-ben (Code 10. sor), egy date.jsp fájlt mellékelünk.

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

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

A kód magyarázata:

Action_jsp2.jsp

Code 10 vonal: Az első fájlban a date.jsp fájlt az action_jsp2.jsp fájlban helyezzük el.

Date.jsp:

Code 11 vonal: A mai dátumot a date.jsp fájl 11. kódsorába nyomtatjuk.

Amikor végrehajtod a kódot, a következő kimenetet kapod.

jsp:include

output:

  • A mai dátumot idővel együtt jeleníti meg, mivel a dátumfájl a fő JSP oldalon található.

jsp:setProperty műveletcímke

  • Ez a JSP-ben szereplő szabványos művelet a bean tulajdonságának beállítására szolgál.
  • A tulajdonság beállítása előtt definiálnia kell egy babot.

Syntax:

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

Itt a „name” határozza meg azt a bemenő babot, amelynek a tulajdonsága be van állítva, a „property” pedig a beállítani kívánt tulajdonság. Beállíthatod a „value” és a „param” attribútumokat is. Itt a „value” nem kötelező, és azt az értéket határozza meg, amelyet a tulajdonsághoz rendelünk. Itt a „param” a kérésparaméter neve, amellyel az érték lekérhető. A „setProperty” példáját az alábbiakban a getProperty segítségével mutatjuk be.

jsp:getProperty műveletcímke

  • Ez a művelet a bab tulajdonságának megszerzésére szolgál.
  • A tulajdonságot karakterlánccá alakítja, majd végül beszúrja a kimenetbe.

Syntax:

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

Itt a név a bean, amelyből a tulajdonságot le kell kérni, és a beant definiálni kell. A tulajdonság attribútum a lekérendő bean tulajdonság neve.

Példa a setProperty és a getProperty használatára:

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>

A kód magyarázata:

TestBean.java:

Code vonal 5A TestBean a Serializable osztályt implementálja. Ez egy bean osztály, amelynek kódjában getterek és setterek találhatók.

Code vonal 7: Itt az msg privát karakterláncváltozót „null”-ként vesszük.

Code 9-14. sorItt az „msg” változó gettereit és settereit használjuk.

Action_jsp3.jsp

Code 10 vonal: Itt a „useBean” taget használjuk, ahol az határozza meg a JSP osztályban használandó beant (TestBean).

Code 11 vonal: Itt a bean TestBean msg tulajdonságának értékét a következőre állítjuk be: „GuruOktatóanyag”.

Code 12 vonal: Itt a getProperty használatával megkapjuk a TestBean bean msg tulajdonságának értékét (GuruOktatóanyag), amely a kimenetben látható.

Amikor végrehajtja a fenti kódot, a következő kimenetet kapja:

jsp:getProperty

output:

Ebben a példában a TestBean használatával beállítjuk az „msg” tulajdonságot a setProperty használatával, és a tulajdonság értékét a getProperty használatával kapjuk meg: „GuruOktatóanyag”.

jsp:forward műveletcímke

A jsp:forward action tag segítségével továbbíthatjuk a kérést egy másik JSP-re vagy bármilyen statikus oldalra.

Itt a kérés paraméter nélkül vagy paraméterekkel továbbítható.

Syntax:

<jsp:forward page="value">

Itt az érték azt jelenti, hogy a kérelmet hova kell továbbítani.

Példa:

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>

A kód magyarázata:

Action_jsp41.jsp

Code 10 vonal: Itt a forward JSP műveletet használjuk a kérés továbbítására az attribútumban említett oldalra, azaz a jsp_action_42.jsp oldalra.

Jsp_action_42.jsp

Code 10 vonal: Miután meghívjuk az action_jsp41.jsp fájlt, a kérés továbbítódik erre az oldalra, és a következő kimenetet kapjuk: „Ez a továbbított oldal után van”.

Amikor végrehajtjuk a fenti kódot, a következő kimenetet kapjuk.

jsp: előre

output:

Meghívjuk az action_jsp41.jsp fájlt, de a kérés továbbítódik a jsp_action_42.jsp oldalra, és az oldal kimenete a következő: „Ez a továbbított oldal után van”.

jsp:plugin műveletcímke

  • Bevezetésre szolgál Java komponenseket JSP-be, ahol a Java A komponensek lehetnek kisalkalmazások vagy beanek.
  • Felismeri a böngészőt és hozzáadja vagy címkék a fájlba.

Syntax:

<jsp:plugin type="applet/bean" code="objectcode" codebase="objectcodebase">
  • Itt a típus vagy egy objektumot, vagy egy babot határoz meg.
  • Code az applet vagy bean osztálynevét adja meg.
  • Codeaz alap tartalmazza az alapot URL amely osztályok fájljait tartalmazza.

jsp:param Műveletcímke

  • Ez a fent leírt bővítmény objektum gyermekobjektuma.
  • Tartalmaznia kell egy vagy több műveletet további paraméterek megadásához.

Syntax:

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

Példa a bővítményre és paraméterre:

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>

Diák.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;
	
}

A kód magyarázata:

Action_jsp5.jsp

Code 10 vonal: Itt a jsp:plugin objektumot használjuk, ahol három attribútumot veszünk figyelembe.

  • Típus – ebben az esetben bab.
  • Code – a fájl neve.
  • Codebase – a csomag nevével ellátott elérési út.

Code 11-14. sor: Itt a jsp:params objektumot vesszük, amely alatt van egy gyermek param objektum a name és value attribútumokkal, és ezekben az attribútumokban állítjuk be az id és name értékeket.

Diák.java

Code 7-17: Gettereket és settereket használunk az id és name változókhoz.

Code 19-20: Inicializáljuk az id és name változókat.

Itt abban az esetben fogunk kimenetet kapni, ha a param beállított értékeit használjuk a Student beanben. Ebben az esetben nem lesz kimenetünk, mivel csak a param értékeit állítjuk be és fogadjuk, de nem írjuk ki sehova.

jsp:body műveletcímke

  • Ez a címke az XML dinamikus definiálására szolgál, ahol a Elemek kérés közben generálható, nem pedig fordítás közben.
  • Ez definiálja az XML-t, amely dinamikusan generálódik elem törzsként.

Syntax:

<jsp:body></jsp:body>

Ide írjuk az XML törzscímkét ezekbe a címkékbe.

jsp:attribute műveletcímke

  • Ez a címke az XML dinamikus definiálására szolgál, ahol az elemek a kérés ideje alatt generálhatók a fordítási idő helyett.
  • Ez határozza meg az XML dinamikusan generálódó attribútumát.

Syntax:

<jsp:attribute></jsp:attribute>

Ide írjuk az XML attribútumcímkéjét.

Példa a törzsre és az attribútumra:

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>

A kód magyarázata:

Code 10 vonal: Itt egy olyan elemet definiálunk, amely dinamikusan generálódik a következőképpen: XML, és a neve az lesz, GuruXMLElem.

Code 11-13. sor: Itt definiálunk egy attribútumot, amely a dinamikusan generált XML egyik XML attribútuma lesz.

Code 14 vonal: Itt van a törzs művelet, ahol az XML törzset írjuk, amely dinamikusan generálódik.

Amikor végrehajtja a fenti kódot, a következő kimenetet kapja:

jsp:attribútum

output:

Itt kapjuk a generált XML törzscímkéjének kimenetét.

jsp:text Műveletcímke

  • Sablonszöveg JSP oldalakba való beszúrására szolgál.
  • A törzse nem tartalmaz más elemeket, csak szöveget és EL kifejezéseket tartalmaz.

Syntax:

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

Itt a sablonszöveg csak sablonszövegre vonatkozik (ami bármilyen általános szöveg lehet, amelyet JSP-re kell nyomtatni), vagy bármilyen EL kifejezés.

Példa:

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>

A kód magyarázata:

Code 10 vonal: Itt a szövegobjektumot használjuk a sablonszöveg kinyomtatásához.

Amikor végrehajtja a fenti kódot, a következő kimenetet kapja.

jsp:text

output:

Kapunk Guru Sablonszöveg, amely a szöveges műveletobjektumon belül kerül elhelyezésre.

jsp:output műveletcímke

  • Ez meghatározza a JSP XML deklarációját vagy DOCTYPE deklarációját.
  • Az XML deklarációt és a DOCTYPE-ot a kimenet deklarálja.

Syntax:

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

Itt a doctype-root-element a DOCTYPE XML dokumentum gyökérelemét jelöli. A doctype-system pedig a kimenetben generált doctype-ot jelöli, amely egy rendszerliterált ad vissza.

Példa:

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

A kód magyarázata:

Code 10 vonal: Itt az output action objektumot használjuk egy DOCTYPE létrehozásához, és belsőleg ebben a formátumban generálódik:

Ehhez nem lesz látható kimenet, mivel ez belsőleg generálódik.

GYIK

A JSP Action Tag-ek XML stílusú elemek, amelyek a servlet motor viselkedését szabályozzák a kérésfeldolgozás során. Lehetővé teszik a fejlesztők számára fájlok beillesztését, kérések továbbítását, JavaBeanek, beágyazott kisalkalmazások és XML kimenet dinamikus generálása egy JSP oldalon belül.

Az utasítások egyszer kerülnek feldolgozásra az oldal fordítása során, és hatással vannak az oldal teljes szerkezetére. Az akciócímkék minden kérésnél újraértékelésre kerülnek, ami alkalmassá teszi őket dinamikus viselkedésre, például tartalom beillesztésére, kérések továbbítására és a velük való munkára. JavaBeans futásidőben.

Használd a jsp:include kapcsolót, ha egy másik oldal tartalmát, például fejléceket vagy lábléceket kell egyesítened az aktuális válaszba. Használd a jsp:forward kapcsolót, ha a vezérlést teljes mértékben át kell adni egy másik erőforrásnak, és az aktuális oldalnak nem szabad további kimenetet produkálnia.

jsp:useBean példányosít vagy megkeres egy JavaAdott hatókörű bean. A jsp:setProperty függvény értéket rendel egy bean tulajdonsághoz, a jsp:getProperty pedig beolvassa a tulajdonság értékét, és karakterláncként írja be a válaszba, lehetővé téve a megjelenítés és a bean logikájának egyértelmű elkülönítését.

A jsp:body és a jsp:attribute dinamikus XML elemtörzseket és attribútumokat definiál. A jsp:text literális sablonszöveget és EL-kifejezéseket ír, a jsp:output pedig az XML-deklarációt vagy DOCTYPE-ot vezérli, amely akkor keletkezik, amikor a JSP renderelte a válaszát.

A mesterséges intelligencia a JSP és JEE alkalmazásokba REST-hívásokon keresztül integrálódik, amelyek API-kat modelleznek, beágyazott chat asszisztenseket és JSP oldalakon megjelenített ajánló widgeteket használnak. A mesterséges intelligencia emellett segít a sablonos JSP-kód generálásában, a műveleti címkék használatának javaslatában és a bean-összeköttetések validálásában a fejlesztés során.

Igen. A mesterséges intelligencia által támogatott eszközök elemzik a régi JSP-kódot, azonosítják az akciócímke-mintákat, és refaktorokat javasolnak modern keretrendszerekhez, mint például a Spring MVC, a Thymeleaf vagy a REST, valamint egy egyoldalas alkalmazáshoz. Migrációs teszteket, függőségi jelentéseket és lépésről lépésre kidolgozott refaktorterveket is generálnak.

Foglald össze ezt a bejegyzést a következőképpen: