Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1 Fejlett Programozási Technikák 2. 15/10. Fejlett Programozási Technológiák 2. 2 Az előző előadás tartalma Java Servlet  Servlet Interfész  Servlet.

Hasonló előadás


Az előadások a következő témára: "1 Fejlett Programozási Technikák 2. 15/10. Fejlett Programozási Technológiák 2. 2 Az előző előadás tartalma Java Servlet  Servlet Interfész  Servlet."— Előadás másolata:

1 1 Fejlett Programozási Technikák 2. 15/10

2 Fejlett Programozási Technológiák 2. 2 Az előző előadás tartalma Java Servlet  Servlet Interfész  Servlet Context  Request  Response  Filter  Session  Web Application

3 Fejlett Programozási Technológiák 2. 3 Irodalom Tutorial/ Tutorial/ 2EETutorial.pdf 2EETutorial.pdf Hans Bergsten: Java Server Pages 4summerWestminster/Presentations/java%20s erver%20faces.pdf 4summerWestminster/Presentations/java%20s erver%20faces.pdf

4 Fejlett Programozási Technológiák 2. 4 A mai előadás tartalma Probléma a Java Servlettel Template eszközök Java Server Pages  Áttekintés  Elemei  Életciklusa  Objektumok  Java Beanek használata  Java Standard Tag Library  Custom Tag Library Java Server Faces  Feladata  Elemei  Navigáció  Támogató Bean

5 Fejlett Programozási Technológiák 2. 5 Probléma a Java Servlet-tel MVC ? Println(” ”) Nem különülnek el a feladatok  HTML tervező  Felhasználói interfész logika fejlesztő  Üzleti logika fejlesztő  Komponens fejlesztő  Alkalmazás tervező A fejlesztő hozzáfér a teljes Servlet API-hoz (html programoz is !) Nehézkes RAD eszözöket vagy WYSIWYG eszközöket alkalmazni

6 Fejlett Programozási Technológiák 2. 6 Megoldások Template engine-k használata  Magasabb szintű funkciók  Bővíthető építőelem készlet Népszerűbb template motorok-k:  JSP  Velocity  FreeMarker  … Ezekre épülő keretrendszerek:  Java Server Faces  Struts  Turbine

7 Fejlett Programozási Technológiák 2. 7 JSP 1.0 Hello <% if (request.getParameter("name") == null) { out.println("Hello World"); } else { out.println("Hello, " + request.getParameter("name")); } %>

8 Fejlett Programozási Technológiák 2. 8 Velocity Hello #if ($request.getParameter("name") == null) Hello World #else Hello, $request.getParameter("name") #end

9 Fejlett Programozási Technológiák 2. 9 A JSP áttekintése Bármilyen XML oldalon lehet XML szintakszis Elvileg megvalósíthatja az MVC-t vagy Model 2-architektúrát  Model: Java Bean  View: JSP  Controler: Servlet Azonban tipikusan Model 1 architekúra  Az üzleti logika és a megjelenítés nincs szeparálva

10 Fejlett Programozási Technológiák Elemei Oldal direktíva  Akció elem direktíva  Akció elemek  JSP elemek (Expression Language)  Szkript elemek 

11 Fejlett Programozási Technológiák Példa Minta fájl

12 Fejlett Programozási Technológiák A JSP oldal életciklusa Konvertálás Servletté Fordítás Futtatás Bufferelés

13 Fejlett Programozási Technológiák Objektumok Implicit  A tároló hozza létre őket  Request, … Alkalmazás specifikus  Tipikusan Java Bean-ben tárolódnak Megosztott objektumok  Szálak között (I/N) Kötődhetnek:  Laphoz – pageContext  Alkalmazáshoz - servletContext  Viszonyhoz – session  Kéréshez – request  Válaszhoz – response

14 Fejlett Programozási Technológiák Java Bean-nek használata ${bookDB.bookDetails.title}

15 Fejlett Programozási Technológiák Java Server Pages Standard Tag Library Standard, gyakran használt elemek összegyűjtve Típusai  Alap (c) Változó támogatás Folyam vezérlés URL manipulálás Egyéb  XML (x) Alap Folyam vezérlés Transzformáció  I18n (fmt) Lokalitás Üzenet formázás Szám, dátum formázás  Adatbázis (sql) SQL  Egyébb (fn) Gyűjtemény hossz String manipulálás

16 Fejlett Programozási Technológiák Példák Core... ${item.quantity}... URL SQL select * from PUBLIC.books where id = ?

17 Fejlett Programozási Technológiák Saját Elem Könyvtár Újrahasznosítható komponensek Felhasználó által definiált JSP komponens Könyvtárakba gyűjtik a hasonló funkciókat, egy-egy funkciót megvalósító kód az elem kezelő (Tag Handler) Logika/Megjelenítés elkülönül Lehetőségek:  Paraméterek átadása  Értékek visszaadása  Minden objektumot elér a JSP oldalon  Kommunikálhatnak egymással  Egymásba ágyazhatóak Két típus:  Egyszerű (Nem lehet benne szkript elem)  Klasszikus Tag fájl JSP vagy Java kód, a tároló fordítja le

18 Fejlett Programozási Technológiák Attribútumok Elem attribútumok:  Egyszerű  Darab (Fragment) egy JSP kód darabot kap attribútumként  Dinamikus Nincs specifikálva, menet közben derül ki

19 Fejlett Programozási Technológiák Törzs (Body) Egy elem más elemeket és HTML tartalmat is tartalmazhat You just cleared your shopping cart! jsp:body

20 Fejlett Programozási Technológiák Elemek közötti kommunikáció Megosztott objektumok segítségével kommunikálnak (oldal környezet) Az egymásba ágyazott elemek a privát változókat is használhatják

21 Fejlett Programozási Technológiák Példa Tag fájl  JSP kódot tartalmaz (WEB-INF/tags, WEB-INF/lib) ${greeting}, ${name}! Használata: Hello

22 Fejlett Programozási Technológiák Tag Library Descriptor Amennyiben Java-ban írjuk meg az elemkészletünket akkor szükséges Információt tartalmaz az elem gyűjteményről és az elemekről is present condpkg.IfSimpleTag scriptless... test true...

23 Fejlett Programozási Technológiák Java Tag SimpleTag, interfészt kell megvalósítani  doTag  get/set javax.servlet.jsp.JspContext  getJspBody()  … public HelloWorldSimpleTag extends SimpleTagSupport { public void doTag() throws JspException, IOException { getJspContext().getOut().write("Hello, world."); } public class SimpleWriter extends SimpleTagSupport { public void doTag() throws JspException, IOException { StringWriter sw = new StringWriter(); jspBody.invoke(sw); jspContext(). getOut().println(sw.toString().toUpperCase()); }

24 Fejlett Programozási Technológiák Iterátor Tag Departments Departments ${departmentName}

25 Fejlett Programozási Technológiák Iterátor Tag public void doTag() throws JspException, IOException { if (iterator == null) return; while (iterator.hasNext()) { getJspContext().setAttribute(var, iterator.next()); getJspBody().invoke(null); } public void setVar(String var) { this.var = var; } public void setGroup(Collection group) { this.group = group; if(group.size() > 0) iterator = group.iterator(); }

26 Fejlett Programozási Technológiák Szkriptek használata JSP oldalakon Java kódot is használhatunk Nem célszerű használnunk mert eléggé átláthatatlan lesz az oldal Biztonsági kockázata is van (a servlet kontextushoz is hozzáférhet mindenki) <%! private BookDBAO bookDBAO; public void jspInit() { bookDBAO = (BookDBAO)getServletContext().getAttribute("bookDB"); if (bookDBAO == null) System.out.println("Couldn’t get database."); } %> <%! public void jspDestroy() { bookDBAO = null; } %>

27 Fejlett Programozási Technológiák Cél

28 Fejlett Programozási Technológiák Java Server Faces Szerver oldali web komponens felhasználói felületek létrehozására Model 2, MVC A logika és a megjelenítés elkülönül Hasonló lehetőségeket biztosít a fejlesztőknek mint a Desktop GUI fejlesztése A Servlet API-ra épül -> független a JSP-től

29 Fejlett Programozási Technológiák JSF Elemei:  API az UI komponensek reprezentálására és állapotuk kezelésére, validálásra, navigációra, …  JSP Elem könyvtárak Segítségével  A felhasználói eseményeket a szerver oldali kódhoz köthetjük  Az UI komponensek adatait szerver oldali adattárolókhoz köthetjük  UI készítés újrafelhasználható elemekkel  UI állapot elmentése és betöltése  Folyamatokat definiálhatunk

30 Fejlett Programozási Technológiák Komponens modell UIComponent-ek (UIComponentBase) melyek leírják az UI komponensek állapotát és viselkedését Renderelő modell mely leírja a megjelenését  Kódolás, Dekódolás Esemény kezelő (JavaBean tervezési mintát követi)  ActionEvent  ValueChangedEvent Konverziós modell Validációs modell (egy vagy több üzenetet gyártanak)

31 Fejlett Programozási Technológiák Hogyan működik

32 Fejlett Programozási Technológiák Kérés feldolgozási életciklus

33 Fejlett Programozási Technológiák Tipikus JSF alkalmazás Java Bean-ek Esménykezelők Validátorok JSP oldalak Szerver oldali segéd osztályok Facesconfig.xml

34 Fejlett Programozási Technológiák Példa Jsf.jsp

35 Fejlett Programozási Technológiák Navigáció definiálása /greeting.jsp success /response.jsp /response.jsp success /greeting.jsp

36 Fejlett Programozási Technológiák Támogató Bean Feladata az oldalon lévő elemek adatainak tárolása és az eseménykezelők, validálók, … megvalósítása Integer userNumber = null;... public void setUserNumber(Integer user_number) { userNumber = user_number; } public Integer getUserNumber() { return userNumber; } public String getResponse() { if(userNumber != null && userNumber.compareTo(randomInt) == 0) { return "Yay! You got it!"; } else { return "Sorry, "+userNumber+" is incorrect."; }

37 Fejlett Programozási Technológiák Menedzselt Bean A támogató babot regisztrálnunk kell UserNumberBean guessNumber.UserNumberBean session minimum long 0 maximum long 10

38 Fejlett Programozási Technológiák Fejlesztési lépések 1. Modell objektumok fejlesztése 2. Ezek hozzárendelése menedzselt babként 3. Web oldalak létrehozása UI komponensekkel 4. Navigáció definiálása 5. Web.xml konfigurálása

39 Fejlett Programozási Technológiák A mai előadás tartalma Probléma a Java Serlettel Template eszközök Java Server Pages  Áttekintés  Elemei  Életciklusa  Objektumok  Java Beanek használata  Java Standard Tag Library  Custom Tag Library Java Server Faces  Feladata  Elemei  Navigáció  Támogató Bean

40 Fejlett Programozási Technológiák A következő előadás tartalma JNDI Corba RMI


Letölteni ppt "1 Fejlett Programozási Technikák 2. 15/10. Fejlett Programozási Technológiák 2. 2 Az előző előadás tartalma Java Servlet  Servlet Interfész  Servlet."

Hasonló előadás


Google Hirdetések