WebWork - WebWork
Vývojáři | OpenSymphony |
---|---|
Stabilní uvolnění | 2.2.6 / 21. července 2007
|
Napsáno | Java (programovací jazyk) |
Operační systém | Cross-platform |
Typ | Webový rámec |
Licence | Licence Apache 2.0 |
webová stránka | www |
WebWork byl webový aplikační rámec založený na prostředí Java vyvinutý společností OpenSymphony, který se spojil do současného rámce Struts2 . Byl navržen tak, aby zlepšil produktivitu vývojářů a zjednodušil kód. WebWork byl postaven na vrcholu XWork , který poskytoval obecný rámec vzorů příkazů i kontejner Inverze ovládání .
WebWork poskytl podporu pro vytváření opakovaně použitelných šablon uživatelského rozhraní, jako jsou ovládací prvky formulářů, motivy uživatelského rozhraní, internacionalizace , dynamické mapování parametrů formuláře na JavaBeans , ověření na straně klienta a serveru atd.
Cíle a přehled designu
Ve standardní webové aplikaci Java EE klient obvykle odešle informace na server prostřednictvím webového formuláře . Tyto informace jsou poté předány Java Servletu, který je zpracovává, interaguje s databází a vytváří odpověď ve formátu HTML , nebo je předán dokumentu JavaServer Pages (JSP), který prolíná HTML a Java kód, aby bylo dosaženo stejného výsledku. . Oba přístupy jsou často považovány za nedostatečné pro velké projekty, protože kombinují aplikační logiku s prezentací a ztěžují údržbu.
Návrháři WebWork se pokusili pochopit, co považují za omezení existujících rámců, a pracovat na jejich odstranění. Podporuje převod typů, pokračování a zachycovače. WebWork také podporuje technologie s více pohledy, jako je JSP, rychlost a FreeMarker.
WebWork byl navržen a implementován s konkrétní sadou cílů:
- Web Designer se nikdy nemusel dotýkat Java kódu
- Vytvořte pro aplikaci více „webových skinů“
- Změňte vzhled a dojem
- Změnit rozložení na dané webové stránce
- Změňte tok mezi webovými stránkami
- Přesuňte * existující * datové prvky z jedné stránky na druhou
- Integrace s různými back-end infrastrukturami
- Opětovně použijte komponenty
- Proveďte internacionalizaci (i18n) webové aplikace
- Udržujte API malé a věcné
- Schopnost rychle se učit WebWork tím, že umožňuje volit všechny oblíbené funkce
- Umožněte vývojáři zvolit, jak implementovat co nejvíce, a zároveň poskytnout výchozí implementace, které ve většině případů fungují dobře.
Životní cyklus
Architektura WebWork byla založena na vzorech MVC Framework, Command a Dispatcher a na principu Inverze kontroly. Životní cyklus požadavku WebWork začíná, když kontejner servletu obdrží nový požadavek. Nový požadavek je předán sadou filtrů nazývaných řetězec filtrů a odeslán na FilterDispatcher. FilterDispatcher předá požadavek ActionMapper, aby určil, co je třeba s požadavkem udělat. Pokud požadavek vyžaduje akci, odešle objekt ActionMapping zpět na FilterDispatcher. Pokud ne, ActionMapper vrátí prázdný objekt, což znamená, že není třeba provádět žádnou akci. FilterDispatcher předá požadavek a objekt ActionMapper ActionProxy pro další akci. ActionProxy vyvolá správce konfiguračních souborů, aby získal atributy akce, která je uložena v souboru xwork.xml a vytvoří objekt ActionInvocation. Objekt ActionInvocation obsahuje atributy jako akce, kontext vyvolání, výsledek, výsledný kód atd. Správce konfiguračních souborů má přístup k těmto konfiguračním souborům a je používán ActionProxy jako brána do konfiguračních souborů. Objekt ActionInvocation má také informace o zachycovačích, které je třeba vyvolat po nebo před provedením akce.
ActionInvocation vyvolá všechny zachycovače uvedené v objektu ActionInvocation a poté vyvolá skutečnou akci. Po dokončení akce získá ActionInvocation kód výsledku akce z provedení. Využívá kód výsledku akce k vyhledání příslušného výsledku, kterým je obvykle stránka JSP, šablona rychlosti nebo šablona volného značení spojená s výsledným kódem. ActionInvocation také provede zachycovače znovu v opačném pořadí a vrátí odpověď jako HttpServletResponse.
Sloučení WebWork / Struts
27. listopadu 2005 oznámil vývojář WebWork Patrick Lightbody, že se WebWork spojí do Struts 2. [2] Zatímco další hlavní vydání (WebWork 2.2.x) vyšlo pod názvem WebWork, všechny budoucí hlavní revize (jmenovitě 2.3 .x a dále) by byly složeny do Struts2.
Ted Husted, vývojář společnosti Struts, v e-mailu uvedl, že WebWork je velmi podobný Struts 1.x a udělal určité věci lépe než Struts. Zdůvodněním Husted i Lightbody bylo, že kombinace technologie WebWork s komunitou Struts bude přínosem pro oba projekty.
Licence
WebWork používá softwarovou licenci OpenSymphony, která je upravenou (a plně kompatibilní s) softwarovou licencí Apache .