A JSP életciklusa Szkript elemek Dinamikus tartalom létrehozása Kifejezés nyelv Tartalom újrafelhasználása Vezérlés átadása Visszatekintés

Hasonló dokumentumok
JSP technológia. A JSP elemek kétféle szintaxissal használhatók: A JSP

A JSP életciklusa Szkript elemek Dinamikus tartalom létrehozása Kifejezés nyelv Tartalom újrafelhasználása Vezérlés átadása Visszatekintés

JSP életciklusa Szkript elemek, implicit objektumok, bean-ek, EL include, (forward) Visszatekintés MVC

JSP (Java Server Pages) technológia

A Java Server Pages technológia. JSP és JSP elemkönyvtárak, JSTL alapok

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

A JavaServer Pages (JSP)

A JavaServer Pages (JSP)

A JavaServer Pages (JSP)

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Web-fejlesztés NGM_IN002_1

Java servlet technológia 1 / 40

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Szervlet-JSP együttműködés

2. rész: JSP-k és szervletek készítése. Bakay Árpád NETvisor kft (30)

Java servlet technológia. Web alkalmazások. Servlet-et használni érdemes, ha. JSP-t használni érdemes, ha. Servlet-JSP kombináció (MVC) szükséges, ha

Struts2 keretrendszer

Java szervlet technológia

Java Servlet technológia

JAVA webes alkalmazások

Osztályok. 4. gyakorlat

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Bevezető. Servlet alapgondolatok

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet

és az instanceof operátor

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

JavaServer Pages (JSP) (folytatás)

Java Web technológiák

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

OOP #14 (referencia-elv)

Java programozási nyelv /ősz 9. óra. Java Server Pages. JSP technika alapjai

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Interfészek. PPT 2007/2008 tavasz.

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

Bevezetés a Python programozási nyelvbe

3. Osztályok II. Programozás II

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Java II. I A Java programozási nyelv alapelemei

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás

Java programozási nyelv 4. rész Osztályok II.

Programozási nyelvek Java

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

JEE tutorial. Zsíros Levente, 2012

Programozási nyelvek II. JAVA

Java II. I A Java programozási nyelv alapelemei

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Bevezetés Működési elv AJAX keretrendszerek AJAX

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

JAVA PROGRAMOZÁS 2.ELŐADÁS

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Web-technológia PHP-vel

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

C++ programozási nyelv Konstruktorok-destruktorok

Programozás C++ -ban 2007/7

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

A JavaScript főbb tulajdonságai

Már megismert fogalmak áttekintése

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT

JAVA PROGRAMOZÁS 3.ELŐADÁS

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

JavaServer Pages programozóknak

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

Osztott rendszerek, Java EE. Általános bevezető

A Java EE 5 plattform

Webalkalmazás fejlesztés Java EE környezetben NetBeans segítségével: JavaServer Faces 1.2 AJAX

AWK programozás, minták, vezérlési szerkezetek

Java IX. telkezelés a Java-ban

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Java IX. telkezelés a Java-ban

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

8. gyakorlat Pointerek, dinamikus memóriakezelés

Java és web programozás

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Pénzügyi algoritmusok

Áttekintés. Tartalom. Mi is az a Bean?

Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

A C programozási nyelv I. Bevezetés

Pénzügyi algoritmusok

Java technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.

Mobil Informatikai Rendszerek

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Java programozási nyelv 6. rész Java a gyakorlatban

III. OOP (objektumok, osztályok)

Operációs rendszerek gyak.

Objektumorientált programozás C# nyelven

Bevezetés a programozásba Előadás: A const

Java programozási nyelv 5. rész Osztályok III.

A C programozási nyelv I. Bevezetés

Átírás:

JSP technológia 1 / 39

Áttekintés Bevezetés JSP életciklusa Szkript elemek, implicit objektumok, bean-ek, EL include, (forward) Visszatekintés MVC 2 / 39

Áttekintés Bevezetés JSP életciklusa Szkript elemek, implicit objektumok, bean-ek, EL include, (forward) Visszatekintés MVC 3 / 39

Áttekintés Bevezetés JSP életciklusa Szkript elemek, implicit objektumok, bean-ek, EL include, (forward) Visszatekintés MVC 4 / 39

Áttekintés Bevezetés JSP életciklusa Szkript elemek, implicit objektumok, bean-ek, EL include, (forward) Visszatekintés MVC 5 / 39

Áttekintés Bevezetés JSP életciklusa Szkript elemek, implicit objektumok, bean-ek, EL include, (forward) Visszatekintés MVC 6 / 39

JSP technológia A JSP technológiával könnyen készíthető olyan web-tartalom, melynek statikus és dinamikus része van. A JSP rendelkezésre bocsátja a servlet-ek dinamikus tulajdonságait jóval természetesebb módon áll hozzá a statikus tartalom létrehozásához (mint a servlet) Egy JSP egy szöveges dokumentum, amely kétféle szöveget tartalmaz: statikus tartalom, amely bármilyen szöveges formátumú lehet (HTML, SVG, WML, XML), JSP elemek, amelyek a dinamikus tartalmat hozzák létre 7 / 39

A JSP elemek kétféle szintaxissal használhatók: standard XML Egy oldalon belül csak az egyiket használhatjuk. Az XML szintaxist akkor érdemes használni, amikor a JSP egy érvényes XML dokumentum kell legyen, amelyet valamilyen XML API-val szeretnénk feldolgozni. 8 / 39

Néhány JSP elem szintaxisa: JSP elem standard szintaxis XML szintaxis < % <jsp:scriptlet> szkriptlet kód kód % > </jsp:scriptlet> < % = <jsp:expression> kifejezés kifejezés kifejezés % > </jsp:expression> < %! <jsp:declaration> deklaráció kód kód % > </jsp:declaration> < %@ page <jsp:directive.page> page direktíva attrib= ertek attrib= ertek /> % > < %@ include <jsp:directive.include> include direktíva file= url file= url /> % > 9 / 39

A JSP életciklusa A JSP ugyanúgy szolgálja ki a kéréseket, mint egy servlet. A JSP életciklusát és a dinamikus voltát a servlet technológia határozza meg. Amikor egy kérés érkezik egy bizonyos JSP-re, a web-konténer ellenőrzi, hogy a JSP servlet-je régebbi-e, mint maga a JSP oldal. Ha igen, a konténer a JSP-ből servlet forráskódot generál, ezt követően lefordítja (kompilálja) a servlet osztályt. Mindezt automatikusan végzi a Web-konténer. 10 / 39

Fordítás Fordítás A statikus rész olyan kóddá lesz alakítva, mely a tartalmat közvetlenül a válasz objektumba teszi. A JSP elemek a következőképpen alakulnak: A direktívák szabályozzák, hogy a web-konténer hogyan fordítsa servlet forráskóddá és futtassa a JSP-t A szkript elemek a servlet osztály kódjába lesznek beillesztve A kifejezés nyelv (EL) kifejezések a kifejezés-kiértékelőnek adódnak át paraméterként. A jsp:[set get]property elemek a megfelelő JavaBean komponens metódushívásaivá alakulnak. A jsp:[include forward] elemek a megfelelő servlet API hívásokká alakulnak át. A saját elemek (custom tags) az elemkezelő (tag handler) osztály megfelelő hívásaivá alakulnak át. 11 / 39

Futás Futtatási paraméterek megadása A különböző futtatási paramétereket a page direktívában adhatjuk meg. Pufferelés: Amikor a JSP lefut, a válasz objektum automatikusan pufferelve lesz. A puffer nagyságát a buffer attribútummal álĺıthatjuk. <%@page buffer="none xxx kb"%> 12 / 39

Futás Hibakezelés Hibakezelés: Az errorpage attribútum határozza meg, hogy a konténer hova kell továbbítson hiba esetén: <%@page errorpage="file name"%> Pl. <%@page errorpage="errorpage.jsp"%> Az iserrorpage paraméter beálĺıtja, hogy az illető JSP oldal épp a hibakezelő oldal <%@page iserrorpage="true"%> Ez a direktíva egy javax.servlet.jsp.errordata objektumot bocsát rendelkezésre, amely a hibaadatokat tartalmazza. Ennek segítségével meg lehet mutatni a kliensnek a hiba okára vonatkozó információt. A következő kifejezéssel kérhető le (lásd: jspbasic/errorpage/trigger.jsp): ${pagecontext.errordata.statuscode} a státus-kód lekérésére ${pagecontext.errordata.throwable} a dobott hiba lekérésére 13 / 39

Futás Statikus tartalom típusa Statikus tartalom típusa Bármilyen szöveg alapú tartalom lehet: HTML, WML, XML stb. Alapértelmezésben HTML. Más típusú tartalom esetében a contenttype attribútumot kell használjuk a tartalom beálĺıtására. Ennek a direktívának a célja, hogy a böngésző helyesen értlemezze a kapott tartalmat. Ha pl. WML-t generálunk akkor: <%@page contenttype="text/vnd.wap.wml"%> Oldal kódolása: contenttype attribútum + charset: Az alábbi példában UTF-8 -t használunk, ami mindenféle karakterkészletet támogat <%@page contenttype="text/html;charset=utf-8"%> 14 / 39

Szkript elemek Szkriptlet: A <% %> elemek közötti rész egy az egyben belekerül a servlet forrásába, a JSP oldalon elfoglalt helyének megfelelően. A szkriptletekben változók is deklarálhatók, de mivel az egész <% %> közötti rész a jspservice() metódusba kerül, ezek a változók lokálisak lesznek. Metódust természetesen nem lehet szkriptletben definiálni, mert a java nem támogatja az egymásba ágyazott metódusokat. Metódust a deklarációs részben (lásd később) lehet definiálni. Kifejezés: A <%= %> elemek közötti rész, java kód mely String-et ad vissza. Ez a String az out.print() utasításba kerül. 15 / 39

Deklaráció: A <%! %> elemek közötti rész. (Változókat vagy) metódusokat lehet így deklarálni. Ezek a JSP-nek megfelelő servlet osztály-szintű tagjai lesznek. A deklarált változók példány-változók lesznek, de ezek használatát kerülni kell a szálkezelési problémák miatt. (a konténer egy adott servlet-osztály egyetlen példányát hozza létre, és -általában- minden kéréshez ezt az egy példányt használja) 16 / 39

Dinamikus tartalom létrehozása Java objektumokon keresztül valósul meg. A JSP néhány objektumot automatikusan rendelkezésre bocsát, illetve használhatunk alkalmazásspecifikus objektumokat is. Implicit objektumok: a web-konténer hozza létre őket az oldalhoz (page), kéréshez (request), szesszióhoz (session), alkalmazáshoz (application) kapcsolódó információkat tartalmaznak. ezek ugyanazok az objektumok, amelyeket a servlet technológia definiál. 17 / 39

Alkalmazásspecifikus objektumok: Dinamikus adatok bemutatására előkészített JavaBean objektumok, melyeket általában standard vagy saját elemek segítségével jelenítünk meg, kapjuk meg (vagy álĺıtjuk be) a tulajdonságaikat. Ugyanezt megtehetjük szkript-elemek használatával is, azaz közvetlen java kódot írva a JSP-be, de ezt lehetőleg kerüljük el. 18 / 39

Implicit objektumok Implicit objektumok Használhatjuk őket (tipikusan EL kifejezésen keresztül) anélkül, hogy előbb létrehoztuk volna őket. implicit objektumok: pagecontext: a JSP kontextusa. Hozzáférést biztosít az alábbi objektumokhoz: servletcontext/application: a JSP oldalhoz tartozó servlet kontextusa (getservletconfig().getservletcontext()) session: a szesszió objektum (ugyanaz, mint amit így kérünk le: request.getsession(true)) request: a kérés objektum (HttpServletRequest típusú) response: a JSP által küldött válasz (HttpServletResponse típusú objektum) 19 / 39

Implicit objektumok implicit objektumok: param: a kérés (request) paraméterek nevét hozzárendeli az értékükhöz paramvalues: a kérés (request) paramétereket hozzárendeli a megfelelő értéktömbökhöz header: a kérés fejléc-attribútumait hozzárendeli az értékükhöz headervalues: a kérés fejléc-attribútumait hozzárendeli a megfelelő értéktömbökhöz cookie: a süti nevét hozzárendeli egy süti értékéhez initparam: inicializáló paraméterek nevét hozzárendeli az értékükhöz a különböző hatókörökben elhelyezett objektum-attribútumokhoz való hozzáférést biztosítják: pagescope requestscope sessionscope applicationscope 20 / 39

JavaBeans komponensek Bean-ek visszatekintés Java osztályok, melyek bizonyos szabályoknak tesznek eleget: Rendelkeznek üres (azaz paraméter nélküli) konstruktorral (is), vagy egyáltalán nincs konstruktoruk Ne legyen publikus példány (azaz nem statikus) mezőjük A mezőkhöz való hozzáférés setxxx, illetve getxxx metódusok segítségével történik ha pl. az osztálynak van egy getname metódusa, ami String típust térít vissza, azt mondjuk, hogy a bean-nek van egy name nevű tulajdonsága Boolean típusú tulajdonság esetén használható isxxx a getxxx helyett 21 / 39

JavaBeans komponensek Bean pl. package bean.pelda; public class PersonBean { private String name; } public String getname(){ return name; } public String setname(string name){ this.name=name; } 22 / 39

JavaBeans komponensek JavaBeans komponensek JavaBean-nek minősül bármely olyan java osztály, amelyik betartja az emített, szerkezetére vonatkozó konvenciókat. ezeket a komponenseket a JSP standard nyelvi elemekkel támogatja. könnyen létrehozhatók és incializálhatók tulajdonságaik egyszerűen álĺıthatók, illetve olvashatók A JavaBeans komponens tulajdonsága lehet: írható/olvasható, csak olvasható, csak írható egyszerű, azaz egyetlen értéket tartalmazó, vagy indexelt (tömb, lista, map, stb.) 23 / 39

JavaBeans komponensek JavaBeans létrehozása és használata jsp:usebean elemmel deklaráljuk, hogy egy JSP egy JavaBeans komponenst fog használni. Több alakja van: <jsp:usebean id="beanname" class="fully qualified classname" scope="scope"/> <jsp:usebean id="beanname" type="type name" scope="scope"/> <jsp:usebean id="beanname" class="fully qualified classname" scope="scope"> <jsp:setproperty.../> </jsp:usebean> 24 / 39

JavaBeans komponensek A hatókör (scope) lehet: application, session, request vagy page Ha még nem létezik a bean, a web-konténer létrehozza (amennyiben meg van adva a class attribútum) és a megfelelő hatókörben tárolja. Az id attribútum meghatározza a bean nevét a hatókörben, amin keresztül hivatkozhatunk rá EL kifejezésekben vagy más JSP elemekben. Pl. <jsp:usebean id="locales" scope="application" class="mypkg.mylocales"/> 25 / 39

JavaBeans komponensek JavaBeans komponens tulajdonságok beálĺıtása A jsp:setproperty elemmel történik. A szintaxis a property forrásától függ. String konstans: <jsp:setproperty name="beanname" property="propname" value="string constant"/> Kérés (request) paraméter (explicit): <jsp:setproperty name="beanname" property="propname" param="paramname"/> 26 / 39

JavaBeans komponensek Kérés (request) paraméterek, melyek megegyeznek a bean tulajdonságával <jsp:setproperty name="beanname" property="propname"/> <jsp:setproperty name="beanname" property="*"/> Kifejezés: <jsp:setproperty name="beanname" property="propname" value="expression"/> <jsp:setproperty name="beanname" property="propname"> <jsp:attribute name="value"> expression </jsp:attribute> </jsp:setproperty> A beanname attribútum meg kell egyezzen a usebean elem id attribútumával. 27 / 39

JavaBeans komponensek JavaBeans komponens tulajdonságok kinyerése jsp:getproperty elem: A tulajdonság értékét karaktersorrá (String) alakítja és beszúrja azt a válasz stream-be <jsp:getproperty name="beanname" property="propname"/> Példák a beanname attribútum a usebean id attribútumával meg kell egyezzen, a JavaBeans komponesben kell léteznie egy getpropname() metódusnak. jspbasic/beans/..., illetve jspbasic/scope/... 28 / 39

Kifejezés nyelv (Expression language, EL) EL kifejezések segítségével könnyen hozzáférhetünk JavaBean-ekben tárolt alkalmazásadatokhoz ${bookdb.bookdetails.title} egy name nevű bean elérhető a ${name} kifejezéssel egy beágyazott tulajdonsága elérhető a ${name.valami1.valami2} szintaxissal Az EL kifejezéseket a JSP kifejezés-kiértékelő dolgozza fel. Hogy kikapcsoljuk az EL kifejezések kiértékelését az iselignored attribútumot használjuk: <%@page iselignored ="true false"%> 29 / 39

EL kifejezések használhatók statikus szövegben vagy bármely standard vagy saját elemben, amely egy kifejezést vár. Statikus szöveg esetében a kifejezés kiértékelődik és hozzáadódik az aktuális kimenethez. Egy elem egy attribútumát több módon lehet beálĺıtni: Egy EL kifejezés: <some:tag value="${expr}"/> A kifejezés ki lesz értékelve és a várt típusra lesz alakítva Egy vagy több, szöveggel elválasztott EL kifejezés: <some:tag value="some${expr}${expr}text${expr}"/> A kifejezések balról jobbra lesznek kiértékelve, majd karaktersorrá lesznek alakítva és össze lesznek fűzve. A keletkezett karaktersor aztán a várt típusra lesz alakítva. Csak sima szöveg: <some:tag value="sometext"/> Az attribútum karaktersora át lesz alakítva a várt típusra JSP kifejezés: <some:tag value="<%=expression%>"/> Pl. lásd: jspbasic/beans/sessionscopebean.jsp 30 / 39

Változók A web-konténer a PageContext.findAttribute(String)-el keresi meg a változót, amely az EL kifejezésben megjelenik. Pl. a ${product} kifejezésre a konténer megkeresi a product-ot a page, request, session, illetve application hatókörökben és visszaadja annak értékét. A beanek tulajdonságai a. operátorral érhetők el bármilyen mélységig beágyazva. bővebben http://download.oracle.com/javaee/6/tutorial/doc/gjddd.html 31 / 39

Tartalom újrafelhasználása include direktíva: akkor kerül feldolgozásra, mikor a JSP át van fordítva servlet osztállyá. a (statikus vagy dinamikus) tartalom hozzá lesz fűzve a JSP oldal tartalmához. tipikusan bannerek, szerzői jogi információk befűzésére alkalmazzák. Szintaxis: <%@include file="filename"%> 32 / 39

jsp:include: a JSP futása közben kerül feldolgozásra. statikus vagy dinamikus tartalmat is hozzáfűzhetünk a JSP-hez. a statikus tartalom egyszerűen hozzáfűződik a hívó JSP-hez. a dinamikus tartalom esetében, a kérés objektum (request) tovább lesz küldve a befűzött erőforráshoz, majd a befűzött oldal lefut és az eredmény hozzá lesz fűzve a hívó JSP válaszához (response). Szintaxis: <jsp:include page="includedpage"/> pl: lásd: jspbasic/include/index.jsp 33 / 39

Vezérlés átadása egy másik web-komponensnek jsp:forward: a Java Servlet API funkcionalitását használja fel. Szintaxis: <jsp:forward page="filename"/> Amikor egy include vagy forward elemet meghívunk, az eredeti kérés át lesz adva a céloldalnak. Ha további adatokat akarunk a céloldalnak átadni, ezt megtehetjük a jsp:param elem segítségével. 34 / 39

<jsp:include page="..."> <jsp:param name="param1" value="value1"/> </jsp:include> Az új paraméterek hatóköre a jsp:include vagy jsp:forward hívás, azaz az új paraméterek nem érvényesek az include visszatérése után. 35 / 39

egyéb példák: formelemek feldolgozása: jspbasic/formelements/... összetettebb pl.: jspbasic/converter/converter.jsp 36 / 39

MVC elv visszatekintés MVC működési elv egyszerű Java Web-alkalmazás esetén 37 / 39

MVC elv visszatekintés MVC elv implementálása egyszerű Java Web-alkalmazás esetén 1 Definiáljuk az adatokat tároló bean-eket 2 A kérések lekezelésére használjunk servlet-et a servlet kiolvassa a kérés paramétereket, ellenőrzi a hiányzó vagy helytelen adatokat, stb. 3 Töltsük fel a bean-eket A vezérlő servlet meghívja az üzleti logikát, mely adatokat szolgáltat vissza. Ezeket tároljuk az 1. pontnál meghatározott bean-ekben. 4 Tároljuk a bean-eket valamelyik Web-hatókörben (kérés, szesszió vagy alkalmazás hatókör) a servlet meghívja a megfelelő hatókör-objektum setattribute metódusát, mely egy bizonyos kulcs alapján hozzáférhető referenciát tárol a megfelelő bean-re 38 / 39

MVC elv visszatekintés MVC elv implementálása egyszerű Java Web-alkalmazás esetén 5 Továbbítsunk (forward) a megfelelő JSP-re a servlet kiválasztja a megfelelő nézetet (megfelelő JSP), és a RequestDispatcher forward metódusa segítségével átirányít az illető JSP-re. 6 Kinyerjük az adatokat a bean-ekből és megmutatjuk őket a JSP oldal hozzáfér a megfelelő bean-hez jsp:usebean-t használva. Attribútumként megadjuk a 4. pontnál meghatározott hatókört. Ezután jsp:getproperty-t használunk a bean tulajdonságainak megjelenítésére. EL kifejezést is használhatunk a bean-tulajdonságok megjelenítésére. a JSP tipikusan nem hozza létre vagy módosítja a bean-t csupán megmutatja a servlet által előkészített adatokat. pl. MVC elvre alapozó egyszerű Web-alkalmazás: mvc/index.jsp 39 / 39