%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% :Dynamic Web Pages
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Dynamické webové stránky v~Javě} \label{Dynamic Web Pages}

Tato kapitola popisuje tvorbu dynamických webových stránek v~jazyku Java. Uvede důvody, proč chtít programovat dynamické stránky, seznámíte se zde s~pojmy \emph{servlet} a~\emph{servlet kontejner} a~také se dozvíte, jak přesně funguje cyklus dynamické webové stránky na straně serveru.


\subsection{Motivace}

V~dřívějších dobách se na internetu vyskytovaly výhradně statické webové stránky, tedy takové, jejichž obsah se za běhu aplikace neměnil. Sestavit statickou webovou aplikaci je relativně snadné -- stačí jen vytvořit HTML dokumenty a~uložit je do příslušného adresáře na serveru. Naproti tomu dynamická webová stránka je sestavovaná programem a~její obsah může reagovat na požadavky uživatele. Hlavním důvodem, proč chtít dynamické webové stránky, je ona interakce s~uživatelem. 

Se statickými stránkami se některé problémy řeší velmi obtížně, například správa databáze zboží na internetovém obchodě by vyžadavola ruční kontrolu všech HTML souborů a~jejich pečlivou editaci. Nákupní košík na stejném obchodě je pak možno řešit pouze skriptováním na straně klienta (dnes už snad pouze JavaScript), což s~sebou přináší další komplikace. Uživatel musí mít povolený JavaScript, aplikace běží výrazně pomaleji. Navíc ladění kódu v~JavaScriptu je velmi obtížné a~časově náročné. 

Oproti tomu dynamické stránky v~Javě jsou sestavovány kompletně na straně serveru a~program na servery většinou běží rychleji než interpret JavaScriptu schovaný ve webovém prohlížeči. Navíc stránky v~Javě mohou používat již jednou naprogramovaný kód v~jazyce Java, je také možná integrace s~ostatními technologiemi v~rámci Javy Enterprise Edition.
