v voj podnikov ch aplikac na platform java cvi en
Download
Skip this Video
Download Presentation
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ

Loading in 2 Seconds...

play fullscreen
1 / 27

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


  • 84 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ' - idona-anderson


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
v voj podnikov ch aplikac na platform java cvi en

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

Zbyněk Šlajchrt

http://java.vse.cz/4it447/HomePage

Část 6.

program
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
prom na photo v jpa entitu
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
prom na photo v jpa entitu1
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
prava dao
Ú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
soubor persistence xml
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
soubor orm xml
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
definice datov ho zdroje
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
photogateway
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ý
photogateway pozn mky
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.
photodetailpagebean
PhotoDetailPageBean

Patří do webového modulu

albumpagebean
AlbumPageBean

Patří do webového modulu

prava albumservlet
Ú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
ivotn cyklus albumpagebean
Životní cyklus AlbumPageBean
  • Metody v AlbumServlet pro práci s AlbumPageBean
akce detail
Akce \'detail\'

Větev v performAction

str nka detail jsp
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
prava str nky upload jsp
Ú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
prava photoservlet
Úprava PhotoServlet
  • V případě, že není zadán název fotky v URL, pokusí se nalézt kontextovou fotku
    • AlbumPageBean.getPhotoDetail().getPhoto()
akce v detail jsp
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)
dom c kol
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.
ad