Webová aplikace Aukce je sestavena z několika komponent, jak je uvedeno v následujícím diagramu. Toto není výukový program pro sestavení celé aplikace. Tento dokument zvýrazňuje důležité body vývoje a návrhu, které se odrážejí na různých nástrojích pracovního prostředí a tak můžete i vy aplikovat toto poznání na své webové aplikace.
Enterprise JavaBeans (EJB) nabízí pohodlný způsob přístupu aplikací Java k datům zadrženým v relačních databázích. Objekty entity bean lze vyvinout pomocí perzistence typu BMP (bean-managed persistence) nebo CMP (container-managed persistence). CMP umožňuje větší flexibilitu než použití BMP, protože kontejner EJB provádí všechna volání specifická pro databázi, jak jsou řízená objektem bean. Předvoleně generují nástroje pracovního prostředí platformy Rational objekty entity bean pomocí CMP. Objekt entity bean CMP neobsahuje žádný přístupový kód k SQL. To vám umožňuje umístit objekt bean na ostatní servery J2EE, které používají jiné databáze, bez nutnosti kód přepisovat.
Existují různé přístupy k mapování objektů na relační databáze, jako například shora dolů, zdola nahoru a setkání uprostřed. Přístup shora dolů postupuje od stávajících objektů, poté definuje stoupající měrou podrobné vrstvy podle požadavku, a nakonec navrhuje databázi. Přístup zdola nahoru použije stávající schéma databáze, a pak navrhne související vrstvy, které definují tyto objekty. Přístup setkání uprostřed použije stávající databázi a stávající objekty, a pak vyvine pomocné vrstvy, které spojí objekty s odpovídajícími tabulkami databáze.
Aplikace Aukce použila při vývoji EJB entity přístup zdola nahoru. Databáze Derby existovala na začátku a obsahovala tabulky, které se úzce shodují s potřebnými EJB. Po vytvoření připojení k databázi pomocí průvodce připojením databáze jsme použili průvodce mapováním EJB k RDB, abychom vytvořili objekty EJB, které byly mapovány z jedné nebo více tabulek, až na některé výjimky. Následující obrázek zobrazuje objekty entity EJB, které se používají v aplikaci Aukce, a jejich vzájemné vztahy.
Objekty entity bean v aplikaci Aukce nejsou přímo zpřístupnitelné vzdáleným klientem. Všechny požadavky a odezvy jsou ošetřeny objekty facade relace a pro přístup k zálohovaným datům se používají objekty bean. To umožňuje mít na straně serveru sdílený přístup k trvalému úložišti dat. Následující sekce se týká podrobnějšího popisu objektů facade relace.
Na další informace o mapování objektů entity bean se podívejte na téma nápovědy Vytváření mapování zdola nahoru.
Objektem facade relace se rozumí rozhraní mezi klientem a systémem typu back-end, které zprostředkovává spojení komponentám objektu Service Data Object (SDO) a v neposlední řadě také databázi. Objekt facade relace se používá, když klient zasílá požadavky, které jsou potřeba pro činnost některých objektů. Individuální zasílání těchto požadavků objektům může zvýšit zatížení nebo zpoždění reakce sítě. Objekt facade relace se chová jako vyrovnávací paměť mezi dvěma konci; přijetím obecného požadavku od klienta a zasláním specifických požadavků k vybraným objektům. Tímto se sníží zatížení a usnadní se vývoj klienta.
Shromážděním objektů EJB a použitím dvou odlišných objektů facade můžete zvýšit výkonnost aplikace, protože uživatelé si zpřístupní pouze ty objekty, které budou potřebovat. Objekty entity bean, které řídí funkčnost samotné webové stránky, jako např. Kategorie, jsou řízeny systémovým objektem facade.
Objekty EJB, na které je odkazováno objektem facade, jsou postupně vybírány pomocí průvodce Vytvoření objektu bean facade relace, jak je vyobrazeno v následujícím diagramu. Objekt EJB může být odkazován v jednom či více objektech facade, je-li potřeba. Toto však neplatí pro aplikaci Aukce.
Další funkce můžete přidat tak, že přidáte metody k objektům facade. Například v uživatelském objektu facade je jedna metoda, která navrátí seznam uživatelů, a druhá metoda, která navrátí seznam všech aktivních uživatelů. Vezmeme-li tyto dvě metody jako příklad, k uživatelskému objektu facade bychom mohli přidat další metodu, která navrátí seznam všech uživatelů, označených jako neaktivní.
Další informace o objektech facade relace naleznete v diskuzním fóru "Vzory návrhu: facade relace" na adrese http://java.sun.com./.
Pohled Navigace nástroje Návrhář webu poskytuje vizuální znázornění toho, jak je stránka rozvržena. Zobrazuje jednotlivé stránky a jejich hierarchické uspořádání a je užitečný pro udržování rozvržení a uspořádání stránek uvnitř webu. Když přetáhnete stránky do editoru, obslužné prvky navigace se v šablonách stránky automaticky aktualizují. Například podle navigace Aukce, která je zobrazena v následujícím diagramu, byste mohli změnit pořadí karet navigace přesunutím stránky Prodeje (Sell) před stránku Prohlížení (Browse). Návrhář webu automaticky vygeneruje na všech stránkách karty ve správném pořadí. Abyste změny zviditelnili v běžící aplikaci, musíte znovu uložit každou stránku, která používá šablonu navigace.
Kromě navigačního pohledu, který jsme zde právě popsali, poskytuje Návrhář webu pohled Podrobnosti, který uspořádá další prvky stránky do odpovídající tabulky, jak je zobrazeno v následujícím nákresu. Tato tabulka zjednodušuje aktualizaci vlastností stránek, jako je titulek, autor a štítek navigace.
Na další informace týkající se použití Návrháře webu pro správu rozvržení webu se podívejte na téma Vytváření struktury webové stránky v nápovědě online.
Součástí pracovní plochy je vizuální návrhář pro vývoj šablon stránek a samotných webových stránek.
Šablony stránek jsou opětovně použitelné části obsahového kódu, který zajišťuje společný vzhled chování sekcí webové stránky. Chcete-li sdílet společný vzhled a prostředí, webové stránky potřebují pouze odkaz na šablony. Používání šablon ocení jak uživatel, který se může jednoduše pohybovat po webu, tak vývojář, který pouze zadá kód specifický pro každou stránku.
Šablony stránek také umožňují jednoduchou údržbu obsahu webových stránek. Změny provedené v souboru šablony se automaticky projeví na každé odkazované stránce. Například ve webové aplikaci Aukce šablona maintemplate.jtpl zajišťuje obecné rozvržení stránek Aukce. Prvky webové stránky lze k šabloně přidat pomocí palety v Návrháři stránek, která vám umožňuje přetáhnout prvky na webovou stránku. Požadovaný kód HTML se vytvoří automaticky. Šablonu Aukce můžete tímto způsobem snadno upravit, například když se rozhodnete zahrnout aktuální datum a čas do zápatí.
Vložením příznaku, který vyvolá šablonu, spíše než složitou kódovanou navigací můžete začlenit stejný panel navigace na všechny stránky webu. Editor mapování šablony vloží odkazy na šablonu na webovou stránku.
Dynamické šablony jsou v této technologii o krok dále; mohou například pozměnit obsah webových stránek na základě uživatelských rolí nebo schopností nebo mohou na webovou stránku vložit informace týkající se uživatele. Ukázka Aukce používá dynamické šablony pro zajištění administrativních odkazů v navigačním panelu pouze pro uživatele přihlášené jako administrátoři a pro změnu čtení tlačítka "Přihlásit" na "Odhlásit", jakmile se uživatel úspěšně přihlásí.
Na další informace o vytváření šablon webových stránek se podívejte na téma nápovědy Vytváření šablony stránky.
JSF (JavaServer Faces) je technologie, která spolupracuje při sestavování uživatelských rozhraní pro dynamické webové aplikace, které běží na aplikačním serveru. JSF je jazyk otevřeného standardu a používá knihovnu značek standardu JavaServer. Značky jsou vloženy do kódu HTML, aby vytvořily dynamické webové stránky.
Rámcový systém JSF spravuje stavy uživatelského rozhraní mezi požadavky serveru a nabízí jednoduchý vývojový model pro ošetření událostí ze strany serveru, které jsou aktivovány klientem. Například, JSF může mít určité chování pro různé události, jako je třeba klepnutí na tlačítko. Návrhář stránek má na paletě zobrazeny vestavěné funkce, které můžete přetáhnout na webovou stránku. Tyto funkce s možností přetažení zjednodušují používání JSF, HTML a dalších prvků pro tvoření skriptů. Toto je užitečné nejen pro řízení základních funkcí pole, jako je typ hodnoty textového pole (celé číslo, alfanumerický znak), ale také povolují nastavení pravidel ověřování platnosti. V Návrháři stránek mohou být ovladače JSF svázány k datům SDO, která jsou přidružena ke každé stránce.
Paletu Návrháře stránek lze použít k přidání dalších funkcí ke stránkám JSF. Například byste mohli k podrobnostem o položce přidat tlačítko "Koupit teď", abyste umožnili uživateli koupit položku za cenu, kterou prodejce u položky stanovil.
Následující nákres zobrazuje ovladače JSF stránky podrobností JSF. Pole newbid inputText je omezeno pouze na přijímání celých čísel pomocí zaškrtávacího okénka Pouze celé číslo, jak vidíte v pravém dolním rohu nákresu. Pole inputText má další nastavení pro Ověření, Chování a Usnadnění, jak je definováno v níže uvedených tabulkách h:inputText v levém dolním rohu obrázku. V kartě Ověření jsou definována určitá pravidla ověřování pomocí Java. Například platný vstup pro pole newbid inputText je celé číslo, které není rovno nule, je větší než počáteční hodnota aukce a větší než aktuální hodnota aukce + 1.
Pro pole newbid inputText byl na stránce Podrobnosti položky v aplikaci Aukce vygenerován následující kód.
<h:inputText styleClass="inputText" id="newbid" required="true" size="14"> <f:convertNumber integerOnly="true" /> <f:validateLongRange minimum="#{pc_Itemdetail.userFacadeLocalGetFindHighestBidResultBean==null ? pc_Itemdetail.userFacadeLocalGetBidItemSDOByKeyResultBean.startingbid : pc_Itemdetail.userFacadeLocalGetFindHighestBidResultBean.currentbid+1}"> </f:validateLongRange> </h:inputText>
Na další informace o vývoji souborů JSP Faces se podívejte na heslo nápovědy JavaServer Faces.
Webová služba byla implementována společně s webovou aplikací, protože není na webové aplikaci závislá - webová služba je další způsob přístupu k obchodní logice a neobsahuje veškerou funkčnost webové aplikace. Na podrobnější popis této součásti aplikace Aukce se podívejte do sekce Webová služba.