Tvorba informačních systémů

Podobné dokumenty
Tvorba informačních systémů

Tvorba informačních systémů

Tvorba informačních systémů

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

Aplikační rámce Jakarta Struts Framework

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

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

KIV/PIA 2013 Jan Tichava

Architektura aplikace

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

Architektury informačních systémů

Softwarové komponenty a Internet

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

Architektury informačních systémů

Tvorba informačních systémů

KIV/PIA Semestrální práce

Web Services na SOAP

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

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

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

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

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

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

Tvorba informačních systémů

Tvorba informačních systémů

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

UJO Framework. revoluční architektura beans. verze

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

Tvorba informačních systémů

(Enterprise) JavaBeans. Lekce 7

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

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

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

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

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

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

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

MBI - technologická realizace modelu

Vytváření a použití knihoven tříd

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Zabezpečení webové vrstvy a EJB projektu Část nastavení specifická pro Glassfish, část dána Java EE

X36WWW. Technologie aplikačních serverů. Miroslav Bureš,, Martin Klíma. X36WWW: 12. přednáška 1

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

Tvorba informačních systémů

IS pro podporu BOZP na FIT ČVUT

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

Návrhové vzory pro J2EE

10 Balíčky, grafické znázornění tříd, základy zapozdření

Michal Krátký, Miroslav Beneš

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

Technologie JavaBeans

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

JAVA JavaBeans Java, letní semestr

Komponenty v.net. Obsah přednášky

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

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Spring framework 2.0. Roman Pichlík CZJUG

Server-side technologie pro webové aplikace

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

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);

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

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

KTE / ZPE Informační technologie

Úvod do programovacích jazyků (Java)

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

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

Michal Augustýn Microsoft Most Valuable Professional

X33EJA Enterprise Java

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Návrhové vzory pro J2EE. Miroslav Beneš

Obsah přednášky. Vývoj aplikací řízený testy. Extrémní programování (XP) Požadavky na nástroje pro XP. Testování aplikací

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

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

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

7 Jazyk UML (Unified Modeling Language)

Abstraktní datové typy: zásobník

JavaServer Faces Zdeněk Troníček

1 Webový server, instalace PHP a MySQL 13

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

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

Programátorská příručka

7.5 Diagram tříd pokročilé techniky

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

Technologie Java. Jaroslav Žáček

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

7 Jazyk UML (Unified Modeling Language)

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

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

1. Webový server, instalace PHP a MySQL 13

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Programování v Javě I. Leden 2008

Znalostní systém nad ontologií ve formátu Topic Maps

Transkript:

Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 1/39

Obsah 4. Aplikační rámec Struts, Model Struts, Model-View-Controller, Konfigurace webové aplikace, Ukázková webová aplikace. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 2/39

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émů. Komponenty aplikačního rámce jsou opakovaně použitelné. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 3/39

Aplikační rámce a Java Struts 1.x a 2.x http://jakarta.apache.org/struts/ Java Server Faces http://java.sun.com/j2ee/javaserverfaces/ Barracuda http://barracuda.enhydra.org/ Cocoon http://xml.apache.org/cocoon/ Expresso http://www.jcorporate.com/ Velocity http://velocity.apache.org/ c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 4/39

Aplikační rámec Struts Návrhový vzor MVC (Model-View-Controller). Architektura JSP Model 2. Asi 250 tříd a rozhraní v 8 hlavních balících. http://jakarta.apache.org/struts/ Možnost vývoje rozsáhlých informačních systémů? c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 5/39

Architektura JSP Model 1 c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 6/39

Architektura JSP Model 2 c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 7/39

Architektura JSP Model 2 Klient zasílá požadavek řídícímu servletu, žádné odkazy na JSP. Po zpracování požadavku je řízení přesměrováno na JSP. Možnost centralizace některých činností: autentizace, sledování činností (logging), podpora národních verzí (i18n). c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 8/39

Návrhový vzor MVC 1/2 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žadavku. Proti obecnému návrhovému vzoru komplikovanější šíření událostí. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 9/39

Návrhový vzor MVC 2/3 c Jouni Lappalainen, Mikko Rajanen c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 10/39

Návrhový vzor MVC 3/3 c Jouni Lappalainen, Mikko Rajanen c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 11/39

Prvky webové aplikace, J2EE Servlety, Stránky JSP, Standardní knihovny tříd, Dokumenty HTML, Multimediální soubory (obrázky, zvuk, video,...), Klientské aplety, styly a skripty, Textové dokumenty,... c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 12/39

Kontext aplikace kořenový adresář např. 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/. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 13/39

Konfigurace webové aplikace soubor WEB-INF/web.xml platný pro J2EE, mapování řídícího servletu (ActionServlet), parametry řídícího servletu, knihovny značek, ošetření chyb. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 14/39

Konfigurace webové aplikace soubor WEB-INF/struts-config.xml platný pro Struts, 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). c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 15/39

MVC - Model 4. Aplikační rámec Struts Reprezentace objektů z domény aplikace - sada Java objektů. Podpora modelu není součástí Struts. Realizace konceptuálního a návrhového modelu: třídní a interaktivní diagramy, stavové diagramy,... Implementace: JavaBeans, EJB, CORBA,... c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 16/39

JavaBean 4. Aplikační rámec Struts Znovupoužitelné softwarové komponenty založené na jazyce Java. Konvence pro JavaBean: definujeme pouze prázdný konstruktor, private přístup k atributům, metody pro přístup k atributům jsou vždy public, pro atribut property definujeme metody: public <propertytype> get<property>() public void Set<Property>(<propertyType> <variable>) Metody. Události. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 17/39

MVC - View 1/3 4. Aplikační rámec Struts 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, např. validace vstupu programem v JavaScript. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 18/39

MVC View 2/3 4. Aplikační rámec Struts Dynamické a statické stránky: Java Server Pages. HTML technologie: HTML, CSS, JavaScript, multimediální objekty. ActionForm bázová třída formulářů ve Struts. JavaBeans beans určené pro prezentaci. Lokalizační soubory. Uživatelské značky. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 19/39

MVC View ActionForm 3/3 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. Implementace Rozšiřuje org.apache.struts.action.actionform, Konvence JavaBeans. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 20/39

Struts, Controller 1/3 Obvykle Java servlet, úkoly: odchytává požadavky od uživatele, překládá požadavek na konkrétní operaci, vyvolává operaci nebo deleguje řízení, pomáhá při výběru prezentace, zasílá prezentaci klientovi. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 21/39

Struts, Controller - komponenty 2/3 ActionServlet příjem všech požadavků, nastavení národního prostředí, zpracování parametrů požadavku FormBean, jediná instance pro celou aplikaci. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 22/39

Struts, Controller - komponenty 3/3 Action vlastní akce rozšiřuje třídu org.apache.struts.action.action, je třeba implementovat metodu execute(), c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 23/39

Příklad, jednoduchá aplikace JakartaStrutsFramework 1.3.8. Vyjdeme z ukázkové aplikace struts-blank-1.3.8.war. Implementace komponenty Controller. Kompilace pomocí ant - nutnost přepsání proměnných: <project name="jcms" basedir="../"...> <path id="compile.classpath">... property name="servlet.jar"... property name="project.title"... property name="project.distname"... c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 24/39

Příklad, Controller 4. Aplikační rámec Struts index.jsp <%@ t a g l i b u r i = " / tags / s t r u t s l o g i c " p r e f i x = " l o g i c " %> < l o g i c : r e d i r e c t forward= " jcms " / > WEB-INF/struts-config.xml: <global forwards> <forward name= " jcms " path= " / jcms. j s p " / > < / global forwards> c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 25/39

Příklad, formulář jcms.jsp 1/2 <%@ page language= " java " contenttype= " t e x t / html ; charset= u t f 8" %> <%@ t a g l i b u r i = " / tags / s t r u t s html " p r e f i x = " html " %> <%@ t a g l i b u r i = " / tags / s t r u t s bean " p r e f i x = " bean " %> <%@ t a g l i b u r i = " / tags / s t r u t s l o g i c " p r e f i x = " l o g i c " %> < h t m l : h t m l > <head> < t i t l e >Example A p p l i c a t i o n, JCMS, TIS 2008< / t i t l e > < / head> <body bgcolor=" white " > <h1>jcms< / h1> < l o g i c : p r e s e n t name= " l o g i n " > Loged: < b e a n : w r i t e name= " l o g i n " p r o perty=" loged " / > < / l o g i c : p r e s e n t > c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 26/39

Příklad, formulář jcms.jsp 2/2 < html:form a c t i o n = " solve. do " > < t a b l e > < t r >< td>login:< / td> < td>< h t m l : t e x t name= " LoginForm " p r o p e r t y = " l o g i n " / >< / td> < / t r > < t r >< td>password:< / td> < td>< h t m l : t e x t name= " LoginForm " p r o p e r t y = " password " / >< / td> < / t r >< / t a b l e > < html:submit / > < / html:form> < / body>< / h t m l : h t m l > c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 27/39

Třída popisující formulář LoginForm.java 1/2 package jcms. form ; import org. apache. s t r u t s. a c t i o n. ActionForm ; public class LoginForm extends ActionForm { private S t r i n g l o g i n ; private S t r i n g password ; public LoginForm ( ) { } public void setlogin ( S t r i n g log ) { l o g i n = log ; } c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 28/39

Třída popisující formulář LoginForm.java 2/2 public S t r i n g getlogin ( ) { return l o g i n ; } public void setpassword ( S t r i n g passwd ) { password = passwd ; } } public S t r i n g getpassword ( ) { return password ; } c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 29/39

Třída popisující formulář - LoginForm soubor WEB-INF/struts-config.xml: <form beans> <form bean name= " LoginForm " type= " jcms. form. LoginForm " / > < / form beans> c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 30/39

Model Login.java 1/3 package jcms. common ; public class Login { private S t r i n g l o g i n ; private S t r i n g password ; private boolean loged ; public Login ( ) { } public void setlogin ( S t r i n g log ) { l o g i n = log ; } public S t r i n g getlogin ( ) { return l o g i n ; } c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 31/39

Model Login.java 2/3 public void setpassword ( S t r i n g passwd ) { password = passwd ; } public S t r i n g getpassword ( ) { return " " ; } c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 32/39

Model Login.java 3/3 public void setloged ( boolean l ) { loged = l ; } public boolean getloged ( ) { return loged ; } } public void dologin ( ) { mconnection. createstatement ( ) ;... } c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 33/39

Třída definující akci, LoginAction.java 1/2 package jcms. a c t i o n ; import javax. s e r v l e t. h t t p. HttpServletRequest ; import javax. s e r v l e t. h t t p. HttpServletResponse ; import javax. s e r v l e t. h t t p. HttpSession ; import org. apache. s t r u t s. a c t i o n. ; import jcms. form. ; import jcms. common. ; public class LoginAction extends Action { public ActionForward execute ( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response ) { c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 34/39

Třída definující akci, LoginAction.java 2/2 LoginForm loginform = ( LoginForm ) form ; S t r i n g loginvalue = loginform. getlogin ( ) ; S t r i n g passwordvalue = loginform. getpassword ( ) ; Login l o g i n = new Login ( ) ; l o g i n. setlogin ( loginvalue ) ; l o g i n. setpassword ( passwordvalue ) ; l o g i n. dologin ( ) ; } } request. s e t A t t r i b u t e ( " l o g i n ", l o g i n ) ; return mapping. findforward ( " jcms " ) ; c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 35/39

Přiřazení akce k formuláři soubor WEB-INF/struts-config.xml: <action mappings> < a c t i o n path= " / solve " type= " jcms. a c t i o n. LoginAction " name= " LoginForm " scope= " request " / > < / action mappings> c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 36/39

Vývoj webové aplikace Ve webovém kontaineru, např. Tomcat. Překládáme pomocí ant v adresáři obsahující soubor build.xml. V libovolném IDE, např. Netbeans. Výsledkem je war soubor, který může být vložen do webového kontaineru. c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 37/39

JakartaStruts 4. Aplikační rámec Struts c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 38/39

Reference 4. Aplikační rámec Struts http://jakarta.apache.org/struts/ Tutoriály http://www.learntechnology.net/ Komentovaný příklad http://www.root.cz/clanky/ struts-komentovany-priklad-zaklad-aplikace/ c 2006 2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 39/39