JSP | |
---|---|
Kiterjesztés | .jsp |
MIME típusú | alkalmazás/jsp |
Fejlesztő | Eclipse Alapítvány |
Legutolsó kiadás | 3.1.0 (2022. május 15. ) |
Formátum típusa | fájlformátum , sablonmotor és műszaki specifikáció |
Szabvány(ok) | JSR 245 |
Weboldal | project.eclipse.org/… ( angol) |
Médiafájlok a Wikimedia Commons oldalon |
A JSP ( JavaServer Pages ) egy olyan technológia, amely lehetővé teszi a webfejlesztők számára, hogy statikus és dinamikus összetevőket is tartalmazó tartalmat hozzanak létre. A JSP-oldal kétféle szöveget tartalmaz: statikus forrásadatokat, amelyek a HTML , SVG , WML vagy XML szövegformátumok egyikében lehetnek , valamint JSP elemeket, amelyek dinamikus tartalmat hoznak létre. Ezenkívül a JSP címkekönyvtárak, valamint az Expression Language (EL) használható Java kód beágyazására a JSP-oldalak statikus tartalmába.
A JSP oldalkódot a Jasper JSP oldalfordítója Java szervlet kódra fordítja , majd Java Virtual Machine ( JVM ) bájtkódba fordítja . A JSP-oldalak végrehajtására képes szervlet -tárolók platformfüggetlen Java nyelven vannak megírva. A JSP-k a kiszolgálóra töltődnek be, és egy speciális Java-kiszolgáló csomagstruktúrából, a Jakarta EE Web Application-ból kezelhetők. Az oldalak általában .war és .ear fájlarchívumba vannak csomagolva .
A JSP technológia egy platformfüggetlen, hordozható és könnyen bővíthető technológia webes alkalmazások fejlesztéséhez .
Az 1.2-es verzió óta a JavaServer Pages fejlesztése a Java Community Process keretében zajlik . A JSR 53 a JSP 1.2 és a Servlet 2.3 szabványt, míg a JSR 152 a JSP 2.0 specifikációt határozza meg. 2006 májusában a 2.1 JSP specifikáció JSR 245 alatt jelent meg a Java EE 5 részeként . 2009. december 10-én megjelent a JSP 2.2 specifikáció a JSR 245 kiadás tartalmaként .
Ezek a verziók alapvetően különböznek az előző verzióktól, amelyeket a Java válaszaként fogtak fel az ASP -re . A korábbi verziók néhány alapvető funkciója (például a címkekönyvtárak fejlesztésének lehetősége) a kód és a tartalom szétválasztásának elvével összhangban eltávolítva vagy lecserélésre került. Mivel nagy mennyiségű forráskódban nehéz eligazodni és elválasztani a tartalmat magától a kódtól , felmerült az ötlet, hogy ezeket JSP címkékkel, például <jsp:useBean/>. Az ötlet megvalósítása érdekében a JSP-címkéket három logikai csoportra osztották: direktívákra, szkriptelemekre és műveletekre.
A JSP 1.2 a következőképpen bővíti ki a JavaServer Pages 1.1 (JSP 1.1) specifikációját:
A JSP specifikáció új verziója a következő funkciókkal egészíti ki:
A Java EE 5 platform az egyszerű fejlesztésre összpontosít a J2SE 5.0 által bevezetett Java nyelvi megjegyzések használatával . A JSP 2.1 támogatja ezt a célt azáltal, hogy függőségi injektálási megjegyzéseket határoz meg a JSP-utasításokon és a kontextusfigyelőkön.
A JavaServer Pages (JSP) lehetővé teszi az oldalak dinamikus részének elkülönítését a statikus HTML -től . A dinamikus rész speciális címkékbe van zárva "<% %>":
Az Ön gazdagépneve : <% = request . getRemoteHost () %>A JSP-oldalak kiterjesztéssel rendelkeznek, .jspés ugyanazon a helyen helyezkednek el, mint a normál weboldalak. Az ilyen oldalak szerkezete öt konstrukcióból állhat: HTML , megjegyzések, szkriptelemek, direktívák és műveletek. A JSP-oldal egy statikus tartalommal rendelkező szervletté van lefordítva, amelyet a szolgáltatási metódushoz társított kimeneti adatfolyamba küld . Ezért az első kérésre ez a folyamat kis késést okozhat. A dokumentumban vagy programban található megjegyzések nem okozzák a program lelassulását, mivel azokat a fordító és az előadó figyelmen kívül hagyja. A szkriptelemek lehetővé teszik olyan Java kód megadását , amely később a végső szervlet részévé válik, az direktívák lehetővé teszik a szervlet teljes szerkezetének vezérlését, a műveletek pedig a meglévő összetevők megadását, valamint a JSP motor viselkedésének szabályozását szolgálják. . A szkriptelés megkönnyítése érdekében vannak előre definiált változók, például request, response, pageContext, session, out, application, config, page, exception. Példa egy JSP-oldalra, amely minden JSP-összetevőt használ:
A megjegyzések a program forráskódjának magyarázatára szolgálnak. A JSP-oldalakon a megjegyzések két csoportra oszthatók:
A JSP forráskód megjegyzései speciális karaktersorozattal vannak jelölve: a megjegyzés <%--elején és --%>végén. Az ilyen típusú megjegyzések a JSP-oldal összeállításakor törlődnek. JSP megjegyzés példa:
<%-- Megjeleníti a termékkatalógust és az aktuális bevásárlókosarat . --%>A HTML jelölő megjegyzések formátuma a HTML nyelv szabályai szerint történik. Az ilyen típusú megjegyzéseket a JSP-fordító statikus szövegként kezeli, és a kimeneti HTML-dokumentumban helyezi el. A HTML megjegyzésekben lévő JSP kifejezések végrehajtásra kerülnek. HTML megjegyzés példa:
<!-- Oldal létrehozásának dátuma : <%= új java . util . Dátum () %> -->A JSP specifikáció háromféle szkriptelemet különböztet meg:
A deklarációkat általában változók, metódusok, belső osztályok és más érvényes Java konstrukciók osztályszintű meghatározására használják. A kifejezések az out.print() metódus argumentumaivá válnak. A scriptletek segítségével a Java kód működő részei beágyazódnak a JSP oldalakba.
JSP deklarációkA JSP deklarációk lehetővé teszik változók, metódusok, belső osztályok stb. meghatározását. A deklarációk a programban használt Java konstrukciók meghatározására szolgálnak. Mivel a deklarációk nem jelennek meg, általában JSP-kifejezésekkel vagy scriptletekkel együtt használatosak. A példa JSP-kódrészlet megmutatja, hogy a kiszolgáló indítása (vagy a szervlet legutóbbi módosítása és újratöltése) óta hány kérés érkezett erre az oldalra. Vegye figyelembe, hogy a példában deklarációt és kifejezést is használunk, és a konstrukción belül a deklaráció után pontosvessző ( ; ) található:
<%! private int accessCount = 0 ; %> Az oldalletöltések száma a szerver betöltése óta : < %= ++ accessCount % > JSP kifejezésekA JSP-kifejezések Java értékeket közvetlenül a kimenetbe szúrnak be. A Java kifejezéseket kiértékeli, karakterláncokká alakítja, és beilleszti az oldalba. Ezek a számítások futási időben (azaz az oldal lekérésekor) zajlanak, és ezért teljes hozzáférés áll rendelkezésre magáról a kérésről szóló információkhoz. A kifejezésekben konstansokat, változókat, különféle metódusok meghívását használhatja. Minden kifejezés, tartalmuk összetettségétől függetlenül, egyetlen eredményre vagy számra értékelődik. A JSP-oldalak a JSP Writerre támaszkodnak , amely egy kifejezés bármely eredményét átveszi, típussá String(szöveggé) konvertálja és puffereli . A következő kód például egy adott oldalkérés dátumát és időpontját jeleníti meg:
Jelenlegi idő : <%= új java . util . Dátum () %> Az Ön gazdagépneve : <% = kérés . getRemoteHost () %>Három szabályra kell figyelni:
A JSP szkriptletek lehetővé teszik, hogy bármilyen kódot beszúrjon egy szervlet metódusba, amely az oldal renderelésekor generálódik, lehetővé téve a Java konstrukciók többségének használatát. A szkriptletek is hozzáférhetnek ugyanazokhoz az előre definiált változókhoz, mint a kifejezésekhez. Ezért például egy érték megjelenítéséhez egy előre meghatározott változót kell használnia out.
<% String queryData = kérés . getQueryString (); ki . println ( "További lekérdezési adatok: " + queryData ); %>A szkriptletben lévő kód úgy kerül beillesztésre, ahogyan meg volt írva. Minden statikus HTML (sablonszöveg) a szkriptlet előtt vagy után a print. Például a következő JSP-részlet vegyesen tartalmaz sablon- és szkriptletszöveget:
<% if ( Math . random () < 0,5 ) { %> < B > Szép napot kívánok </ B > ! <% } else { %> < B > Rossz napot </ B > Neked ! <% } %>A scriptlet konvertálása után a kód így fog kinézni:
if ( Math . véletlen ( ) < 0.5 ) { ki . println ( "<B>Szép</B> napot!" ); } else { out . println ( "<B>Rossz napot kívánok</B> neked!" ); }Ez azt jelenti, hogy a szkriptleteknek nem kell teljes Java-részleteket tartalmazniuk, és a nyitva hagyott blokkok hatással lehetnek a szkriptleten kívüli statikus HTML -re.
A JSP oldal üzenetet küldhet a megfelelő tárolónak a teendőkre vonatkozó utasításokkal. Ezeket az üzeneteket direktíváknak nevezzük. Minden direktíva karakterrel kezdődik <%@, amelyet az irányelv neve és egy vagy több értékkel rendelkező attribútum követ, és -re végződik %>. A JSP oldalon lévő direktívák hatására a tároló kérést küld egy adott szolgáltatás végrehajtására, amely nincs deklarálva a generált dokumentumban. Az irányelvek formája a következőképpen ábrázolható:
<% @ direktíva attribútum = "érték" %>Több attribútum beállítását is kombinálhatja egyetlen direktíván:
<% @ direktíva attribútum1 = "érték1" attribútum2 = "érték2" ... attribútumN = " értékN " %>A direktíváknak három fő típusa van: page , amely lehetővé teszi például az osztályok importálását, a szervlet szuperosztályának megváltoztatását és így tovább; include , amely lehetővé teszi egy fájl beszúrását egy szervlet osztályba, amikor egy JSP-fájlt szervletté fordít; és a taglib , amely lehetővé teszi, hogy sok címkét bővítsen sajátjával, amelyeket a JSP-tároló képes értelmezni.
JSP oldal direktívaAhogy a neve is sugallja, ez az irányelv attribútumokat biztosít a JSP oldalhoz. includeAz ebben a direktívában meghatározott attribútumok be vannak ágyazva az adott JSP oldalba és annak összes beágyazott statikus elemébe, függetlenül attól, hogy az direktívával vagy a művelettel kerültek beillesztésre jsp:include. Az irányelv formája a pagekövetkező:
<% @ page attribútum = " érték " %>Vegyük példaként a következő bejegyzést:
<% @ page import = ” java . util . * , com . osztályaim . * ” puffer = ” 15 kb ” %>Ez a direktíva kimondja, hogy a JSP-oldal két Java-csomagból importál osztályokat , java.utilmajd com.myclassesmeghatározza a puffermemória méretét, amelyet az adott JSP-oldal feldolgozásához kell használni.
Ezután vegye figyelembe az irányelv attribútumait page:
Ugyanezt az eredményt érheti el egy scriptlet használatával:
<% válasz . setContentType ( "text/plain" ); %> A JSP tartalmazza a direktívátEz a direktíva lehetővé teszi, hogy fájlokat vegyen fel egy szervletbe JSP-oldalak fordításakor. A direktíva használata így néz ki:
<% @ include file = "relatív URL" %>A megadott URL -t általában annak az oldalnak a JSP-jéhez viszonyítva értelmezik, amelyen a hivatkozás található, de mint minden más relatív URL -nél, megmondhatja a rendszernek az Önt érdeklő erőforrás helyét a webszerverhez képest. saját könyvtárba úgy, hogy az URL -t egy " / " karakterrel jelöli meg . Az include fájl tartalmát a rendszer egyszerű JSP-szövegként kezeli, ezért olyan elemeket tartalmazhat, mint a statikus HTML , szkriptelemek, direktívák és műveletek. Például sok webhely minden oldalon kis navigációs sávot használ. A HTML keretek használatának problémái miatt ezt a feladatot gyakran úgy oldják meg, hogy az oldal tetejére vagy bal oldalára egy kis táblázatot helyeznek el, melynek HTML kódja sokszor megismétlődik az oldal minden oldalán. Az irányelv includea legtermészetesebb módja ennek a feladatnak, megkímélve a fejlesztőt attól a rémálomtól, hogy a HTML-t minden egyes fájlba másolja. Ez így történik:
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > < html > < head > < title > Tesztoldal < / title > </ head > < body > <% @ include file = "/navbar .html" %> <!-- Ennek az oldalnak egy konkrét részlete ... --> </ body > </ html >Vegye figyelembe, hogy mivel az irányelv includeaz oldalfordítás során fájlokat is tartalmaz, a navigációs sáv módosítása után újra le kell fordítania az összes JSP-oldalt, amely azt használja. Ez ebben az esetben egy jó kompromisszum, mivel általában a navigációs sáv meglehetősen ritkán változik, és a csatlakozási folyamat nem veszíti el hatékonyságát. Ha a mellékelt fájlok gyakran változnak, használhatja helyette a műveletet jsp:include. Ez a művelet magában foglalja a fájlt a JSP elérésekor.
JSP taglib direktívaMint már tudja, a JSP-oldalakon az elemeket címkékkel írják fel (konvencionális jelek, címkék, márkák). A JSP-tároló által értelmezhető címkék készlete bővíthető úgynevezett címkekönyvtárak segítségével. A műveleteket kiterjesztett címkekészlethez is csatolhatja, ami magának a JSP-nyelvnek a kiterjesztését eredményezi. A címkék szabványos és egyéni címkékre oszthatók. Egy általánosított írásmód így nézhet ki:
<% @ taglib uri = ” URI a címkekönyvtárhoz ” prefix = „ karakter előtag „ % >A címkekönyvtárat URI - címmel (egyedi erőforrás-azonosítóval) kell azonosítani. Az URI lehet abszolút vagy relatív. Az egyedi erőforrás-azonosító egy címkekönyvtár ( TLD ) helyét azonosítja, amely meghatározza az adott könyvtár saját címkéit. Példa egy direktíva bejegyzésre:
<% @ taglib uri = " http://www.moywebserver.ru/naydiznaki.tld " prefix = "iskat" %>Egy JSP-oldal végtelen számú direktívát tartalmazhat taglib, de minden direktívának más előtagot kell adni, amely meghatározza az oldalon lévő könyvtár tartalmát. Előtagként bármilyen szöveget, szót használhat. Míg egy direktíva taglibbárhol használható a JSP-oldalon, az ezen direktívák által használt natív címkéket mögöttük kell használni.
A JSP-műveletek XML szintaxis konstrukciókat használnak a szervlet motor működésének vezérlésére. Dinamikusan beilleszthet egy fájlt, újra felhasználhatja a JavaBeans -t, átirányíthatja a felhasználót egy másik oldalra, vagy létrehozhat HTML -kódot egy Java-bővítményhez . Mindezeket a műveleteket az alábbiakban részletesen tárgyaljuk. Ne feledje, hogy mint minden XML esetében, az elem- és attribútumnevek is megkülönböztetik a kis- és nagybetűket. A műveletek két csoportra oszthatók: standard és létrehozott (saját, amit a programozó hoz létre). A következő szabványos műveletek megengedettek:
Ez a művelet lehetővé teszi a JavaBean betöltését a JSP-oldalon való későbbi használatra. Ez a szolgáltatás lehetővé teszi a Java osztályok újrafelhasználását anélkül, hogy feláldozná a JSP szervletek nyújtotta előnyöket. Ezenkívül ez az egyik módja annak, hogy eltávolítsuk a Java-feldolgozás nagy részét a JSP-oldalról. Ha a Java-feldolgozást egy JSP-oldalról egy JavaBean-re viszi át, akkor ezek a funkciók más JSP-oldalakon is használhatók. A használandó komponens megadásának legegyszerűbb szintaxisa a következő:
< jsp : useBean id = "name" class = "package.class" />Ez általában azt jelenti, hogy "az osztály által meghatározott osztály objektumának új példányát kell létrehozni, és hozzá kell rendelni egy id által elnevezett változóhoz ". Azonban beállíthatja a hatókör attribútumot ( az oldal, kérések, munkamenetek vagy párbeszédpanelek értékeit veszi fel, page|request|session|applicationaz alkalmazás számára), amely nem csak az aktuális oldalhoz kapcsolódik. Ebben az esetben hasznos hivatkozásokat lekérni a meglévőre , és a művelet csak akkor hoz létre új objektumot, ha nem létezik azonos azonosító és hatókör értékekkel rendelkező objektum . Most, hogy rendelkezik egy , a tulajdonságait módosíthatja egy művelettel , vagy egy scriptlet használatával, és kifejezetten meghívja az objektum metódusát a korábban megadott változónévvel az id attribútumon keresztül . Emlékezzünk vissza, hogy a beans esetében, amikor azt mondja, hogy "ennek a komponensnek van egy X típusú tulajdonsága, amelynek neve ", akkor valójában azt jelenti, hogy "ennek az osztálynak van egy metódusa , amely X típusú adatokat ad vissza, és egy másik metódus, amely X -et vesz paraméterként." A műveletet részletesebben a következő szakasz tárgyalja, de most ne feledje, hogy vagy explicit módon beállíthat értéket a param attribútum beállításával , hogy megkapja az értéket a megfelelő lekérdezési paraméterből, vagy egyszerűen felsorolhatja a tulajdonságokat, hogy értékeket kapjon a tulajdonságokkal megegyező nevű lekérdezési paramétereket. A meglévő tulajdonságok értékeit JSP-kifejezések vagy szkriptletek használatával kaphatja meg a megfelelő metódus meghívásával , vagy (leggyakrabban) egy művelet használatával . pagerequestsessionapplicationbeanbeansjsp:useBeanbeanjsp:setPropertyfoogetFoosetFoojsp:setPropertygetXxxjsp:getProperty
A komponensnek adott osztálynak a szerver normál osztálykönyvtárában kell lennie, nem pedig a szerkesztés után automatikusan újratöltődő osztályoknak fenntartott részben. Például a Java webszerver esetében az összes használt osztályt egy könyvtárba classesvagy .jar fájlba kell elhelyezni a könyvtárban lib, nem pedig a könyvtárban servlets. Az alábbiakban egy egyszerű példa található, amely betölt beanegy egyszerű karakterlánc-paramétert, és beállít/kap.
BeanTest.jsp
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > < html > < head > < title > JavaBeans újrafelhasználása JSP -ben < / title > < / head > < body > < h1 > JavaBeans újrafelhasználása JSP -ben </ h1 > < jsp : useBean id = "test" class = "hall.SimpleBean" /> < jsp : setProperty name = "teszt" property = "message" value = "Hello WWW" /> < p > Üzenet : < jsp : getProperty name = "test" property = "message" /> </ p > </ body > </ html >SimpleBean.java
csomagterem ; _ public class SimpleBean { private String message = "Az üzenet szövege nincs beállítva" ; public String getMessage () { return ( üzenet ); } public void setMessage ( String message ) { this . üzenet = üzenet _ } }Néhány további részlet a használatról jsp:useBean. Használatának legegyszerűbb módja bean a konstrukció használata:
< jsp : useBean id = "name" class = "package.class" />betöltésére bean, majd használatára jsp:setProperty, valamint jsp:getPropertytulajdonságainak (paramétereinek) módosítására és lekérésére. Van azonban két másik út is. Először is használhatja a tároló formátumot, nevezetesen:
< jsp : useBean ... > Törzs </ jsp : useBean >annak biztosítása érdekében, hogy a törzs csak egy példány beanelső létrehozásakor kerüljön végrehajtásra, és ne egy létező megtalálásakor és felhasználásakor bean. Ahogy az alábbiakban tárgyaljuk, beansmegosztható, így nem minden kifejezés jsp:useBeaneredményezi a bean. Másodszor, az id és class mellett három másik attribútum is használható: hatókör , típus és komponensnév . Ezeket az attribútumokat az alábbiakban ismertetjük:
Használhatja jsp:setPropertya korábban leírtakat beans. Ezt kétféleképpen teheti meg. Először is használhatja jsp:setPropertyaz elem után, de azon kívül jsp:useBean, amint az a példában látható:
< jsp : useBean id = "myName" ... /> ... < jsp : setProperty name = "myName" property = "someProperty" ... />Ebben az esetben jsp:setPropertyattól függetlenül lefut, hogy létező példányt találtak-e, beanvagy új példányt hoztak létre. Egy másik lehetőség, ha jsp:setPropertyaz elem törzsébe helyezi jsp:useBean, amint azt egy másik példa is mutatja:
< jsp : useBean id = "myName" ... > ... < jsp : setProperty name = "myName" property = "someProperty" ... /> </ jsp : useBean >Ez jsp:setPropertycsak akkor történik meg, ha az objektum új példányát hozták létre, és nem akkor, ha egy létezőt talál. Egy művelet jsp:setPropertya következő négy attribútumot fogadja el:
Ha sem és -t nem használ value, paramez ugyanaz, mintha a névnek parammegfelelő nevet adott volna property. Alkalmazhatja azt az elvet, hogy automatikusan használja a kéréstulajdonságokat, amelyek neve megegyezik a tulajdonságnevekkel, és továbbléphet, ha a tulajdonság nevét " * "-ra állítja, és elhagyja az érték és a paraméter paramétereket . Ebben az esetben a szerver az érvényes tulajdonságokat és lekérdezési paramétereket dolgozza fel az azonos nevek egyeztetéséhez. A következő példa beanegy prímtáblázat létrehozására szolgál. Ha egy paraméter létezik numDigitsa kérési adatokban, akkor az átadásra kerül a bean numDigits. Hasonlóan a numPrimes. JspPrimes.jsp
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > < html > < head > < title > JavaBeans újrafelhasználása JSP -ben < / title > < / head > < body > < h1 > JavaBeans újrafelhasználása JSP -ben </ h1 > < jsp : useBean id = "primeTable" class = "hall.NumberedPrimes" /> < jsp : setProperty name = "primeTable" property = "numDigits" /> < jsp : setProperty name = "primeTable" property = "numPrimes" /> < p > Több karakterprím < jsp : getProperty name = " primeTable " property = " numDigits " /> : < jsp : getProperty name = "primeTable" property = "numberedList" /> </ p > </ body > </ html > jsp:getProperty műveletEz az elem határozza meg a tulajdonság értékét, beankarakterláncsá alakítja, és elküldi a kimeneti adatfolyamnak. Egy művelet végrehajtásához két attribútumot kell beállítani: a nevet bean, amely előre be van állítva a műveletben jsp:useBean, és annak a tulajdonságnak a nevét, amelynek értékét meg kell határozni. A következő példa egy példa a művelet használatára:
< jsp : useBean id = "itemBean" ... /> ... < UL > < LI > Elemek száma : < jsp : getProperty name = "itemBean" property = " numItems " / > < LI > Egységár : < jsp : getProperty name = "itemBean" property = "unitCost" /> </ UL > jsp:include actionEz a művelet lehetővé teszi a fájlok tartalmának beszúrását a létrehozott oldalra. Művelet szintaxisa:
< jsp : include page = "relatív URL" flush = "true" />Ellentétben a direktívával include, amely beszúr egy fájlt az oldal JSP-fordítási szakaszában, ez a művelet beszúrja a fájlt, amikor az oldalt kérik. Ez némi hatékonyságvesztést eredményez, és kiküszöböli a JSP-kód lehetőségét a beillesztett fájlban, de jelentős előnyt biztosít a rugalmasság terén.
Példa négy fájl tartalmának beszúrására egy JSP-oldalra:
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" > < html > < head > < title > Hírek </ title > </ head > < body > < h1 > Hírek </ h1 > < p > Íme kivonatok négy legnépszerűbb cikkünkből : </ p > < ol > < li >< jsp : include page = "news/ Item1 . html" flush = "true" /></ li > < li >< jsp : include page = "news/Item2.html" flush = "true" /></ li > < li >< jsp : include page = " news/ Item3.html" flush = "true" /></ li > < li >< jsp : include page = "news/Item4.html" flush = "true" /></ li > </ ol > </ body > </ html > jsp:forward actionEzzel a művelettel átadhatja a kérést egy másik statikus HTML-oldalnak, szervletnek vagy JSP-oldalnak. A művelettel ellentétben jsp:includeaz aktuális oldal feldolgozása véget ér. Egy attribútumot használ page, amelynek tartalmaznia kell egy relatív URL -t, amely alapján az objektum rendeződik request. Egy művelettel jsp:parammás paramétereket is hozzáadhat a másik oldalnak átadott eredeti lekérdezési paraméterekhez. Az attribútum értéke pagelehet statikus érték vagy a kérés során kiszámított érték, amint azt az alábbi két példa mutatja:
< jsp : forward page = "/utils/errorReporter.jsp" /> < jsp : forward page = "<%= someJavaExpression %>" />Ezenkívül egy művelet jsp:forwardsegítségével átviheti a vezérlést egy másik oldalra, de azzal a feltétellel, hogy a művelet meghívása előtt semmi sem íródott a kimenő puffermemóriába (különben kivételt dobunk IllegalStateException).
jsp:param action és jsp:params actionEz a művelet név/érték típusú információkat biztosít. Ezt a műveletet főként a már ismert műveletekkel jsp:includeés jsp:forward. Ezenkívül a művelettel együtt is használható jsp:plugin. Más esetekben ennek a műveletnek a használata nem számít. jsp:paramMűveletekkel együtt használják , jsp:includeés jsp:forwardátadja az eredeti objektumot új oldalaknak request, amelyek kibővülnek az új paraméterekkel. Ha új értékeket ad meg a már meglévő paraméterekhez, akkor az új értékek élveznek elsőbbséget. Egy művelet jsp:paramssegítségével egyszerre több paramétert is beállíthat
jsp:plugin műveletEz a művelet lehetővé teszi a Java beépülő modult használó kisalkalmazások futtatásához szükséges OBJECT vagy EMBED elem beszúrását (a használt böngésző típusától függően). Más szavakkal, ez a művelet a HTML létrehozására szolgál a Java API beágyazásához a JSP-oldalon. Ugyanígy beillesztheti az URL-t a Java API moduljainak letöltéséhez a JavaSoft szoftverből, amely lehetővé teszi kisalkalmazások futtatását a böngészőn belül. A művelet jelentkezési űrlapja így néz ki:
< jsp : plugin type = "bean|applet" code = "class file" codebase = "CodeBase object" align = "location" archive = "archive list" height = "height" hspace = "vízszintes tér" jreversion = "verzió" name = "összetevő neve" vspace = "függőleges tér" width = "width" nspluginurl = "url" iepluginurl = "url" > < jsp : params > < jsp : param name = "name1" value = "value1" /> < jsp : param name = " name2" value = "value2 " /> ... < jsp : param name = "nameN" value = "valueN" /> </ jsp : params > < jsp : tartalék > </ jsp : tartalék > </ jsp : plugin >Nézzünk egy példát ennek a műveletnek a kisalkalmazáskódban való használatára:
< jsp : plugin type = "applet" code = "Blink.class" width = 300 height = 100 > < jsp : params > < jsp : param name = lbl value = "Igen, ez finomabb, mint a szeletelt kenyér! " /> < jsp : param name = speed value = "4" /> < jsp : params > < jsp : fallback > A böngészője ismeretlen okból nem tudja futtatni ezt a kisalkalmazást </ fallback > </ jsp : plugin >Jáva | |
---|---|
Platformok | |
Sun Technologies | |
Harmadik fél kulcsfontosságú technológiái | |
Sztori |
|
Nyelvi tulajdonságok | |
Szkriptnyelvek |
|
Java konferenciák |
|