Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Aplikační rámce Jakarta Struts Framework Miroslav Beneš.

Podobné prezentace


Prezentace na téma: "Aplikační rámce Jakarta Struts Framework Miroslav Beneš."— Transkript prezentace:

1 Aplikační rámce Jakarta Struts Framework Miroslav Beneš

2 Jakarta Struts Framework2 Obsah přednášky Aplikační rámce Jakarta Struts Framework Architektura JSP Model 1 a 2 Návrhový vzor MVC Webové aplikace a jejich konfigurace Komponenty Jakarta Struts Framework Lokalizace Šablony

3 Jakarta Struts Framework3 Co je to aplikační rámec? sada spolupracujících tříd a rozhraní určených pro řešení specifického problému třídy a komponenty představují abstrakce určitých pojmů aplikační rámec definuje, jak se tyto abstrakce podílejí na řešení problému komponenty aplikačního rámce jsou opakovaně použitelné

4 Jakarta Struts Framework4 Ext 2 Aplikační rámce a knihovny Ext 1 Ext 3 Framework Aplikace Knihovna 1 Knihovna 2 Aplikační rámec + rozšíření pro konkrétní aplikace aplikace Aplikace + knihovny

5 Jakarta Struts Framework5 Aplikační rámce a Java Barracuda http://barracuda.enhydra.org Cocoon http://xml.apache.org/cocoon Expresso http://www.jcorporate.com Velocity http://jakarta.apache.org/velocity Java Server Faces http://java.sun.com/j2ee/javaserverfaces/

6 Jakarta Struts Framework6 Výchozí principy návrhový vzor MVC (Model-View-Controller) architektura JSP Model 2 asi 250 tříd a rozhraní v 8 hlavních balících Autor Craig R. McClanahan člen expertních skupin pro servlety a JSP spoluautor implementace Tomcat 4.0 2000 → Apache Software Foundation http://jakarta.apache.org/struts

7 Jakarta Struts Framework7 Architektura JSP Model 1 Zdroj: Struts Book

8 Jakarta Struts Framework8 Architektura JSP Model 2 Zdroj: Struts Book

9 Jakarta Struts Framework9 Architektura JSP Model 2 Klient zasílá požadavek řídicímu servletu žádné odkazy na JSP Možnost centralizace některých činností autentizace sledování činnosti (logging) podpora národních verzí (i18n) Po zpracování požadavku je řízení přesměrováno na JSP

10 Jakarta Struts Framework10 Návrhový vzor MVC Oddělení aplikační logiky, prezentace a zpracování požadavku Komponenty model – reprezentace stavu zájmové domény aplikace view – prezentace modelu controller– řízení toku a stavu požadavků Proti obecnému návrhovému vzoru komplikovanější šíření událostí nutnost ‘post back’ operace vyvolané uživatelem

11 Jakarta Struts Framework11 Návrhový vzor MVC

12 Jakarta Struts Framework12 MVC Model Reprezentace objektů z domény aplikace sada Java objektů SQL dotaz ORM (Object-Relational Mapping) Enterprise Java Beans Session Beans (remote) → value objects Entity Beans (local)

13 Jakarta Struts Framework13 MVC View Prezentace modelu statický obsah – HTML statický a dynamický obsah – JSP Realizace převážně na straně serveru může být i na straně klienta (JavaScript)

14 Jakarta Struts Framework14 MVC Controller Obvykle Java servlet Úkoly: odchytává požadavky od uživatele překládá požadavek na konkrétní operaci vyvolá operaci nebo deleguje řízení pomáhá při výběru prezentace zasílá prezentaci klientovi návrhový vzor Front Controller

15 Jakarta Struts Framework15 Prvky webové aplikace Servlety Stránky JSP Standardní knihovny tříd Dokumenty HTML Multimediální soubory (obrázky, zvuk, video,...) Klientské aplety, styly a skripty Textové dokumenty Metainformace

16 Jakarta Struts Framework16 Struktura webové aplikace kontext aplikace – kořenový adresář http://www.cs.vsb.cz/katis http://www.cs.vsb.cz/katis privátní adresáře (nedostupné přes web).../WEB-INF- konfigurace.../WEB-INF/classes- kód aplikace.../WEB-INF/lib- pomocné knihovny doporučení: umístit JSP pod.../WEB-INF/

17 Jakarta Struts Framework17 Konfigurace webové aplikace.../WEB-INF/web.xml mapování řídicího servletu (ActionServlet) parametry řídicího servletu aplikační moduly (sub-aplikace) knihovny značek welcome-file-list ošetření chyb

18 Jakarta Struts Framework18 Konfigurace webové aplikace.../WEB-INF/struts-config.xml datové zdroje formuláře ošetření výjimek směrování mapování akcí lokalizace zpráv rozšiřující moduly (plug-in)

19 Jakarta Struts Framework19 Komponenty - Controller ActionServlet příjem všech požadavků nastavení národního prostředí zpracování parametrů požadavku - FormBean výběr vhodného modulu aplikace deleguje požadavek na RequestProcessor jediná instance pro celou aplikaci

20 Jakarta Struts Framework20 Komponenty - Controller RequestProcessor jedna instanci pro každý modul aplikace volá vhodné instance třídy Action po dokončení akce předá řízení nějaké prezentační komponentě (obvykle JSP) Action → vlastní akce rozšiřuje org.apache.struts.action.Action je třeba implementovat metodu execute() reprezentace návrhového vzoru Command vrací informaci o následujícím view

21 Jakarta Struts Framework21 Komponenty - Controller

22 Jakarta Struts Framework22 Komponenty - Model Podpora modelu není součástí Struts Typy modelů: konceptuální model – pojmy, vztahy, atributy návrhový model – třídní a interakční diagramy, stavové diagramy,... Implementace: JavaBeans, EJB, Corba, JDO,...

23 Jakarta Struts Framework23 Komponenty - View Java Server Pages HTML, CSS, JavaScript Multimediální objekty ActionForms JavaBeans části modelu použité pro prezentaci Lokalizační soubory (resource bundles) Uživatelské značky JSP

24 Jakarta Struts Framework24 Komponenty ActionForm Použití Zapouzdření parametrů z HTTP požadavku klienta (GET, POST) Dočasné uchování hodnot Význam Oddělení prezentační vrstvy od aplikace Možnost validace vstupu od uživatele ok – provede se akce chyba– řízení se vrátí zpět na formulář

25 Jakarta Struts Framework25 Komponenty ActionForm Implementace Rozšiřuje org.apache.struts.action.ActionForm Konvence JavaBeans Realizace návrhového vzoru Data Transfer Object (DTO) Lze generovat automaticky z konfigurace (Dynamic ActionForms – Struts 1.1)

26 Page 1 Controller Action2.java Struts- config. xml Mappings Business Logic Layer Data Layer View Layer Business Bean 1 Jsp Engine Jsp 1 Action3.java Action4.java Action1.java Business Bean 2 Business Bean 3 Jsp 2Jsp 3 Form Bean 1 Form Bean 2 Other Bean 1 request/session Web Browser Db Server path action [form bean] [forwards] Jsp 2 Web Server Jsp 2

27 Web Server creates / reuses index.htm Controller Show Logging Action.java Mappings Business Logic Layer Data Layer View Layer Jsp Engine LoggingBean.java logging.jsp Logging Form request/session Web Browser Db Server Request: ShowLogging.do creates form bean in correct scope perform(mapping, form, request, response) calls business logic rule to get logging info returns forward(success) mainpulates data setCategoryList(list) forwards – logging.jsp expands custom tags response sent to browser – pure html looks up <action path="/ShowLogging" type="beans.ShowLoggingAction" name="LoggingForm"> <forward name="success“ path="/logging.jsp" /> ServerBean.java populates form values …. logging.jsp Messages Resources displays internationalized messages

28 Web Server creates / reuses action instance logging.jsp Controller Show Logging Action.java Mappings Business Logic Layer Data Layer View Layer Jsp Engine LoggingBean.java results.jsp Logging Form request/session Web Browser Db Server form submit – action=‘SaveLogging.do’ reuses form bean in correct scope calls perform(mapping, form, request, response) getCategoryList() returns mapping.findForward("success") forwards – result.jsp expands custom tags Displays internationalized messages from bean response sent to browser – pure html looks up <action path="/SaveLogging" type="beans.SaveLoggingAction" name="LoggingForm"> <forward name="success“ path="/result.jsp" /> ServerBean.java Messages Bean add result messages auto populates using bean getters/setters becomes request parameter category[0].value added to form using LoggingForm.getCategory(0).setValue(value) For each one that user has changed… call business logic to change on server browser adds form variables to request results.jsp

29 if submit, auto populates form bean from request params Page 1 Controller Action2.java Struts- config. xml Mappings Business Logic Layer Data Layer View Layer Business Bean 1 Jsp Engine Jsp 1 Action3.java Action4.java Action1.java Business Bean 2 Business Bean 3 Jsp 2Jsp 3 Form Bean 1 Form Bean 2 Other Bean 1 request/session Web Browser Business Data reads on start-up creates incoming requests creates/reuses any associated form bean path action [form bean] [forwards] passes control to relevant action to handle interacts with lower layers - acts as adaptor between HTTP and layers below gets data to display (adds to beans in request/session)…or saves data from beans via business rules looks up path to determine action/ form bean returns appropriate forward relevant page called processes custom tags – fill form elements from beans, display internationalized messages pure HTML sent to browser Jsp 2 Action2.java Form Bean 2 Web Server Jsp 2

30 Jakarta Struts Framework30 Lokalizační soubory Lokalizace zobrazovaných textů chybové zprávy texty v uživatelském rozhraní Automatický výběr podle nastavení klienta application.properties application_en_US.properties application_de_DE.properties JSP značky

31 Jakarta Struts Framework31 Šablony - knihovna Tiles Sada značek JSP Oddělení formátu stránky od obsahu Možnost změny formátu nastavení vzhledu uživatelem Opakovaně použitelné definice šablona – parametrizovaná stránka instance šablony – konkrétní obsah

32 Jakarta Struts Framework32 Šablony – knihovna Tiles

33 Jakarta Struts Framework33 Šablony – knihovna Tiles <tiles:put name="header” value="/common/header.jsp" /> <tiles:put name=“menubar” value="/common/menu.jsp" /> <tiles:put name="body-content" value="/main.jsp" /> <tiles:put name="copyright” value="/common/copyright.jsp" />

34 Jakarta Struts Framework34 Další zdroje informací jakarta.apache.org/struts www.husted.com/struts www.interval.cz www.theserverside.com


Stáhnout ppt "Aplikační rámce Jakarta Struts Framework Miroslav Beneš."

Podobné prezentace


Reklamy Google