Aplikační rámce. Jakarta Struts Framework. Obsah přednášky. Aplikační rámce a knihovny. Co je to aplikační rámec? Enterprise Java Beans

Podobné dokumenty
Aplikační rámce Jakarta Struts Framework

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

Architektury informačních systémů

Architektury informačních systémů

Architektura aplikace

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

KIV/PIA 2013 Jan Tichava

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

(Enterprise) JavaBeans. Lekce 7

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Databázové a informační systémy

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Softwarové komponenty a Internet

Tvorba informačních systémů

Tvorba informačních systémů na platformě J2EE Petr Hetmánek Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno

Návrhové vzory pro J2EE

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

KIV/PIA Semestrální práce

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Tvorba informačních systémů

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Tvorba informačních systémů

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Návrhové vzory pro J2EE. Miroslav Beneš

Michal Krátký, Miroslav Beneš

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Elektronická podpora výuky předmětu Komprese dat

Aleš Rybák, Jiří Kadlec. Pluginy budoucnosti

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Technologie Java. Jaroslav Žáček

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Spring framework 2.0. Roman Pichlík CZJUG

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

IS pro podporu BOZP na FIT ČVUT

Webové služby. Martin Sochor

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Zranitelnosti webových aplikací. Vlastimil Pečínka, Seznam.cz Roman Kümmel, Soom.cz

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

MBI - technologická realizace modelu

<Insert Picture Here> Vývoj portálových řešení v Javě

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Stručný úvod pro programátory. Michal Kuchta

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Čipové karty Lekařská informatika

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

Úvod do Web Services

TÉMATICKÝ OKRUH Softwarové inženýrství

Java Server-side. Štěpán Kuchař. VŠB-TUO FEI Katedra informatiky

Databáze II. 1. přednáška. Helena Palovská

Snadný vývoj webových aplikací s Nette. Lukáš Jelínek

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

PA165: Úvod do Java EE. Petr Adámek

Platformy / technologie. Jaroslav Žáček

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition vývoj webových aplikací

Postup. Úvodem. Hlavní myšlenka frameworku. application. system. assets. uploads

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

RESTful API TAMZ 1. Cvičení 11

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

Komponenta Human Task v Oracle SOA Suite

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Komponentní technologie

Internet Information Services (IIS) 6.0

X33EJA Enterprise Java

Server-side technologie pro webové aplikace

JavaServer Faces Zdeněk Troníček

Michal Augustýn Microsoft Most Valuable Professional

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Databáze EMS podacích lístků

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

APS Administrator.ST

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Web Services na SOAP

UJO Framework. revoluční architektura beans. verze

Common Object Request Broker Architecture

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

MVVM pro desktop i web

Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)

1 Webový server, instalace PHP a MySQL 13

Lukáš Brodský Praha Osnova. Objektový přístup Verze 4, 5, 6 / 7 Developer7 -funkčnost, nové vlastnosti HW

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

MODERNÍ WEB SNADNO A RYCHLE

1. Webový server, instalace PHP a MySQL 13

Úvod do tvorby internetových aplikací

Úvod do problematiky vývoje Vývoj informačních systémů

Transkript:

Obsah přednášky Aplikační rámce Jakarta Struts Framework Miroslav Beneš 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 Jakarta Struts Framework 2 Co je to aplikační rámec? Aplikační rámce a knihovny 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é Ext 1 Ext 2 Framework Ext 3 Aplikační rámec + rozšíření pro konkrétní aplikace Knihovna 2 Knihovna 1 Aplikace Aplikace + knihovny Jakarta Struts Framework 3 Jakarta Struts Framework 4 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 1

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/ Jakarta Struts Framework 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 Jakarta Struts Framework 5 Jakarta Struts Framework 6 Architektura JSP Model 1 Architektura JSP Model 2 Zdroj: Struts Book Jakarta Struts Framework 7 Zdroj: Struts Book Jakarta Struts Framework 8 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 2

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 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 Jakarta Struts Framework 9 Jakarta Struts Framework 10 Návrhový vzor MVC 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) Jakarta Struts Framework 11 Jakarta Struts Framework 12 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 3

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) 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 Jakarta Struts Framework 13 Jakarta Struts Framework 14 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 Struktura webové aplikace kontext aplikace kořenový adresář 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/ Jakarta Struts Framework 15 Jakarta Struts Framework 16 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 4

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 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) Jakarta Struts Framework 17 Jakarta Struts Framework 18 Komponenty - Controller ActionServlet příjem všech požadavků nastavení národního prostředí zpracování parametrů požadavku - Bean výběr vhodného modulu aplikace deleguje požadavek na RequestProcessor jediná instance pro celou aplikaci 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 Jakarta Struts Framework 19 Jakarta Struts Framework 20 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 5

Komponenty - Controller 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,... Jakarta Struts Framework 21 Jakarta Struts Framework 22 Komponenty - View Java Server Pages HTML, CSS, JavaScript Multimediální objekty Actions JavaBeans části modelu použité pro prezentaci Lokalizační soubory (resource bundles) Uživatelské značky JSP Komponenty Action 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 chyba provede se akce řízení se vrátí zpět na formulář Jakarta Struts Framework 23 Jakarta Struts Framework 24 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 6

Komponenty Action Page 1 Web Browser Jsp 1 Jsp 2 Jsp 3 Implementace Rozšiřuje org.apache.struts.action.action Konvence JavaBeans Realizace návrhového vzoru Data Transfer Object (DTO) Lze generovat automaticky z konfigurace (Dynamic Actions Struts 1.1) Web Server Strutsconfig. xml Mappings Controller path action [form bean] [forwards] Jsp Engine Action1 Action2 Bean 1 Action3 request/session Bean Other 2 Bean 1 Action4 View Bean 1 Bean 2 Bean 3 Logic Jakarta Struts Framework 25 Db Server Data Web Server index.htm Web Browser Mappings Controller logging.jsp response sent to browser pure html Request: ShowLogging.do displays populates expands internationalized custom form values tags Jsp Engine messages Messages forwards logging.jsp Resources creates form bean in correct scope looks up <!-- Show logging --> <action path="/showlogging" type="beans.showloggingaction" name="logging"> <forward name="success path="/logging.jsp" /> </action> <form name="logging" > <logic:iterate id="category name="logging" property="categorylist"> <bean:write name="category" property="key"/> <bean:write name="category" property="desc"/>. </logic:iterate> </form> request/session Logging setcategorylist(list) perform(mapping, returns creates / reusesform, forward(success) request, response) Show Logging mainpulates data Action calls business logic rule to get logging info LoggingBean ServerBean View Logic Web Server logging.jsp browser adds form variables to request Web Browser form submit action= SaveLogging.do Mappings Controller looks up <!-- Save logging --> <action path="/savelogging" type="beans.saveloggingaction" name="logging"> <forward name="success path="/result.jsp" /> </action> results.jsp response sent to browser pure html Displays internationalized expands custom tags Jsp Engine messages from bean request/session Messages Logging forwards result.jsp Bean reuses auto populates form bean using correct bean getters/setters scope getcategorylist() returns calls creates perform(mapping, / reuses form, mapping.findforward("success") action instance request, response) Show Logging Action LoggingBean ServerBean <form name="logging" > <select name="category[0].value" > </form> becomes request parameter category[0].value added to form using Logging.getCategory(0).setValue(value) add result messages For each one that user has changed call business logic to change on server View Logic Db Server Data Db Server Data (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 7

Page 1 Web Browser Jsp 1 Action1 Jsp 2 Jsp 3 processes custom tags fill form elements Web Server from beans, display internationalized messages request/session incoming requests Jsp Engine Bean 1 Bean Other relevant page called 2 Bean if creates/reuses submit, auto any 1 populates associated form bean reads on start-up Controller from request params Strutsconfig. creates looks up path to determine action/ passes returns control appropriate to xml form bean relevant forward action to handle Mappings path action [form bean] [forwards] pure HTML sent to browser Action2 Action3 gets interacts data with to display lower (adds layers to -beans in request/session) or acts as adaptor between saves data from beans HTTP via and business layers below rules Bean 1 Bean 2 Data Bean 3 Action4 View Logic Data 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 <h1><bean:message key= app.title /></h1> Jakarta Struts Framework 30 Š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 Šablony knihovna Tiles <%@taglib uri="/web-inf/struts-html.tld" prefix="html"%> <%@taglib uri="/web-inf/struts-bean.tld" prefix="bean"%> <%@taglib uri="/web-inf/tiles.tld" prefix="tiles"%> <html:html> <head> <title><bean:message key="global.title"/></title> </head> <body topmargin="0" leftmargin="0" bgcolor="#ffffff"> <tiles:insert attribute="header" /> <tiles:insert attribute= menubar"/> <tiles:insert attribute="body-content"/> <tiles:insert attribute="copyright"/> </body> </html:html> Jakarta Struts Framework 31 Jakarta Struts Framework 32 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 8

Šablony knihovna Tiles <%@taglib uri="/web-inf/tiles.tld" prefix="tiles" %> <tiles:insert page="/layouts/beer4alldefaultlayout.jsp" flush="true"> <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" /> Další zdroje informací jakarta.apache.org/struts www.husted.com/struts www.interval.cz www.theserverside.com </tiles:insert> Jakarta Struts Framework 33 Jakarta Struts Framework 34 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 9