+ All Categories
Home > Documents > VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ

Date post: 31-Dec-2015
Category:
Upload: idona-anderson
View: 42 times
Download: 3 times
Share this document with a friend
Description:
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ. Zbyněk Šlajchrt http://java.vse.cz/4it447/HomePage. Část 6. Program. Diskuse nad domácím úkolem Aplikace Fotoalbum Adaptace na JPA Práce se stavovým EJB On-line operace nad objektem fotografie - PowerPoint PPT Presentation
27
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt http://java.vse.cz/4it447/HomePage Část 6.
Transcript

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍZbyněk Šlajchrt http://java.vse.cz/4it447/HomePageČást 6.

Program

Diskuse nad domácím úkolem Aplikace Fotoalbum

Adaptace na JPA Práce se stavovým EJB On-line operace nad objektem fotografie

Programovací vzor Gateway využívající stavový EJB

2

Proměna Photo v JPA entitu

Anotujte třídu Photo anotací @Entity javax.persistence.Entity

Přidejte privátní atribut třídy id typu int Unikátní klíč záznamu v databázi Vytvořte getter a setter Getter anotujte @Id a @GeneratedValue

@Id indikuje unikátní klíč @GeneratedValue instruuje JPA ke generování

hodnoty

3

Proměna Photo v JPA entitu

Getter getImage anotujte @Lob @Lob označuje sloupec s binárním či

textovým obsahem Entita Photo bude atributem stavového

EJB, proto musí být serializovatelná implements Serializable

4

Úprava DAO

Rozhraní AlbumDAO Změňte návratový typ metody updatePhoto

na Photo Třída AlbumDAOBean

Nahraďte původní zdrojový kód za kód z poznámek

5

Album DAO6

Soubor persistence.xml

V adresáři ejb/src/main/resources/META-INF vytvořte soubor persistence.xml Slouží ke konfiguraci JPA Použijeme specifické vlastnosti

implementace EclipseLink nastavení úrovně logování instrukce k automatickému vytváření db

tabulek

7

Soubor orm.xml

V adresáři ejb/src/main/resources/META-INF vytvořte soubor orm.xml Konfigurace mapování mezi entitami a

tabulkami Lze v něm předdefinovat dotazy

8

Definice datového zdroje

Provádí se v administrátorské konzoli Otevřete panel Resources/JDBC/JDBC Resources Vytvořte nový prostředek Do políčka JNDI Name zadejte název datového

zdroje, jak je uvedeno v persistence.xml <jta-data-source>jdbc/myDS</jta-data-source> Položku Pool Name nastavte na DerbyPool

Poznámka pro ty, co neprogramují v NetBeans Je třeba nainstalovat databázi (rozbalení ZIPu)

http://db.apache.org/derby/derby_downloads.html spuštění: bin/startNetworkServer.bat

9

Build&Deploy10

PhotoGateway

Stavový EJB Zprostředkovává klientovi objekt fotografie Entitu (objekt) dostane klient "živou", tj.

"managed" Výhody:

úpravy se provádějí v paměti voláním metod na objektu fotografie

při ukládání není třeba provádět náročný "merge", jelikož entita je stále v JPA keši

tzv. lean design – neobsahuje nic nadbytečného, štíhlý

11

Aplikační vrstva12

PhotoGateway – zdrojový kód

13

PhotoGateway - poznámky

Stavový bean, jehož stav je odkaz na předaný objekt fotografie

Je použit rozšířený perzistentní kontext Život objektů v kontextu je vymezen životem beanu Nekončí s každým voláním metody

Kromě metody save jsou ostatní metody volány mimo transakci (jsou read-only)

@TransactionAttribute(value = TransactionAttributeType.NOT_SUPPORTED)

Volání metody save zahájí novou transakci. Při jejím ukončení dojde k uložení (commit) perzist. kontextu.

14

Prezentační vrstva15

PhotoDetailPageBean16

Patří do webového

modulu

Patří do webového

modulu

AlbumPageBean17

Patří do webového

modulu

Patří do webového

modulu

Úprava AlbumServlet

AlbumServlet bude pracovat se stavovými beany, které není možné injektovat do atributu servletu

použijeme vyhledání (lookup) v ENC (JNDI) kvůli tomu je zapotřebí konfigurace ENC, zde pomocí

anotací

AlbumServlet bude coby kontroler pracovat s modelem v podobě AlbumPageBean

případně s odkazovaným PhotoPageBean AlbumPageBean je kořen modelu a je uložen v session

18

Životní cyklus AlbumPageBean Metody v AlbumServlet pro práci s

AlbumPageBean

19

Úprava performAction20

Akce 'detail'

Větev v performAction

21

Stránka detail.jsp

Zobrazuje fotografii spolu s názvem a popisem

V spodní polovině stránky jsou k dispozici akce pro změnu velikosti fotky rotaci (neimplementováno) uložení rozpracovaného stavu fotky a návrat obnovení fotografie z databáze zrušení úprav a návrat

22

Diagram stránek23

Úprava stránky upload.jsp

Náhrada stávající tagu jsp:useBean za

Nastavení hlavičky pro řízení keše prohlížeče

Úprava cyklu c:forEach

24

Úprava PhotoServlet

V případě, že není zadán název fotky v URL, pokusí se nalézt kontextovou fotku AlbumPageBean.getPhotoDetail().getPhoto(

)

25

Akce v detail.jsp

Pro každou akci přibude jeden 'if' v hlavním rozvětvení v metodě AlbumServlet.performAction

Každá akce je podchycena odpovídající 'do' metodou v servletu

Metoda doResize pracuje s objektem fotky Metody doCancel, doSave, doRefesh pracují s

gateway Metody doCancel a doSave uzavírají model

detailu fotky getAlbumPageBean(request).setDetailBean(null)

26

Domácí úkol

Přidejte do entity Photo atribut modified, který bude udržovat datum a čas poslední úpravy fotografie.

Dále na entitě Photo vytvořte posluchačskou metodu, která bude nastavovat atribut Photo na aktuální čas při úpravách fotografie.

Rozšiřte HTML tabulku se seznamem fotografií o sloupec, který bude zobrazovat datum poslední úpravy.

Do detailu fotografie přidejte pole, které bude také zobrazovat hodnostu tohoto atributu.

27


Recommended