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

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

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

Java Web technológiák

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

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

A Java EE 5 plattform

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

JAVA webes alkalmazások

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

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

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

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

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

Web-fejlesztés NGM_IN002_1

JEE tutorial. Zsíros Levente, 2012

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

A TANTÁRGY ADATLAPJA

Bevezető. Servlet alapgondolatok

MVC. Model View Controller

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

A TANTÁRGY ADATLAPJA

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

Web programoz as

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

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

Junior Java Képzés. Tematika

S04-2 Elosztott alkalmazások készítése

Struts2 keretrendszer

5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)

A JavaServer Pages (JSP)

Enterprise JavaBeans 1.4 platform (EJB 2.0)

ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ

Java Servlet technológia

Java servlet technológia 1 / 40

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

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

webmathematica bemutatása

A JavaServer Pages (JSP)

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 I. A Java programozási nyelv

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

Nyilvántartási Rendszer

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

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

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

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést

Földmérési és Távérzékelési Intézet

Web-fejlesztés NGM_IN002_1

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.

The Power To Develop. i Develop

A JavaServer Pages (JSP)

Flex: csak rugalmasan!

webalkalmazások fejlesztése elosztott alapon

Java szervlet technológia

A Java nyelv bemutatása

Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)

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

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

Interaktív webes térképezés GRASS GIS 7-tel. A Web Processing Service bemutatása

2F Iskola fejlesztői dokumentáció

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

Rational. Application Developer. Telepítési kézikönyv. 7.0 változat GI

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

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

JavaServer Pages (JSP) (folytatás)

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

!!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7

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

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

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

GIS fejlesztés Web platformra nyílt forráskódú ingyenes eszközökkel

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

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

JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

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

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

S01-7 Komponens alapú szoftverfejlesztés 1

Vezetői információs rendszerek

Java grafikai lehetőségek

Debreceni Egyetem Informatikai Kar JAVA ENTERPRISE COMPUTING

Gyakorlati vizsgatevékenység B

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

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

VII. Appletek, grafika

Mozgásvizsgálati mérések internetes megjelenítése. Zemkó Szonja - Dr. Siki Zoltán

JavaScript Web AppBuilder használata

Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban

A TANTÁRGY ADATLAPJA

ALKALMAZÁS KERETRENDSZER

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

MUNKAIDŐ-NYILVÁNTARTÁS ALKALMAZÁS

Felhő alapú hálózatok Konténerek orkesztrálása Simon Csaba. Budapesti Műszaki és Gazdaságtudományi Egyetem

NAGY TELJESÍTM. Szerzők Dévai. István Automatizálási. és s Alkalmazott Informatikai Tanszék

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Gyakorlati vizsgatevékenység A

Átírás:

Áttekintés Java Web technológiák Bevezetés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások 1 / 28 2 / 28 MVC Model-View-Controller MVC desktop illetve webalkalmazás esetén eredete: kezdetben a SmallTalk OO programzási nyelvhez lett kifejlesztve eredetileg desktop alkalmazásoknál használták lényege szétválasztani a következő részeket: üzleti adatokat tartalmazó objektumok, illetve a rajtuk végezhető műveletek (model) megjelenítés (view) vezérlő logika (controller) jelenleg a legtöbb web-keretrendszer is a Model-View-Controller (MVC) mintát követi MVC desktop alkalmazás esetén MVC (klasszikus) web-alkalmazás esetén 3 / 28 4 / 28

MVC + Java web technológiák MVC Java web-technológiák esetén: Modell: tipikusan JavaBean-ek alkotják + a rajtuk végzett műveletek (üzleti logika kód) Nézet: tipikusan Java Server Page-ek (JSP) képviselik (de más megjelenítési technológiák is felhasználhatók, pl. Velocity, FreeMarker, JasperReports, Facelets (JavaServer Faces) stb.) Vezérlés: tipikusan egy Servlet (+parancsobkjektumok), amely fogadja a kérés (request) paramétereket átalakítja a paramétereket a megfelelő típusra ellenőrzi a paraméterek helyességét meghívja a megfelelő üzleti logika metódusokat az előbbi lépések eredményei alapján továbbít a megfelelő nézethez Az MVC elv működése Java web-alkalmazások esetén a következőképpen vázolható: 1. A kliens (web böngésző) kérést intéz a web szerverhez (GET vagy POST) 2. A webszerver a kérést (egy konfigurációs állomány alapján) a vezérlésért felelős Servlethez irányítja 3. A vezérlő Servlet (diszpécser) a kérés URL alapján meghívja a megfelelő parancs-objektumot 4. A parancsobjektum meghívja az üzleti logikát (itt történik pl. kommunikáció az adatbázissal vagy web-szolgáltatással), majd átirányít a megfelelő nézetre (pl. JSP). 5. A nézet (pl. JSP) megjeleníti az üzleti objektumokat 5 / 28 6 / 28 Java EE a Java alapú Web alkalmazások tipikus alkotóelemei: Servlet (vezérlés) JSP (nézet) ezek a komponensek a Java EE specifikáció szerves részei a továbbiakban áttekintést nyújtunk a Java EE technológiákról Java EE Java EE alkalmazás elkészítésének fázisai: tervezése (design) fejlesztése (development) összeálĺıtása (assembly) telepítése (deployment) A JavaEE platform az alábbiakat kínálja: alkalmazások komponens alapú fejlesztése újrafelhasználható komponensek többrétegű osztott alkalmazásmodell egységesített biztonsági modell XML alapú web-szolgáltatások (web service) platformfüggetlenség szerverfüggetlenség 7 / 28 8 / 28

Többrétegű alkalmazásmodell Többrétegű alkalmazások Rétegek (tier) - szétválasztják az alkalmazást logikai egységekre (mindegyiknek külön feladata van) A következő rétegeket különböztetjük meg: Kliens (ügyfél)-réteg: A kliens gépen futó komponensek (pl. applet, swing alkalmazás) Web-réteg: a Java EE szerver web konténerében futó komponensek (Servlet, JSP) Üzleti logikai-réteg: a Java EE szerver EJB konténerében futó komponensek (EJB) Vállalati információs réteg (Enterprise Information System (EIS)): EIS szerveren futó szoftver (pl. adatbázisszerver) A Java EE alkalmazásokat általában három rétegűnek tekintik: kliens gép (felhasználói felületet bizosít), Java EE szerver (az üzleti logikát tartalmazza) és adatbázis szerver Többrétegű alkalmazások [Java EE Tutorial] 9 / 28 10 / 28 Web kliens Alkalmazáskliensek (desktop kliens) a web böngésző: megmutatja a szerverről érkező oldalakat: HTML, XML stb. alapú dinamikus weblapok a web-rétegen futó komponensek generálják őket Alkalmazáskliensek: A kliens gépen futnak és egy komplexebb felhasználói felületet biztosítanak a html, xml alapú nyelvekhez képest web kliensek ún. könnyű (thin) kliensek nem kérdeznek le adatbázisokat, nem végeznek komplex üzleti műveleteket ezek a nehéz műveletek a Java EE szerveren hajtódnak végre (hasznosítva a szerveroldali technológiák gyorsaságát, biztonságát, megbízhatóságát) leginkább jellemző egy Swing vagy AWT alapú grafikus felhasználói felület lehet akár parancssor alapú felület is Ezek a kliensek már közvetlenebbül kapcsolódnak az alkalmazáslogikához és több funkcionalitást tartalmazhatnak. 11 / 28 12 / 28

JavaBean-ek Java EE komponensek Az alábbiakban játszanak szerepet: a Java EE komponensek és az adatbázisréteg közötti adatcserében web alkalmazás esetén a nézet a standard web-es hatókörökbe helyezett bean-eket mutatja meg A JavaBean-ek nem részei a Java EE specifikációnak. Az implementált JavaBean osztályok meg kell feleljenek a JavaBean specifikációnak: get/set metódusok a tulajdonságok lekérdezésére, beálĺıtására, paraméter nélküli publikus konstruktor, szerializálható kell legyen, stb. Java EE komponens: egy önálló funkcionalitású szoftverrész, amely a hozzá tartozó Java osztályokkal és erőforrásfájlokkal egy alkalmazás keretében van telepítve, és más komponensekkel kommunikál A következő Java EE komponensek vannak definiálva: Alkalmazás kliensek, Appletek: kliensoldalon futó komponensek Servletek, JSP (JavaServer Pages), JSF (JavaServer Faces): web komponensek, melyek a Java EE szerver Web-konténerében (pl. Tomcat) futnak EJB-k (Enterprise JavaBeans): üzleti logika komponensek, melyek a Java EE szerver ejb-konténerében (pl. Weblogic, Websphere, JBoss, GlassFish) futnak 13 / 28 14 / 28 Web komponensek néhány jellemző: a Java EE komponensek Java nyelven íródnak fordításuk bármilyen más Java programéhoz hasonlóan történik egy Java EE komponens és egy standard Java osztály közti különbség: a Java EE komponensek meg kell feleljenek az illető típusú komponensre vonatkozó Java EE specifikációnak a komponenseket össze kell rakni egy Java EE alkalmazásba ezt követően a szerverre lesznek telepítve Servletek: Java osztályok, amelyek dinamikusan dolgozzák fel a kérést (request) és építik fel a választ (response) JSP-k: szöveg-alapú dokumentumok, amelyek a háttérben ugyancsak Servletként futnak le, de a statikus tartalmat (HTML, XML) jóval egyszerűbben, természetesebben lehet létrehozni a segítségükkel. elvileg a Servletek és JSP-k felcserélhetőek gyakorlatilag minkettőnek megvan az erőssége és a gyengéje 15 / 28 16 / 28

összehasonĺıtás Üzleti logika komponensek Enterprise Java Bean-ek A Servletek alkalmasabbak: kontrollerként egy web alkalmazásnál (pl. kéréstovábbítás) nem szöveg alapú adatok feldolgozására A JSP-k alkalmasabbak: szöveg alapú (HTML, SVG, WML, XML) oldalak létrehozására A Servlet és JSP technológiák bevezetése óta újabb Java technológiák fejlődtek ki, amelyek (részben) az előbbi kettőn alapulnak. Pl. JSF, JSP elemkönyvtárak (pl. JSTL) Egy Java EE alkalmazásban az üzleti logika kódja (ami egy konkrét követelményt use case implementál) EJB-k által van megvalósítva. Háromféle EJB: session bean: az üzleti logikát implementálja entity bean: egy adatbázistábla egy bejegyzésének (record) felel meg. Biztosítja, hogy az adatok automatikusan le legyenek mentve az adatbázisba. message-driven (üzenetvezérelt) bean: üzenetküldést teszik lehetővé 17 / 28 18 / 28 ami a többrétegű alkalmazások megírását bonyolulttá teszi... komplex kód írására van szükség: a tranzakciók kezeléséhez, többszálú programozáshoz, hatékony erőforrás-tároláshoz (resource pooling), más alacsony szintű művelethez A komponens alapú és platfom-független Java EE architektúra a többrétegű alkalmazások fejlesztését megkönnyíti, mivel: az üzleti logika újrafelhasználható komponensekbe van szervezve a fenti alacsony szintű műveleteket a Java EE szerverek biztosítják, ezáltal a fejlesztő a konkrét feladat (üzleti logika) megoldására koncentrálhat. A web komponenseket vagy enterprise beaneket nem lehet egyből lefuttatni: össze kell álĺıtani őket (assembly) egy Java EE modulba a konténerbe kell telepítni (deploy) az összeálĺıtás: különböző konténer beálĺıtásokat feltételez különböző konfigurációs állományokban A Java EE szerver ezen beálĺıtások alapján különböző szolgáltatásokat biztosít: biztonsági szolgáltatások tranzakciókezelés, JNDI, távoli hívások (EJB-k és kliensek között, mintha ugyanabban a JVM-ben futnának) 19 / 28 20 / 28

Konténer típusok egy Java EE szerver EJB és Web konténereket biztosít: A web-kliens és web-alkalmazás közti kapcsolat a következőképpen műkodik: 1. A kliens egy HTTP kérést küld a web-szervernek 2. A web-konténer (mely a Servlet és JSP technológiákat implementálja) a kérést egy HTTPServletRequest objektummá alakítja. 3. Ezt az objektumot megkapja a web-komponens (Servlet vagy JSP), amely JavaBean-ekkel vagy az adatbázissal együttműködve dinamikus tartalmat generál. 4. A web-komponens egy HTTPServletResponse objektumot fog generálni vagy továbbadja (forward) a kérés objektumot egy másik web-komponensnek. 5. A web-konténer ezt az objektumot egy HTTP válasszá (response) alakítja és visszaküldi a kliensnek. Java EE szerver és konténerek [Java EE Tutorial] 21 / 28 22 / 28 Egy web-alkalmazás a következő komponensekből áll: web-komponensek telepítés-leíró (deployment descriptor) statikus erőforrások (pl. képek, statikus HTML oldalak) Java osztályok jar programcsomagok (libraries) Egy web-alkalmazás szerverfüggetlen: bármilyen web-konténerbe telepíthető, amelyik megfelel a Java Servlet/JSP specifikációnak. Egy web-alkalmazás létrehozása és futtatása a következő lépésekből áll: a web komponensek (Servlet, JSP) illetve segédosztályok megírása a telepítés-leíró (deployment descriptor) létrehozása a komponens osztályok illetve az ezekből hivatkozott segédosztályok lefordítása, illetve a megfelelő struktúrájú web-alkalmazás összeálĺıtása (build tool segítségével: pl. Ant) [opcionálisan] összecsomagolni az alkalmazást egy telepíthető egységbe (deployable unit). (.war állomány) telepíteni az alkalmazást a web-konténerbe böngészőből meghívni a megfelelő URL-ket, melyek a web-alkalmazásra hivatkoznak 23 / 28 24 / 28

A web modul a web-konténer megfelelő katalógusába lesz telepítve az alább felsorolt elemeket tartalmazó <alkalmazasnev>.war állománynak vagy <alkalmazasnev> katalógusnak felel meg Egy web modul sajátos struktúrával rendelkezik: a gyökérben taláhatók a JSP oldalak statikus web erőforrások szintén a gyökér tartalmaz egy WEB-INF nevű katalógust, amely a következőket tartalmazza: web.xml : a webalkalmazás telepítés-leírója (deployment descriptor) classes katalógus: szerver-oldali osztályok: Servletek, segédosztályok és JavaBeans komponensek lib katalógus: jar csomagok, melyeket a szerver-oldali osztályok hívnak meg Web modul szerkezete Java EE web modul [Java EE Tutorial] 25 / 28 26 / 28 Hasznos web-címek Fejlesztői környezet pl. Néhány hasznos web-cím: www.oracle.com/technetwork/java/ A Oracle (Sun) Java-val kapcsolatos hivatalos weboldala http://docs.sun.com/app/docs/doc/819-3669 Java EE 5 Tutorial http://download.oracle.com/javaee/6/tutorial/doc/ Java EE 6 Tutorial (Java EE Tutorials ) www.apache.org Hasznos programcsomagok, keretrendszerek, API implementációk (pl. Tomcat) www.eclipse.org Az Eclipse fejlesztői környezet hivatalos honlapja www.google.com... :) magyar nyelvű dokumentáció: Antal Margit, Java alapú webtechnológiák: www.ms.sapientia.ro/ manyi/teaching/java/java web technologiak.pdf Az alábbi eszközöket fogjuk használni: JDK 6 (vagy 7) (Java Developement Kit) futtatási környezet és Java fejlesztői eszközök (pl. fordító) Eclipse/NetBeans Java fejlesztői környezet Ant build tool Tomcat 7 webkonténer MySql adatbázisszerver tetszés szerinti böngésző 27 / 28 28 / 28