VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 3.

Slides:



Advertisements
Podobné prezentace
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Advertisements

Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Štěpán Šípal Gymnázium Čakovice. Dnešní témata  Vznik XHTML a předchůdci  Základní prvky XHTML dokumentu  Tagy a atributy  Elementy a jejich druhy.
Tvorba WWW stránek ÚVOD
Vstupy a výstupy v JavaScriptu Vstup: použitím metody prompt objektu window čtením hodnot z položek formuláře Výstup : použitím metody alert objektu window.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
CSS a HTML 5. HTML 5 HTML5 je nová verze specifikace značkovacího jazyka HTML, která přináší podstatné změny v technologiích webových stránek. HTML5 umožňuje.
Ing. Jan Mittner Rozšíření modelu 2. Vazba 1:n 3. Vazba m:n 2.
Internetové publikování Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)
ÚVOD DO CPP 7 Dědičnost - pokračování
TVORBA WEBOVÝCH STRÁNEK
C# pro začátečníky Mgr. Jaromír Osčádal
Návrh a tvorba WWW Cvičení 6
PHP – vkládání souborů a html 5
Programování v C++ Cvičení.
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Adobe Dreamweaver CS4 Ing. Martin Dosedla.
Kaskádové styly Cascading Style Sheets. Využití CSS jde o jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML umožňuje.
Vývoj aplikací pro SharePoint
PHP – Základy programování
Sémantická analýza Jakub Yaghob
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
Ant Připravil: Ing. Jan Kolomazník. strana 2 Proč vznikl Potřeba sestavovat komplexní Nezávisle na platformě Popis založený na xml Spouštění různých úloh.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Počítače a programování 1
Maturitní okruh 22: Úvod do HTML. Značkovací a klasické jazyky Klasické: převládá strukturovaný text (programovací kód), skripty jsou prováděny na straně.
HTML, XHTML a CSS Základy jazyků značek.
Návrh a tvorba WWW Cvičení 4
Dokumentace objektů a zveřejnění funkcí
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 13.
Dílna Caché II. CSP pro pokročilé Tomáš Vaverka. Zdroje HTML Tag Reference v sekci Reference Material v dokumentaci Caché HTML Tag Reference v sekci Reference.
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
TNPW1 Technologie pro publikování na webu Cvičení č. 2 Překlad URL na fyzickou adresu stránky Editor Macromedia Homesite „Hello world“ v XHTML (úvod do.
Databázové modelování
Základy syntaxe jazyka PHP PHP JE TECHNOLOGIE BĚŽÍCÍ NA SERVERU. PHP JE TECHNOLOGIE BĚŽÍCÍ NA SERVERU. Typický PHP skript obsahuje: Typický PHP skript.
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Šesté cvičení Výjimky Balíky.
PHP PHP - úvod - 02 Mgr. Josef Nožička IKT PHP
Import záznamů diplomových prací nové řešení Antonín Vaishar, SUAleph, 26. –
Vít Profant Obhajoba bakalářské práce
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
PHP Programy pro tvorbu WWW stránek - 01
Mgr. Ludmila Urbášková CDV UP Olomouc Jak dostaneme MM ke studentům? Standardy HTTP, HTML (XHTML), CSS WYSIWYG editor nebo jiný editor (X)HTML Grafický.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt 1 Část 12.
Petr Šmíd Obsah prezentace Co je to XML ?
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 7.
Podprogramy (subroutines) Pojmenované kousky programu, které –tvoří logicky ucelené části –se v programu opakují Jsou zapsány na jednom místě a v případě.
Úvod do XML S využitím materiálů z Zdeněk Žabokrtský.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Inf Webová stránka, princip HTML a CSS. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 5.
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
as4u advanced system for you
Kaskádové styly CSS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
WWW a HTML Základní pojmy Ivo Peterka.
Připravil: Ing. Jan Kolomazník, Ph.D.
TNPW1 JavaScript Ing. Jiří Štěpánek.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
ZAL – 7. cvičení 2016.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
Transkript prezentace:

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 3.

Vyřizování dotazů (Dispatching)  Při zpracování požadavku často potřebujeme  přenechat zpracování jinému servletu – tzv. forwarding  vložit výstup z jiného servletu do "našeho" výstupu – tzv. inclusion  Řeší objekt třídy RequestDispatcher (dispečer)  ServletContext::getRequestDispatcher(cesta) cesta je relativní ke kořeni kontextu aplikace a začíná /  ServletRequest::getRequestDispatcher(cesta) cesta je relativní k aktuálnímu dotazu, nezačíná /  ServletContext::getNamedDispatcher(název) předává se název servletu z aplikačního kontextu 2

Použití RequestDispatcher  Pro vložení výstupu jiného servletu  include(request, response)  Pro přenechání zpracování  forward(request, response)  Parametry těchto metod jsou objekty dotazu (ServletRequest) a odpovědi (ServletResponse)  stejné, jako předané aktuálním servletu  instance obalových tříd ServletRequestWrapper a ServletResponseWrapper 3

Vyřizování dotazů - include Webový server Servletový kontejner Servlet1 Servlet2 odpověď dotaz include 4

Metoda include  Vkládá výstup volaného servletu do předaného objektu odpovědi (response)  Může být v rámci dotazu volána vícekrát  K objektu dotazu má plný přístup  Na objektu odpovědi  může používat výstupní stream nebo writer  nesmí měnit návratový kód, obsah ani počet hlaviček změny jsou ignorovány 5

Příklad – vložení hlavičky a patičky 6

7

8

Vyřizování dotazů - forward Webový server Servletový kontejner Servlet1 Servlet2 odpověď dotaz forward 9

Metoda forward  Přenechává dokončení zpracování jinému servletu  Možno volat pouze pokud ještě žádná data nebyla odeslána na klienta  Jinak se vyhazuje výjimka IllegalStateException (viz Spec. 9.4)  Před návratem je výstup z cílového servletu kontejnerem odeslán na klienta (commit) a uzavřen  volající servlet pak už neřeší potvrzování obsahu 10

Příklad – forward 11

Příklad – forward 12

Posluchači  Možnost zaregistrovat posluchače událostí v různých objektech:  ServletContext  HttpSession  ServletRequest  Usnadňuje rozdělení logiky do tříd podle účelu (Separation of Concerns)  Zvyšuje flexibilitu a rozšiřitelnost  Od verze Java EE 6 je možné registrovat posluchače za běhu aplikace. (Dříve jen ve web.xml) 13

Posluchači ServletContext  Životní cyklus  Servletový kontext byl nahrán, nebo je nachystán k ukončení  rozhraní javax.servlet.ServletContextListener  Změny v atributech  Atributy v kontextu byly přidány, odebrány či vyměněny  rozhraní javax.servlet.ServletContextAttributeListener 14

Příklad ServletContextListener 15

Příklad ServletContextListener 16

Posluchači HttpRequest  Životní cyklus  javax.servlet.ServletRequestListener  requestInitialized, requestDestroyed  Změny v atributech  javax.servlet.ServletRequestAttributeListener  Asynchronní zpracování požadavku  javax.servlet.AsyncListener  onComplete, onTimeout 17

Posluchači HttpSession  Životní cyklus  Http session byla vytvořena, zneplatněna nebo vypršela  javax.servlet.http.HttpSessionListener  Změny v atributech  Atributy v session byly přidány, odebrány či vyměněny  javax.servlet.http.HttpSessionAttributeListener 18

Posluchači HttpSession  Připojení/odpojení objektu k session (binding)  Objekt byl připojen nebo odpojen ze session  javax.servlet.http.HttpSessionBindingListener  Neregistruje se ve web.xml.  Migrace session  Session byla aktivována, nebo se chystá k pasivaci  javax.servlet.http.HttpSessionActivationListener  Neregistruje se ve web.xml. Stačí samotný fakt, že třída implementuje rozhraní posluchače. 19

Příklad HttpSessionBindingListener 20

Příklad HttpSessionBindingListener 21

Př. HttpSessionActivationListener 22

Distribuované prostředí  Všechny dotazy patřící do jedné relace jsou obslouženy ve stejném JVM  Kontejner se však může rozhodnout provést tzv. migraci relace na jiný uzel clusteru  load-balancing – rozložení zátěže mezi uzly  fail-over – předání zpracování na jiný uzel v případě potíží na původním cílovém uzlu 23

Migrace session S1 Klient 1 Uzel 1 Uzel 2 S1 24 Load Bala ncer Load Bala ncer

Session Migrovatelnost atributů relace  Kontejner akceptuje všechny objekty-atributy, které implementují java.io.Serializable  Kontejner se může rozhodnout pro migraci objektů, které nejsou serializovatelné, specifickým způsobem.  Způsob migrace není specifikován. A1 A2 A3 25

Java Server Pages (JSP)  Technologie pro generování dynamických webových stránek a dokumentů  Např. HTML, XHTML, XML, SVG, WML (WAP)  Statický obsah tvoří základ šablony  Dynamický obsah se získává  Java kódem vpisovaným do JSP – tzv. skriptlety  odkazem na vlastnosti objektů ve formě Java Beans (EL2 výrazy - ${...})  prostřednictvím tzv. custom tagů 26

JSP - ukázka 27

JSP - výsledek 28

Životní cyklus JSP stránky  Fáze překladu (translation phase)  Kontejner vyhledá stránku  Validace a kontrola syntaxe JSP a tagů  Vytvoření implementační třídy JSP stránky obvykle servlet  Běhová fáze (execution phase)  Předávání objektů požadavku a odpovědi instanci implementační třídy JSP stránky 29

Syntaktické prvky  Direktivy  Poskytují informace pro fázi překladu  Nemají přímý vztah ke zpracování dotazu stránkou   Akce  Deklarují, jak se má zpracovat dotaz. XML syntaxe.  Standardní akce jsou specifikované  Custom akce pomocí rozšiřujících tagů (tag extensions) Např. JSTL – JSP Standard Tag Library  Skriptovací prvky  výrazy, skriptlety, deklarace 30

Direktivy  Syntax:  page  Definují vlastnosti generované stránky   taglib  Deklaruje, že stránka používá knihovnu tagů.   include  Používá se pro vkládání textu nebo kódu z jiného souboru v době překladu.  31

Standardní akce  XML reprezentace, elementy mají prefix jsp   Deklaruje proměnnou, jejíž hodnota je javovský objekt  Lze určit rozsah, kde se objekt nachází  Atributy id – jednoznačné ID v rámci JSP, deklarace skript. proměnné scope – rozsah, ve kterém se hledá instance beanu page (default), request, session, application class – třída Java beanu. Pokud není nalezen v zadaném rozsahu, vytvoří se. type – typ proměnné deklarované touto akcí 32

Standardní akce   Čte hodnotu vlastnosti beanu a zapisuje ji na výstup  Atributy name – název beanu, obvykle odpovídá id v property – název vlastnosti beanu 33

Standardní akce - příklad 34

Standardní akce - příklad 35

Standardní akce   Nastavuje hodnotu vlastnosti beanu  Atributy name – název beanu, obvykle odpovídá id v property – název vlastnosti beanu param – parametr v dotazu, jehož hodnota se použije value – hodnota vlastnosti, nelze uvádět současně s param ,  Analogie metodám třídy RequestDispatcher include forward 36

Knihovny tagů  Umožňují rozšířit sadu standardních akcí  Doporučeno jako náhrada za skriptlety  Typická užití  Prosté akce  Podmíněné zpracování  Iterace  Registrace posluchačů (např. v JSF)  Existují dva typy tzv. tag handlerů  Klasický  Zjednodušený 37

Simple Tag Handler  Náhrada za klasické tag handlery  Velmi zjednodušuje vývoj vlastních knihoven tagů  Dva způsoby implementace  Java Základem je třída javax.servlet.jsp.tagext.SimpleTag, resp. SimpleTagSupport Určeno programátorům  JSP Tag soubory Určeno neprogramátorům, např. tvůrcům webových stránek 38

HelloTag - Handler 39

HelloTag – TLD knihovna Uloženo v souboru WEB-INF/mytaglib.tld 40

HelloTag – Použití v JSP 41

Tagové soubory  Jednoduchý způsob, jak vytvořit nový tag  soubor WEB-INF/tags/welcome.tag  Tagové soubory se obvykle umisťují do adresáře  WEB-INF/tags  Import v JSP   Použití: 42

Skriptovací prvky - Scriptlety  Skriptlety mohou obsahovat libovolný fragment skriptovacího jazyka  Default Java  Provádí se v čase dotazu  Mohou a nemusí vytvářet výstupní data  Kód skriptletu je uzavřen v bloku vymezeném  43

Scriptlety - příklad 44

Scriptlety – implicitní objekty  Objekty, které jsou deklarovány implicitně prostřednictvím proměnných na začátku stránky  request, session, application, pageContext objekty rozsahů (scopes) pageContext je speciální kontext reprezentující JSP stránku  response – objekt odpovědi  page – objekt stránky  out – výstupní proud (javax.servlet.jsp.JspWriter)  config – konfigrace servletu generovaného ke stránce 45

Scriptlety – explicitní proměnné  Deklarace beanu akcí zavádí proměnnou odpovídající hodnotě atributu id  Viz příklad s výpisem čísel telefonů  Deklarace pomocí speciální konstrukce   Deklarace globální proměnné (v podstatě atribut třídy) Pozor v případě více souběžných dotazů! Synchronizovat!  Deklarace metody 46

Výrazy  Konstrukce definuje výraz, který se po vyhodnocení v čase dotazu vypíše na výstup  47

Expression Language – EL 2.1  Od uvedených skriptovacích technik se ustupuje  Místo nich se doporučuje používat tagy a EL  EL je navržen pro snadné sestavování výrazů nad aplikačními daty uloženými v Java beans  Syntaxe: ${expression}  ${1} ${"Welcome"} – vrací konstanty  ${name} – vrací hodnotu proměnné name  ${user. } – vrací hodnotu vlastnosti beanu v proměné user  ${user.phone[0]} – vrací první prvek v seznamu telefonů 48

Expression Language – EL 2.1  Možno použít  v těle stránky hodnota výrazu se vypíše na výstup  v atributu tagu možno použít ve standardních i custom atribut musí povolovat runtime výrazy definuje se v popisovači knihovny tagů TLD prvkem true/false 49

EL - příklad 50

JSP dokumenty  JSP dokumenty jsou JSP stránky psané v XML  Tímto vyjádřením se získá řada výhod  K editaci lze použít běžné XML editory  Stránky lze validovat oproti schématu (DTD, XSD)  Lze využít jmenných prostorů pro oddělení a vnoření různých obsahů  Přehlednost 51

JSP dokument - příklad 52

JSP dokumenty – analogie s JSP  Kořenový prvek je  Direktivy jsou vyjádřeny prvky, kde XXX je direktiva   EL výrazy se používají obdobně  Knihovny tagů se importují pomocí jmenných prostorů  xmlns:c="  Skriptlety se píší do těla tagu 53