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 életciklusa Szkript elemek, implicit objektumok, bean-ek, EL include, (forward) Visszatekintés MVC

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 technológia. A JSP elemek kétféle szintaxissal használhatók: A JSP

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 WEB programozása - JSP1 dr.gál Tibor őszi félév

A JavaServer Pages (JSP)

A JavaServer Pages (JSP)

A JavaServer Pages (JSP)

Web-fejlesztés NGM_IN002_1

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

Java servlet technológia 1 / 40

Struts2 keretrendszer

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

Java Servlet technológia

JAVA webes alkalmazások

Bevezető. Servlet alapgondolatok

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

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

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

Osztályok. 4. gyakorlat

JavaServer Pages (JSP) (folytatás)

OOP #14 (referencia-elv)

Java szervlet technológia

Interfészek. PPT 2007/2008 tavasz.

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

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

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

Programozási nyelvek Java

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

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

Java Web technológiák

Enterprise JavaBeans 1.4 platform (EJB 2.0)

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

Bevezetés a Python programozási nyelvbe

JEE tutorial. Zsíros Levente, 2012

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?

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.

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

és az instanceof operátor

Java II. I A Java programozási nyelv alapelemei

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

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

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

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

Programozási nyelvek II. JAVA

JavaServer Pages programozóknak

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

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

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

Már megismert fogalmak áttekintése

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

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

3. Osztályok II. Programozás II

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

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

Programozás C++ -ban 2007/7

A JavaScript főbb tulajdonságai

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

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

Pénzügyi algoritmusok

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

Java II. I A Java programozási nyelv alapelemei

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

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.

A Java EE 5 plattform

Web-technológia PHP-vel

JAVA PROGRAMOZÁS 3.ELŐADÁS

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

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

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

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

Java és web programozás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban

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

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

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

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

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

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

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

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

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

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

C++ programozási nyelv Konstruktorok-destruktorok

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

Programozási nyelvek JAVA EA+GY 1. gyakolat

Globális operátor overloading

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Segédanyag: Java alkalmazások gyakorlat

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

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

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Átírás:

JSP technológia

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

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

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

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

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

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

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.

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

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.

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.

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

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

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"%> Regisztrált MIME típusok: http://www.iana.org/assignments/media-types/

Futás Oldal kódolása (encoding) Oldal kódolása: Szintén a contenttype attribútumot használjuk az oldal kódolásának a maghatározására, a charset segítségével: 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"%>

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.

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 minden kéréshez ezt az egy példányt használja)

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.

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.

Implicit objektumok Implicit objektumok Használhatjuk őket anélkül, hogy előbb létrehoztuk volna őket. implicit objektumok: request: a kérés objektum (HttpServletRequest típusú) response: a JSP által küldött válasz (HttpServletResponse típusú objektum) out: a válasz objektumba írás rajta keresztül történik, pufferelt módon (ritkán használjuk explicit módon, helyette JSP kifejezést használunk) session: a szesszió objektum (ugyanaz, mint amit így kérünk le: request.getsession(true)) application: alkalmazás-szintű adatok tárolására alkalmas. ServletContext típusú objektum (lekérése getservletconfig().getservletcontext())

Implicit objektumok implicit objektumok: page: a this szinonímája config: ServletConfig típusú objektum. A JSP-nek megfelelő servlet inicializására van használva. pagecontext: a JSP kontextusa. Get metódusok segítségével hozzáférhetővé teszi például a szesszió, request, response objektumokat (és másokat, melyek nagyrésze közvetlenül is elérhető) exception: hiba esetén a hibát okozó kivételt tartalmazza

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

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; }

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.)

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>

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"/>

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"/>

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.

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/...

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

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

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.

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

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

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.

<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.

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

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

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

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. 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