Vývoj webových aplikací pomocí frameworku JavaServer Faces

Bakalářská práce

David Hanel

Vysoká škola ekonomická v Praze
Fakulta informatiky a statistiky
Katedra informačních technologií

prosinec 2009

Anotace

Bakalářská práce se zabývá technologií JavaServer Faces (JSF). Jedná se o serverový framework, jenž by měl usnadňovat tvorbu webových aplikací fungujících na Java platformě.

Po krátkém úvodu do architektury Java EE platformy jsou v jednotlivých kapitolách analyzovány možnosti, které JSF vývojářům přináší. Celý text je podán ve formě srozumitelné pro ty, kteří mají zkušenosti s vývojem webových aplikací pomocí technologie JavaServer Pages (JSP), avšak s tímto frameworkem se setkávají poprvé. Postupně budou představeny základní prvky JSF aplikací a jejich funkcionalita, jako např. komponenty uživatelského rozhraní, navigace mezi stránkami, konverze a validace dat, zpracování událostí, životní cyklus aplikace atd.

Práce může sloužit jako výukový materiál. Z toho důvodu jsou na konci kapitol tři až sedm vložena také zadání příkladů k procvičení, jejichž možná řešení lze nalézt v přiložených souborech.

Klíčová slova

JavaServer Faces (JSF), Java Enterprise Edition (Java EE), webový framework, managed bean, JSF konverze, JSF validace, JSF životní cyklus

Annotation

This bachelor thesis deals with a JavaServer Faces technology (JSF). It is a server‐side framework which should facilitate a development of Java technology-based web applications.

Firstly there is a brief introduction of the Java EE platform architecture. Then the possibilities and advantages of JSF are analyzed subsequently. The whole text is adjusted to those who are experienced in JavaServer Pages (JSP) but have never used the JSF framework. In individual chapters are introduced the basic aspects of JSF applications and their functionality, like for example user interface components, page navigation, data conversion and validation, event handling, application life cycle etc.

The thesis may be used as an educational material. Therefore there are also some practising tasks at the end of the chapters three till seven. Their possible solutions may be found in the attached files.

Keywords

JavaServer Faces (JSF), Java Enterprise Edition (Java EE), web framework, managed bean, JSF conversion, JSF validation, JSF life cycle

Poděkování

Rád bych na tomto místě poděkoval všem lidem, kteří měli větší či menší podíl na vzniku této práce.

Velký dík patří především vedoucímu mé bakalářské práce panu Ing. Luboši Pavlíčkovi, který mi poskytoval kritickou a velmi přínosnou zpětnou vazbu a ochotně se mnou konzultoval různé nejasnosti.

Dále bych rád poděkoval svým spolubydlícím Bc. Františku Odehnalovi, Bc. Václavu Pospíšilovi a Jiřímu Štenckovi, kteří trpělivě snášeli mé večery prosezené u počítače. Práci si navíc pročetli a poskytli mi řadu užitečných připomínek.

Poslední osobou, které chci vyjádřit svůj dík, je má přítelkyně slečna Ivona Marešová. Po celou dobu mě přísně kontrolovala a kdykoliv jsem jen na okamžik polevil v úsilí, viděl jsem její zdvižený ukazováček, který mi připomínal blížící se termín odevzdání.

Prohlášení

Prohlašuji, že jsem bakalářskou práci zpracoval samostatně a že jsem uvedl všechny použité prameny a literaturu, ze kterých jsem čerpal.

V Praze dne 9. prosince 2009


Obsah

1. Úvod
2. Základní principy Java Enterprise Edition
2.1. Java EE platforma
2.2. Aplikační server
2.2.1. Kontejnery
2.3. Vícevrstvá architektura
2.3.1. Klientská vrstva
2.3.2. Webová vrstva
2.3.3. Business vrstva
2.3.4. Enterprise Information System (EIS) vrstva
3. Úvod do JavaServer Faces
3.1. Co je to JSF
3.2. Hlavní výhody JSF
3.3. První JSF aplikace
3.3.1. Z čeho se JSF aplikace skládá
3.3.2. Postup pří vývoji JSF aplikace
3.4. Příklad k procvičení
4. UI komponenty
4.1. Základní principy UI komponent modelu
4.2. Renderování UI komponent
4.3. Použití UI komponent na stránce
4.3.1. Základní atributy tagů
4.3.2. Formuláře
4.3.3. Textové prvky
4.3.4. Tlačítka a odkazy
4.3.5. Selekce
4.3.6. Zprávy
4.3.7. Panely
4.3.8. Ostatní
4.4. Příklad k procvičení
5. Konverze a validace
5.1. Konvertory
5.1.1. Použití konvertorů na stránce
5.2. Validátory
5.2.1. Použití validátorů na stránce
5.3. Příklad k procvičení
6. Zpracování událostí
6.1. Zpracování událostí metodou
6.2. Zpracování událostí listenerem
6.3. Příklad k procvičení
7. Životní cyklus JSF aplikace
7.1. Fáze Restore View
7.2. Fáze Apply Request Values
7.3. Fáze Process Validations
7.4. Fáze Update Model Values
7.5. Fáze Invoke Application
7.6. Fáze Render Response
7.7. Události v životním cyklu aplikace
7.7.1. Ovlivňování životního cyklu pomocí atributu immediate
7.8. Příklad k procvičení
8. Závěr
A. Výpis souborů první JSF aplikace
A.1. index.jsp
A.2. vitejte.jsp
A.3. Uzivatel.java
A.4. faces-config.xml
A.5. web.xml
B. Knihovna core tag library
C. Knihovna HTML component tag library
D. Třídy UI komponent a jejich renderery
E. Postup nasazení aplikace na aplikační server GlassFish
E.1. Spuštění aplikačního serveru
E.2. Přihlášení se k administrátorské konzoli
E.3. Nasazení aplikace na server
F. Příklady k procvičení
F.1. Příklad z kapitoly 3 – „Úvod do JavaServer Faces
F.2. Příklad z kapitoly 4 – „UI komponenty
F.3. Příklad z kapitoly 5 – „Konverze a validace
F.4. Příklad z kapitoly 6 – „Zpracování událostí
F.5. Příklad z kapitoly 7 – „Životní cyklus JSF aplikace
Terminologický slovník
Literatura
Přiložené soubory
Creative Commons License
Uvedená práce (dílo), jejímž autorem je Bc. David Hanel, podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Zachovejte licenci 3.0 Česko.