architecture

Časté dotazy

  • Čím se druhé vydání liší?
    Druhé vydání obsahuje nové kapitoly o konceptu AJAX a datovém formátu JSON. Významně byla přepracována byla kapitola o rozhraní (interface), mnoho dalších kapitol jsem doplnil či přeskládal jejich pořadí pro lepší návaznost výkladu. Druhé vydání prošlo odbornou korekturou. Příklady vyžadují pro spuštění Java verze 17 LTS, což je nejnovější stabilní verze Javy s dlouhodobou podporou (v době vydání knihy).
  • Jaké technologie se v knize používají?
    Všechny ukázkové stránky jsou Java servlety Maven projektu, který se pouští jako webová aplikace na kontejneru Jetty, webový archiv WAR však lze spustit i na konteneru Tomcat a dalších. Pro eliminaci textových řetězců s HTML kódem se využívá třída Element z volně šiřitelné knihovny. Zdrojový kód příkladů je k nahlédnutí tady.
  • Není používání servletů přežité?
    Servlety se stále používají, pouze jejich API bývá zabalené do různých sofistikovaných knihoven. Navíc, od specifikace Servlet 3.0 se jejich registrace podstatně zjednodušila (zavedením anotace WebServlet), což z nich dělalá dnes skvělý prostředek právě pro začátečníky.
  • Je objektový model webové stránky pro začátečníky vhodný?
    Domnívám se, že kdo se chce naučit objektový jazyk, měl by zažít i práci s objektovým modelem a sestavování HTML modelu se mi zdá být k tomu dobrá příležitost.
  • Není použití třídy Element složité?
    Jakmile získáme kořenový element, pro sestavení libovolné webové stránky stačí znát (v principu) pouze tři metody z té třídy:
    1) setAttribute() – metoda přiřadí aktuálnímu elementu atribut s hodnotou,
    2) addElement() – metoda přidá do objektu nový element s názvem prvního argumentu a jeho instanci vrátí zpět,
    3) addText() – metoda přidá do těla elementu text a ošetří zápis speciálních znaků; k dispozici je ještě alternativní metoda addRawText().
  • Není datový model webové stránky náročný na paměť?
    Třída Element je ve skutečnosti jen obálka nad objektem typu PrintWriter, a tak všechny texty zapsané do elementu se posílají rovnou do toho writeru. S tímto přístupem lze sestavit efektivně i stránky značného rozsahu. V případě potřeby však lze plnohodnotný paměťový model aktivovat v konfiguraci.
  • Proč nejsou příklady postaveny na JSP nebo JSF?
    Cílem knihy není učit šablonovací systém, ale práci s objekty. Kromě toho názory na přínos technologií JSP a jeho nástupce JSF bývají značně kontroverzní.
  • Nemůže pojetí knihy vést ke kargoklutickému programování (kódování bez porozumění)?
    Cílem výkladu je demonstrovat význam, principy a souvislosti použitých programových konstrukcí. Domnívám se však, že začátečník nemusí znát všechny detaily hned. Extrémní důraz na detail některé začátečníky zbytečně odradí, a neplatí to jen o programování. Vybraná témata obsahují odkazy na internetový zdroj pro další studium.
  • Není zvládnutí všech použitých technologií nad síly začátečníka?
    Je pravda, že webové stránky jsou popsány jazykem HTML s CSS a ke spuštění aplikace (ve webovém kontejneru) je třeba použít Maven. Nástroje projektu Maven zde však slouží především jako prostředek a to samé platí také o webovém kontejneru. Výklad jazyka HTMLCSS (včetně použitých techologií) jsem se pokusil omezit na nezbytné minimum. Stažený projekt obsahuje skript pro spuštění celého projektu a obsahuje i Maven samotný. Kromě Java prostředí není nutné nic dalšího instalovat.

 

Kontakt

Kontakt