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: