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



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

Java Web technológiák

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

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

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

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

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

Web-fejlesztés NGM_IN002_1

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

Bevezető. Servlet alapgondolatok

JEE tutorial. Zsíros Levente, 2012

A TANTÁRGY ADATLAPJA

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

Web programoz as

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

Java Servlet technológia

MVC. Model View Controller

A TANTÁRGY ADATLAPJA

Java servlet technológia 1 / 40

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

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

ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ

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

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 szervlet technológia

Struts2 keretrendszer

A JavaServer Pages (JSP)

webmathematica bemutatása

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

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

Enterprise JavaBeans 1.4 platform (EJB 2.0)

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

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

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

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

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

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

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

A JavaServer Pages (JSP)

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

Web-fejlesztés NGM_IN002_1

Junior Java Képzés. Tematika

Java I. A Java programozási nyelv

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

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

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

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.

Nyilvántartási Rendszer

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

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

The Power To Develop. i Develop

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

2F Iskola fejlesztői dokumentáció

A JavaServer Pages (JSP)

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

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

A TANTÁRGY ADATLAPJA

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

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

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

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

webalkalmazások fejlesztése elosztott alapon

Bevezetés E LSŐ FEJEZET

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

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

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

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

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

Gyakorlati vizsgatevékenység B

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

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

Vezetői információs rendszerek

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

A Java nyelv bemutatása

API tervezése mobil környezetbe. gyakorlat

Java grafikai lehetőségek

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

Gyakorlati vizsgatevékenység A

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

ALKALMAZÁS KERETRENDSZER

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

Flex: csak rugalmasan!

S01-7 Komponens alapú szoftverfejlesztés 1

JavaScript Web AppBuilder használata

Debreceni Egyetem Informatikai Kar JAVA ENTERPRISE COMPUTING

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

MUNKAIDŐ-NYILVÁNTARTÁS ALKALMAZÁS

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

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

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

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

Web programozás. Internet vs. web. Internet: Az Internet nyújtotta néhány alapszolgáltatás:

On-Line Preferansz Követelményspecifikáció

Átírás:

Java Web technológiák Bevezetés

Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

MVC Model-View-Controller 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 illetve webalkalmazás esetén MVC desktop alkalmazás esetén MVC (klasszikus) web-alkalmazás esetén

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

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

Többrétegű alkalmazásmodell 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 Többrétegű alkalmazások [Java EE Tutorial]

Web kliens Web 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 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)

Alkalmazáskliensek Alkalmazáskliensek (desktop kliens) Alkalmazáskliensek: A kliens gépen futnak és egy komplexebb felhasználói felületet biztosítanak a html, xml alapú nyelvekhez képest 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.

JavaBean-ek 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 komponensek 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: Servletek és JSP (JavaServer Pages): 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, GassFish) futnak

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

Web komponensek Web komponensek 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

Web komponensek összehasonĺıtás 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 az előbbi kettőn alapulnak. Pl. JSF, JSP elemkönyvtárak (pl. JSTL)

Üzleti logika komponensek Üzleti logika komponensek Enterprise Java Bean-ek 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é

Üzleti logika komponensek 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.

Üzleti logika komponensek 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)

Konténer típusok Konténer típusok egy Java EE szerver EJB és Web konténereket biztosít: Java EE szerver és konténerek [Java EE Tutorial]

Konténer típusok Konténer típusok egy Java EE szerver EJB és Web konténereket biztosít: Java EE szerver és konténerek [Java EE Tutorial]

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.

Web-alkalmazás életciklusa 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.

Web-alkalmazás életciklusa 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

Web-modulok 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

Java EE web modul [Java EE Tutorial] Web-modulok Web modul szerkezete

Hasznos web-címek 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 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

Fejlesztői környezet pl. Az alábbi eszközöket fogjuk használni: JDK 1.5 (vagy 1.6) (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 6 webkonténer MySql adatbázisszerver tetszés szerinti böngésző