A JavaServer Pages (JSP)

Hasonló dokumentumok
A JavaServer Pages (JSP)

A JavaServer Pages (JSP)

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

JSP (Java Server Pages) technológia

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

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

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

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

A Java EE 5 plattform

Bevezető. Servlet alapgondolatok

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

JAVA webes alkalmazások

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

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

Web-fejlesztés NGM_IN002_1

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

JavaServer Pages (JSP) (folytatás)

Java I. A Java programozási nyelv

A webhelyhez kötődő szoftverek architektúrája

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

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

Web-fejlesztés NGM_IN002_1

JavaServer Pages programozóknak

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.

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

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

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

Internetes böngésző fejlesztése a mobil OO világban

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

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

Interfészek. PPT 2007/2008 tavasz.

Komponens alapú fejlesztés

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Java I. A Java programozási nyelv

JEE tutorial. Zsíros Levente, 2012

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.

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Webshop készítése ASP.NET 3.5 ben I.

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Java Web technológiák

Java grafikai lehetőségek

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

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

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

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

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

Osztott alkalmazások fejlesztési technológiái Áttekintés

Web programoz as

Szerver oldali technológiák Szerver oldali script nyelvek PHP

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

Komponens modellek. 3. Előadás (első fele)

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Adatbányászat és Perszonalizáció architektúra

Stateless Session Bean

Iman 3.0 szoftverdokumentáció

Java szervlet technológia

A WEB programozása - Bevezetés őszi félév Dr. Gál Tibor

Webszerver-alkalmazások készítése Delphi 3-mal

Java servlet technológia 1 / 40

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése

eseményvezérelt megoldások Vizuális programozás 5. előadás

A WiFi4EU megfelelőség-ellenőrző összetevő. Végrehajtási útmutató v1.0

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

Webes képgaléria tervezése és implementációja

The Power To Develop. i Develop

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

és az instanceof operátor

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

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 VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Webes alkalmazások fejlesztése

Írásjogtól Rootig AIX-on

Adatszolgáltatás a Postai Informatikai Rendszer számára. Dr. Nyuli Attila Alkalmazásfejlesztési és Üzemeltetési Osztály

Java Servlet technológia

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ

1. Jelölje meg az összes igaz állítást a következők közül!

Internet programozása. 1. előadás

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

HTML é s wéblapféjlészté s

Bevezetés J2EE komponensek Java2EE API-k Web alkalmazások Dokumentáció Fejlesztői környezet. JAVA technológiák - bevezető

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Már megismert fogalmak áttekintése

PHP-MySQL. Adatbázisok gyakorlat

S, mint secure. Nagy Attila Gábor Wildom Kft.

Többfelhasználós és internetes térkép kezelés, megjelenítés

Zimbra levelező rendszer

Webszolgáltatások (WS)

HRdoc+ Rendszerismertető. Számítástechnikai és Szolgáltató Kft. Tel.: H-2051 Biatorbágy, Viola u. 38.

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OOP és UML Áttekintés

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

GeoServer, OpenLayers és WFS. Dolleschall János

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Átírás:

A JavaServer Pages (JSP) Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem JSP

WEB-es alkalmazások fejlődéstörténete A WEB-es alkalmazások fejlődését nyomon követve három nagy korszakot figyelehetünk meg: Első generáció: statikus oldalak (a kezdet) Második generáció: igény dinamikus tartalmak megjelenítésére Harmadik generáció: tipikus a dinamikus Web oldal, ezek előállításához igény más alkalmazásokhoz való kapcsolódásra JSP JSP / 2

Első generációs WEB szerverek statikus HTML lapok beágyazott grafikák, hangok VRML világ böngésző oldali scriptek JAVA applet-ek, később Active X JSP JSP / 3

Második generációs WEB-es alkalmazások dinamizmus megjelenése CGI programok (Common Gateway Interface) Lassú, mert minden CGI kérésnél egy teljes értékű processz indul el) SSI-k (Server Side Include) korlátozott funkcionalitás WEB szerver API minden WEB szerverhez más-más API JSP JSP / 4

Harmadik generációs WEB szerver A dinamikus lap a tipikus Dinamikus HTML, újabban XML Microsoft Active Server Pages (ASP) Nem szabványos megoldás: Visual Basic nyelv csak Windows-os környezetben működik rendesen az OLE, ActiveX és Windows lehetőségeinek teljes kihasználása JSP JSP / 5

Harmadik generációs WEB szerver (folyt.) MS újabb stratégiája a.net koncepció új nyelv bevezetése (C#) plattformhoz között JavaServer Pages (JSP) Olyan WEB-es fejlesztő és futtató környezet, ami tudja mindazt, amit az ASP, de platform és szállító független JSP JSP / 6

A JavaServer Pages Lehetővé teszi dinamikus weboldalak készítését Java alapú, tehát ez is platform független Felhasználói felület és tartalom elkülönül egymástól Új kiterjesztés:.jsp Működéséhez egy container szükséges Ez szabványos felületen igényelhető szolgáltatásokat nyújt A container általában egy Web szerver része JSP JSP / 7

A JSP technológia főbb vonásai Nyelv: JSP oldalak fejlesztésének eszköze Szöveg alapú dokumentumok, melyek leírják hogyan dolgozza fel a kérelmeket és milyen választ (válaszokat) hozzon ehhez létre. Szerkezetek Segítségükkel elérhetőek a kiszolgáló oldali objektumok is (ez által az összes Java eszköz és technológia, korlátok nélkül. pl. adatbázis kapcsolatok, xml feldolgozás stb.) JSP JSP / 8

A JSP technológia főbb vonásai (folyt.) Mechanizmusok A JSP nyelv bővíthető A JSP techológia tartalmazza a web containerek fejlesztéséhez szükséges API-t is. JSP JSP / 9

Egy JSP lap szöveges részei Statikus rész (HTML) A már jól megszokott HTML tag-ek használhatók Nem kell a statikus részt elkülöníteni a dinamikustól Dinamikus rész (JSP elemek) Jellemzően <% %> között szerepelnek a JSP direktívák <% %> között tetszőleges (érvényes )Java kód megadható JSP JSP / 10

Mi is a JSP? A JSP nem futtatható kód A JSP egy servlet definíciójának tekinthető, a JSPból egy servlet készül, amit le lehet fordítani. A JSP - servlet konverzió automatikus JSP JSP / 11

Egy JSP oldal életciklusa I. Mivel a JSP oldalból egy servlet készül, ezért az életciklust a Java Servlet technológia határozza meg Kérés (request) menete A container összehasonlítja a JSP oldal életkorát az őt megvalósító servlet-ével. A JSP újabb: a JSP oldalt servlet-té alakítja, majd lefordítja A JSP régebbi: továbbítja a kérést a servlet-nek JSP JSP / 12

Egy JSP oldal életciklusa I. (folyt.) Nagy előny: A fenti mechanizmus automatikus. A fejlesztéshez elegendő egy text fájlt szerkeszteni, kézzel nem kell fordítani. Nem kell figyelni arra, hogy változott-e a JSP. JSP JSP / 13

JSP oldal életciklusa II. (A fordítás után) Ha a JSP oldalhoz tartozó servlet nem létezik, akkor a container: betölti a JSP oldal szervlet osztályát példányosítja a szervlet osztályt inicializálja a szervlet tartalmát, meghívja a jspinit metódust. A container meghívja a _jspservice metódust, átadja neki a kérés (request) és a válasz (response) objektumot JSP JSP / 14

JSP oldal életciklusa II. (folyt.) Ha a containernek meg kell szüntetnie a JSP oldalhoz tartozó szervletet, akkor meghívja a jspdestroy metódust. JSP JSP / 15

JSP oldal inicializációja és befejezése A jspinit felüldefiniálásával beállíthatjuk az inicializációt. A jspdestroy metódussal tudjuk a lefoglalt eroforrásokat felszabadítani. Ezekben a JSP deklarációt kell alkalmaznunk! JSP JSP / 16

Statikus tartalom készítése Statikus tartalmat bármely leíró nyelvben írhatunk, ilyenek a HTML, WML és az XML Az alap formátum a HTML Ha mást akarunk használni, akkor az oldal direktíváknál kell megadni. Pl. WML-t akarunk használni, akkor ezt a direktívát kell beszúrni: <%@page contenttype= text/vnd.wap.wml %> JSP JSP / 17

Dinamikus tartalom készítése I. Objektumok használata JSP oldalakon Számtalan objektum, Enterprise Bean és JavaBean komponens használható a JSP oldalon. A JSP technológia automatikusan elérhetővé tesz néhány objektumot Hozzáférhetünk alkalmazás specifikus (saját) objektumokhoz Hozzáférhetünk alaposztályok objektumaihoz JSP JSP / 18

Dinamikus tartalom készítése II. Implicit objektumok Ezeket az objektumokat a Web container szolgáltatja. Számos kérelemmel, oldallal és alkalmazással kapcsolatban tartalmaznak információt. Néhány implicit objektum: application javax.servlet.servletcontext Config javax.servlet.servletconfig PageContext javax.servlet.jsp.pagecontext session javax.servlet.http.httpsession response javax.servlet.servletresponse JSP JSP / 19 JSP

Javaslat Dinamikus tartalom készítése III. Alkalmazás specifikus objektumok Ha lehetséges, akkor az oldal viselkedését próbáljuk meg teljesen objektumokkal leírni. Így a laptervezőknek a kivitelezésre kell csak ügyelniük. JSP JSP / 20

Dinamikus tartalom készítése III. Alkalmazás specifikus objektumok Alkalmazás specifikus objektumok (folyt.) Négyféleképpen hozhatunk létre és használhatunk objektumokat JSP oldalon: A JSP oldal servlet-ének tartalom és osztály változói, melyeket deklarációban hozunk létre és szkriptekben ill. kifejezésekben hivatkozunk rájuk. A JSP oldal servlet-ének helyi változói, melyeket szkriptekben és kifejezésekben használunk ill. hozunk létre. Látható objektumok attribútumai (scope objects) JavaBeans komponensek JSP JSP / 21

Dinamikus tartalom készítése IV. Osztott (shared) objektumok A JSP biztosít lehetőséget osztott objektumok kezelésére alap gond: szinkronizáció, lockolás... A WEB-container felé jelezni kell, hogy hogyan is kezelje az osztott használatot: <%@ page isthreadsafe="true false" %> Default: true JSP JSP / 22

Dinamikus tartalom készítése IV. Osztott (shared) objektumok (folyt.) Ha isthreadsafe="true", akkor a container "synchronized" hozzáférést biztosít az osztott objektumokhoz oldal szinten (page level) Ha isthreadsafe="false", akkor a container csak egyszeres (one at a time) hozzáférést biztosít az objektumhoz JSP JSP / 23

Használható: JSP script elemek I. Objektumok létrehozására Vezérlési elemek beiktaására Az olvashatóságot rontja Minden olyan Java elem használható, amit a container képes értelmezni Már volt: <% %>... JSP JSP / 24

JSP script elemek II. Page direktíva I. Oldal direktíva, az oldalra vonatkozó beállításokat tartalmazza Formája: <%@page... %>... lehet: JSP JSP / 25

JSP script elemek III. page direktíva II. <%@ page [language="java"] [extends="package.class"] [import="{package.class package.*},..."] [session="true false"] [buffer="none 8kb size_kb"] [autoflush="true false"] [isthreadsafe="true false"] [info="text"] [errorpage="relative_url"] [iserrorpage="true false"] [contenttype="{mimetype [; charset=characterset] text/html; charset=iso-8859-1}"] [pageencoding="{characterset ISO-8859-1}"] %> JSP JSP / 26

JSP script elemek IV. További elemek I. Comment: (Dokumentálja a JSP file-t, de a válaszba nem épül be) <%-- comment --%> Deklaráció: (Deklarálja az oldalon érvényesen használható változókat vagy metódusokat) <%! deklaráció; [deklaráció;]+... %> Kifejezés: (Tartalmazza az oldalon használható szkript nyelv kifejezéseit) <%= kifejezés %> JSP JSP / 27

JSP script elemek V. További elemek II. Script: (Egy kódrészletet tartalmaz, mely érvényes az adott oldal nyelvezetében) <% kód részlet %> Include direktívák: (Beépíti a file-t, és elemzi a file JSP elemeit) <%@ include file="relativ URL" %> JSP JSP / 28

JSP script elemek VI. Egyszerű példa <%@page contenttype="text/html;charset=utf-8" %> <%@page import="java.util.hashtable" %> <html> <head> <title>pelda</title> </head> <%-- Deklaracio --%> <%! String[] myarray = {"Miau", "Chickenf", "Rabbit"}; %> <% // Szinten deklaracio! Hashtable stat = new Hashtable(); %> stat.put("miau", new Integer(10)); stat.put("ramrod", new Integer(4)); //! stat.put("rabbit", new Integer(6)); stat.put("chickenf", new Integer(2)); JSP JSP / 29

JSP script elemek VII. Egyszerű példa folyt. <body> <table border="1"cellspacing="0" cellpadding="0" width="100%"> <tr><td align="center"><b>name</b></td> <td align="center"><b>count</b></td></tr> <% for (int i = 0; i < myarray.length; i++) { %> <tr><td align="center"><%=myarray[i]%></td> <td align="center"><%=stat.get(myarray[i]) %></td> </tr> <% } // for %> </table> </body> JSP JSP / 30

JSP script elemek VIII. Taglib direktívák I. Definiálja a tag könyvtárakat, és a JSP oldalon előtagokat az egyedi tagokhoz Formája: <tagprefix:name> Így érhetjük el az egyedi tag-ek funkcióit: <tagprefix:name attribute="ertek"+... /> <tagprefix:name attribute="ertek"+... > más tag-ok és adatok </tagprefix:name> JSP JSP / 31

JSP script elemek IX. Taglib direktívák II. Taglib direktívák (teljesség igénye nélkül): <jsp:forward> (Továbbítja a kérelmet a web-es eroforráshoz) <jsp:getproperty> (Beszúrja a bean tulajdonság értékét ez eredménybe) <jsp:setproperty> (Beállítja a Bean property értékét, értékeit) <jsp:include> (Beépít egy statikus file-t vagy egy másik web-es komponens eredményét) <jsp:plugin> (Egy applet vagy egy Bean végrehajtását eredményezi) JSP JSP / 32

Linkek http://java.sun.com/products/jsp/ http://jakarta.apache.org/ http://www.jettyserver.org/jetty/index.html http://java.sun.com /webservices/docs/1.2/tutorial/doc/index.html JSP JSP / 33

JSP JSP / 34