Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilVáclav Doležal
1
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt http://java.vse.cz/4it447/HomePage Část 5.
2
Heslo dne "The abstractions save us time working, but they don't save us time learning." Joel Spolsky http://www.joelonsoftware.com/articles/LeakyAbstract ions.html http://www.joelonsoftware.com/articles/LeakyAbstract ions.html Zákon netěsných abstrakcí "Netriviální abstrakce není obvykle schopna absolutně odstínit klienta od abstrahované technologie." SQL má odstiňovat od složitých procedurálních dotazů... WHERE a=b AND b=c... WHERE a=b AND b=c AND a=c – matematicky stejné, avšak na někerých db s významně rychlejší odezvou 2
3
Program Diskuse nad domácím úkolem Aplikace Fotoalbum Práce s bez-stavovým EJB Nahrání souboru přes formulář Programovací vzory Persistent Domain Object (PDO) Data Access Object (DAO) 3
4
Aplikace Fotoalbum Enterprise aplikace s jedním webovým (web) a jedním EJB modulem nazvaným ejb Oba moduly jsou zabaleny do tzv. enterprise archivu – ear ejb.jar web.war album-app.ear 4
5
Photo - třída pro fotografie Zapouzdřuje binární data a metadata fotografie Reprezentuje záznam v perzistentním úložišti Obsahuje operace pro manipulace s obrázkem Není pouhým shromaždištěm atributů Je aktivní (srovnej s Anemic Entity anti-vzorem [Fowler]) Vzor Persistent Domain Object Reprezentuje data a vazby objektu z doménového modelu (např. databázový model) Obsahuje metody pro operace nad daty a vazbami Lze využívat dědičnosti 5
6
Photo – zdrojový kód 6
7
AlbumDAO – přístupový objekt Rozhraní přístupového objektu k fotografiím Obsahuje tzv. CRUD operace Create, Read, Update a Delete Obvykle obsahuje metody pro vyhledávání V Java EE implementováno jako bez-stavový EJB Vzor Data Access Object Odstiňuje (abstrahuje) od technologie pro ukládání Zlepšuje testovatelnost V Java EE 5+ může být v jistých případech zastoupen objektem EntityManager (JPA) 7
8
AlbumDAO – zdrojový kód 8
9
AlbumDAOBean – dočasná impl. Dočasná implementace DAO k fotografiím ukládá a čte fotografie ze souborového systému umístění adresáře úložiště lze konfigurovat parametrem directory v ejb-jar.xml Data fotografie jsou uložena v souboru nazvaném podle názvu fotografie Metadata jsou uložena v properties souboru Bude nahrazen JPA 2.0 impementací 9
10
META-INF/ejb-jar.xml V adresáři album- zaklad/ejb/src/main/resources/META-INF vytvořte soubor ejb-jar.xml nastavíme zde parametr directory pro AlbumDAOBean 10
11
AlbumServlet AlbumServlet slouží jako kontroler albumu K akcím se rozhoduje podle parametru action v přicházejícím dotazu Udžuje privátní atribut albumDAO pro komunikaci s perzistentní vrstvou Odkaz na AlbumDAO je injektován kontejnerem Servlet ho zpřístupňuje JSP stránkám pomocí atributu v aplikačním kontextu, který nastavuje v metodě init Servlet je anotován MultipartConfig zpřístupní metody pro práci s formulářem, který odesílá dotaz složený z více částí (MIME multipart/form-data) 11
12
AlbumServlet – třída 12
13
AlbumServlet – metoda doUpload 13
14
AlbumServlet – načítání parametrů 14
15
Stránka upload.jsp Obsahuje formulář pro nahrání souboru atribut enctype musí být multipart/form-data Ve spodní části je tabulka s výpisem obsahu albumu Iteruje se přes seznam fotografií získaný z AlbumDAO přes vlatnost photos (getPhotos) Na začátku je třeba zavést bean AlbumDAO pomocí Iterace pomocí tagu c:forEach z knihovny http://java.sun.com/jsp/jstl/core 15
16
web.xml 16
17
PhotoServlet Umožňuje získat data fotografie z aplikace prostřednictvím URL /photo/ Ve web.xml namapován na /photo/* REST přístup 17
18
PhotoServlet - kód 18
19
Domácí úkol Upravte stránku upload.jsp tak, aby poslední sloupec tabulky fotografií obsahoval zmenšenou verzi obrázku. kliknutím na obrázek se otevřela nová stránka detail.jsp, která zobrazí fotografii v původních rozměrech spolu s údaji o fotografii, tj. název a popis 19
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.