Java Server Pages
A JavaServerPages, vagy közismertebb nevén JSP, a Java
szervletekhez hasonlóan egy klienstől érkező kérés alapján valamilyen
szöveges, leggyakrabban HTML vagy XML formátumú dokumentum dinamikus,
szerveroldali előállítására szolgáló technológia.
Ahhoz, hogy a JSP-t futtatni tudjuk szükség van egy
alkalmazáski-szolgálóra, egy webszerverre. Leggyakoribb esetben az Apache
Tomcat-et használják e célra.
A JSP és a servletek között az a különbség, hogy amíg a
servlet Java kódba ültetett HTML addig a JSP HTML-be foglalt JAVA kód. Tehát a
JSP tulajdonképpen Java és HTML kód keveréke. A JSP egy template-nyelv, ami azt
jelenti, hogy a generálandó tartalomba (HTML lapba) írjuk bele azokat a
kóddarabokat, amik a lapot a kérésnek megfelelően dinamikusan
változtatják. A JSP motor ezt a tartalmat Java szervletté fordítja a kulisszák
mögött és ez a servlet szolgálja ki valójában a kéréseket.
A JSP egy nagyon fontos előnye a servletekkel
szemben, hogy az oldal programozási része szétválasztható a webdesign-tól. Két
külön csapat dolgozhat ugyanazon a programon anélkül, hogy zavarnák egymás
munkáit; a design készítőknek nem kell ismerniük a javat ahhoz, hogy a jsp
megszülessen.
Minden olyan literál, amit a JSP-fordító nem ismer fel
egy az egybe bekerül a weblap szövegébe módosítatlanul, úgymond
feldolgozatlanul.
A JSP
elemei:
- direktívák : page , include, taglib
- script-elemek: deklarációk, script-részletek,
kifejezések
- akcióelemek: useBean, setProperty, getProperty, include, forward, plugin, param + saját
elemkönyvtárak.
A direktívák nem módosítják az előállított oldal
szövegét.
A page direktíva az egész oldalra vonatkozó jellemzők
beállítására szolgál.
Az include direktíva adott file fordítás előtti beillesztésére
szolgál. A fájl megváltozásakor a JSP implementációk automatikusan nem
fordítják újra az oldalt.
Az akcióelemek saját tag-ekkel bővíthetők,
amelyeket könyvtárakba rendezhetünk. A taglib direktíva használatával tudjuk
megmondani, hogy a JSP fordító hol keresse a saját elemkönyvtár leíróját.
A script-elemek háromfélék lehetnek: deklarációk,
script-részletek és kifejezések.
Script-részletek belsejében csak változók deklarálhatók,
metódusok nem. A script-részletek
tetszőlegesen keveredhetnek az oldal szövegével, de egybeolvasva őket
az adott nyelven értelmes kódot kell, hogy kapjunk. A kifejezések olyan
script-nyelvi elemek, amelyeket a fordító String
típusra hozhat, és közvetlenül a kimenetre írhat.
Az akcióknak fontos szerepe van a
kód elrejtésében, valamint a kód újrafelhasználásában. A kód elrejtése alatt
azt értjük, hogy egyszerű elemek mögé vannak rejtve a terjedelmes java
kódok. Az újrafelhasználás, amint a neve is mutatja ugyanazon kódrészlet egy
oldalon belüli többszöri felhasználását foglalja magába, akár azonos, akár eltérő
paraméterezéssel.
Az akciók egyik fontos
“tulajdonsága”, hogy lehetőséget ad arra, hogy bizonyos attribútumok
értékeként kifejezést adjunk meg, amelyik csak futásidőben
értékelődik ki.
Standard akciók a useBean, setProperty, getProperty, include, forward, plugin, param.
A useBean
használható objektumok, illetve JavaBeanek példányosítására.
A jsp:useBean
akcióval, vagy script-elemmel létrehozott beanek
tulajdonságainak beállítását szolgálja a jsp:setProperty
akció.
A jsp:getProperty,
a jsp:setProperty párja: a jsp:useBean akcióval, vagy valamilyen script-elemmel létrehozott
bean valamely tulajdonságának a lekérdezésére szolgál.
A jsp:include
akció segítségével az oldal adott pontján beilleszthetjük egy másik szervlet
vagy JSP oldal futásának eredményét. Működése hasonló az include direktívához, a különbség az, hogy a direktívával
statikus oldalakat lehet beszúrni, amelyek fordítás előtt kerülnek be az
oldal szövegébe, míg az akcióval beszúrt statikus file utólag kerül be az oldal
szövegébe, a kérés kiszolgálásakor.
Leggyakoribb használata a servletek, JSP oldalak eredményének a
beszúrása.
A
jsp:include akció szemléltetése:
A jsp:forward
akció révén a kérést továbbadhatjuk egy másik statikus erőforrásnak,
szervletnek, vagy JSP oldalnak. Leggyakoribb alkalmazása egy olyan
architektúra, amelyben egy szervlet vagy egy JSP megvizsgálja a beérkező
kérést, majd annak paraméterei függvényében továbbítja azt valamelyik JSP
oldalnak.
A <jsp:forward>
akció az alábbi ábrán is szemléltetve van:
A jsp:plugin
beilleszti az oldal szövegébe azt a HTML-kódot, ami ahhoz kell, hogy a
böngésző letöltse egy applet vagy bean indításához szükséges plug-int, és
lefutassa azt.
A jsp:param
a jsp:include, jsp:forward,
és jsp:plugin akciók törzsében
szerepelhet, célja kulcs-érték párok egymáshoz rendelése, az akciók
paraméterezése.
A JSP “legkutatottabb” területét a saját akció-elemek,
elemkönyvtárak képezik. Az elemkönyvtárak készítése a szerveroldalon
ténykedő programozók feladata, míg az internetes tartalmak szerzőire
csak ezen könyvtárak felhasználása hárul.
Az elemkönyvtárak felépítése:
·
elemkönyvtár tulajdonságait leíró
.tld kiterjesztésű úgynevezett tag library descriptor
·
az elemek funkcióját megvalósító
Java osztályok – .class fájlok, vagy egy .jar kiterjesztés archívum formájában.
Finta
Anna-Mária: