Obsah
Základem Java Enterprise Edition (Java EE) je Java Standard Edition (Java SE). Java EE však navíc poskytuje knihovny, které by měly usnadňovat vývoj komplexnějších enterprise aplikací. V této práci se chci primárně zabývat pouze jedinou z těchto knihoven, a sice JavaServer Faces (JSF). Nejprve je však třeba seznámit se s obecnými principy Java EE platformy. K tomu slouží tato kapitola.
Nejedná se však o vyčerpávající výklad, který by architekturu Java EE popisoval kompletně, nýbrž pouze o jakési nutné minimum. V dalším textu pravděpodobně narazíme na oblasti, na které v téhle kapitole není místo. V takových případech budete odkázáni na externí zdroje.
Termín Java označuje kromě programovacího jazyka také platformu. Java platforma se skládá z virtuálního stroje a příslušného API. Virtuální stroj je prostředí, ve kterém běží naše aplikace respektive naše třídy přeložené do byte kódu. Je navržen pro konkrétní hardware a operační systém. API je sada předprogramovaných tříd, které nám jsou k dispozici při psaní našich vlastních tříd a umožňují nám přístup k funkcionalitě virtuálního stroje. Právě v obsahu API se od sebe jednotlivé platformy liší.
Existují tři Java platformy - Java SE, Java ME a Java EE. Java SE a Java ME nejsou předmětem této práce a tudíž se jimi nebudu dále zaobírat.[1]
Již v úvodu jsem zmínil, že Java EE je nadstavbou nad Java SE. To znamená, že pokud chceme na nějakém počítači provozovat Java EE aplikaci, musí na něm být nainstalováno také standardní API, které je enterprise aplikacemi využíváno. Úlohu Java SE v Java EE aplikacích můžete vidět na obrázku 2.1.
Java EE poskytuje navíc oproti Java SE okolo dvou desítek API, z nichž každé usnadňuje vývoj v určité oblasti. Jako příklad můžeme uvést Java Transaction API (JTA), které usnadňuje správu transakcí, Java API for XML Web Services (JAX-WS), které poskytuje podporu pro webové služby, či JavaServer Faces (více příkladů API můžete vidět na obrázku 2.1).[2] JSF, kterému je věnována tato práce, je tedy jedna z mnoha Java EE knihoven a je zaměřena na podporu tvorby webových aplikací, především jejich uživatelského rozhraní.[3]
Ve své prvotní podobě jsou však tato API pouhou specifikací Sunu. Tzn. jakési minimální požadavky na funkcionalitu Java EE platformy. Nejedná se tedy o konkrétní implementaci. Tu poskytují po uveřejnění této specifikace buď třetí strany, které mohou nad rámec minimálních funkčních požadavků přidat také něco navíc, nebo samotný Sun, který zpravidla nic navíc nepřidává a jeho implementace se označuje jako referenční.
[1] Pro více informací o Java SE a Java ME viz http://java.sun.com.
[3] Pod pojem JSF patří kromě knihovny tříd také knihovna tagů pro použití na JSP stránkách. Více se JSF budeme zabývat v následujících kapitolách.