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

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

Bevezető. Servlet alapgondolatok

A Java EE 5 plattform

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

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

JAVA webes alkalmazások

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)

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

Java I. A Java programozási nyelv

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

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

Enterprise JavaBeans 1.4 platform (EJB 2.0)

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

Web-fejlesztés NGM_IN002_1

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

Interfészek. PPT 2007/2008 tavasz.

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.

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

JEE tutorial. Zsíros Levente, 2012

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

Java I. A Java programozási nyelv

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

Java Web technológiák

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

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

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

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

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

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 grafikai lehetőségek

Komponens alapú fejlesztés

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

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

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

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

Java servlet technológia 1 / 40

Java szervlet technológia

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

Web programoz as

Stateless Session Bean

Iman 3.0 szoftverdokumentáció

Webes alkalmazások fejlesztése

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

és az instanceof operátor

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

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

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

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

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

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

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

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

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

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

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

Már megismert fogalmak áttekintése

The Power To Develop. i Develop

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

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

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

Komponens alapú programozás Bevezetés

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

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

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

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Írásjogtól Rootig AIX-on

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

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

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

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

OOP és UML Áttekintés

PHP-MySQL. Adatbázisok gyakorlat

PHP. Adatbázisok gyakorlat

C++ programozási nyelv Konstruktorok-destruktorok

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

IBM WebSphere Adapters 7. változat 5. alváltozat. IBM WebSphere Adapter for Oracle E-Business Suite felhasználói kézikönyv 7. változat 5.

Webszolgáltatások (WS)

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

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

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

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

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Átírás:

A JavaServer Pages (JSP) Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 27. JSP

Harmadik generáci ciós 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 / 2

Harmadik generáci ciós s WEB szerver (folyt.) Microsoft: a.net koncepció új nyelv bevezetése (C#) plattformhoz kötö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 / 3

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

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

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

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

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

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

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

JSP oldal életciklusa II. (A fordítás után) Ha a JSP oldalhoz tartozó servlet már 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 / 11

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

JSP oldal inicializáci 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 / 13

Statikus tartalom készítésese 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 / 14

Dinamikus tartalom készítésese 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 / 15

Dinamikus tartalom készítésese 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 / 16 JSP

Javaslat Dinamikus tartalom készítésese 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 / 17

Dinamikus tartalom készítésese III. 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 / 18

Dinamikus tartalom készítésese 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 / 19

Dinamikus tartalom készítésese 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 / 20

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

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

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

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

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

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

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

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

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 erőforráshoz) <jsp:getproperty> (Beszúrja a bean tulajdonság értékét az 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 / 29

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

JSP JSP / 31