Caché Server Pages David Polách, 2004

Slides:



Advertisements
Podobné prezentace
Přístup k databázím z WWW
Advertisements

Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
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.
HTTP server HTTP server 1 Jak to funguje?
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í
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
C# pro začátečníky Mgr. Jaromír Osčádal
Návrh a tvorba WWW Cvičení 6
Programování v C++ Cvičení.
XHTML Tvorba webových stránek. Vývoj značkovacích jazyků HTML – HyperText Markup Language  Značkovací jazyk pro vytváření www stránek. Pomocí značek.
Adobe Dreamweaver CS4 Ing. Martin Dosedla.
Tvorba webových aplikací
1IT T ŘI PILÍŘE WEBU Ing. Jiří Šilhán. T ŘI PILÍŘE WWW WWW využívá počítačovou architekturu Klient/server, uživatel musí mít nainstalován prohlížeč, který.
Internetové technologie Informatika pro ekonomy II přednáška 8.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Návrh a tvorba WWW Přednáška 1
PHP – Základy programování
Objektové programování
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Tomáš Urych, ESO9 Intranet a.s.
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
ActionScript Moderní počítačové aplikace. Charakteristika Je odvozen od JavaScriptu Integruje do Flashe interaktivní ovládání Umožňuje vytvořit přehledné.
DIGITÁLNÍ UČEBNÍ MATERIÁL Číslo projektuCZ.1.07/1.5.00/ Název projektuEU peníze středním školám Masarykova OA Jičín Název školyMASARYKOVA OBCHODNÍ.
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ě.
Proměnné v PHP Každý programovací jazyk pracuje s nějakými hodnotami. To, do čeho se tyto hodnoty ukládají, se nazývá proměnné. Každý programovací jazyk.
Návrh a tvorba WWW Cvičení 4
Dokumentace objektů a zveřejnění funkcí
Představujeme Ensemble Michal Tomek. Na tomto obrázku vidíte, co systému Ensemble chybí:
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í.
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.
Cross-Site Request Forgery Prezentace k přednášce o CSRF útocích Připraveno pro SOOM session #
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Dynamické dokumenty na straně serveru Informatika pro ekonomy II přednáška 8.
PROGRAMOVÁNÍ V PHP PERSONAL HOME PAGES SESSIONS. 2 COOKIES JEDNÁ SE O KRÁTKÉ TEXTOVÉ ŘETĚZCE, JEŽ SI MEZI SEBOU VYMĚŇUJÍ WEBOVÝ SERVER A WEBOVÝ KLIENT.
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á,
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
Využití ZEN reportů ve Facility Managementu Petr Nádvorník
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.
URL v HTML URL - Unique Resource Locator Příklad:
Úvod do PHP IZI 228.
IDEA Web Systém 5.0 Pavel Bezstarosti IDEA spol. s r.o
Akademie ZENU Ukázková aplikace. Tak o tomhle to nebude…
Delphi a databáze MS SQL Server.
Pohled uživatele.
Internetové technologie Informatika pro ekonomy přednáška 7.
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 ?
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
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,
Publikujeme s Autodesk MapGuide v.5.0 Ing. Jan Růžička, Dr. Ing. Jiří Horák VŠB-Technická univerzita Ostrava
Internetové technologie Informatika pro ekonomy přednáška 7.
Internet. je celosvětový systém navzájem propojených počítačových sítí („síť sítí“), ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů.
Zabezpečení – CSRF, XSS Tomáš Hulák, Miroslav Kořínek.
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
WWW a HTML Základní pojmy Ivo Peterka.
as4u advanced system for you
WWW a HTML Základní pojmy Ivo Peterka.
Internetové technologie
Internetové publikování Dynamické HTML
TNPW1 JavaScript Ing. Jiří Štěpánek.
Web Application Scanning
Transkript prezentace:

Caché Server Pages David Polách,

Přehled témat Úvod, architektura, konfigurace Možnosti vývoje – %CSP.Page, CSP soubory CSP direktivy a tagy Základní třídy %CSP.Page %CSP.Request %CSP.Response %CSP.Session

Co je CSP Caché Server Pages Technologie dynamických stránek … build and deploy high-performance, highly-scalable Web applications … Používá standardní HTTP protokol Vestavěná podpora základních funkcionalit Relace Autentizace Šifrování parametrů Rychlý přístup ke Caché DB

Architektura Standardní web servery (IIS, Apache, Caché HTTP) Modul webserveru pro přesměrování požadavků CSP server pro zpracování požadavku Výstup nemusí být jen HTML XHTML XML Dle fantasie

Možnosti vývoje (1) Odvození nové třídy od %CSP.Page Definice metody OnPage (a dalších) Standardní výstup přesměrován na HTTP odpověď Příklad – Potomek %CSP.Page

Možnosti vývoje (2) CSP soubory Lze použít libovolný (HTML) editor Speciální tagy, direktivy a skripty Soubor je zkompilován do potomka třídy %CSP.Page Příklad – CSP soubor

Příklad kompilace Zdrojový hello.csp: Hello world Zkompilovaná třída: Class csp.hello extends %CSP.Page { ClassMethod OnPage() As %Status { Write " " Write " Hello world " Write " " Quit $$$OK }

Typy kompilace Automatická Kontrola data souborů Případná rekompilace U reálných aplikací nevhodné (kontrola data) Manuální Caché studio $system.CSP API: $system.CSP.LoadPage("/page.csp","ck") Rychlost + kontrola chyb

CSP značkovací jazyk (1) Sada direktiv a speciálních tagů Caché Basic nebo Caché Object Script Zvolený jazyk je platný pro skripty a metody na celé stránce (bude dále) Příklad – CSP značky (ex1markup.scp)

CSP značkovací jazyk (2) Výrazy, vnořování CSP tagy CSP skripty CSP metody Serverové metody (hyper-události)

Výrazy Vyhodnocované na serveru Při generovaní stránky #(výraz)# Při kompilaci stránky ##(výraz)## Jazyk dle definice na stránce! Příklad – typy výrazů (ex2expr.csp)

Vnořování Vložení obsahu externího souboru Virtual – použití virtuálního adresáře File – relativní cesta vzhledem k CSP souboru Příklad – vnoření obsahu (ex3include.csp)

CSP tagy Kontrola běhu … …, Vlastnosti stránky, SQL dotazy,, Další,,, …

Podmíněný příkaz … … … Podmínky se vyhodnocují při generování stránky

Cyklus s podmínkou <CSP:WHILE CONDITION=podmínka COUNTER=čítač CURSOR=sql_kurzor INTO=proměnné> [ | ] Pouze podmínka je povinná Je-li uveden čítač, zvyšuje se jeho hodnota o jedna při každé iteraci cyklu Spolupráce s SQL: INTO obsahuje seznam parametrů, do kterých se uloží nová věta z uvedeného kurzoru

Cyklus FOR <CSP:LOOP COUNTER=čítač FROM=start TO=konec STEP=krok> [ | ] Pouze čítač je povinný Zbylé atributy intuitivně ovlivní FOR cyklus

Příklad – Kontrola běhu Definujme následující globál: ^users(“login”, “name”) = “Celé jméno“ ^users(“login”, “hello”) = “Pozdrav“ ^users(“login”, “pass”) = “heslo“ Příklad – přihlášení do systému (ex4log.csp) Příklad – cyklus (ex5cycle.csp)

Vnořovaní přes tag Vnoření CSP stránky během generování „… použití komponenty …“ Příklad – vnořování (ex6taginclude.csp)

Vlastnosti stránky (1) <CSP:CLASS DOMAIN=… ENCODED=… ERRORPAGE=… EXPIRES=… IMPORT=… INCLUDES=… PRIVATE=… SUPER=… DESCRIPTION=…> Encoded = šifrování URL parametrů (0 … nešifrovat, 1 … šifrovat, 2 … šifrovat + odebrat nešifrované) Příklad – šifrování parametrů (ex7enc.csp)

Vlastnosti stránky (2) Private – boolean hodnota určuje, zda: Stránka zahajuje novou relaci Má pevné URL Private stránky mohou být odkazovány jen z jiných CSP stránek v rámci stejné relace Příklad – private stránka (ex8private.csp)

Obsah stránky <CSP:CONTENT CHARSET=… NOCHARSETCONVERT=… TYPE=…> Charset – kodování Nocharsetconvert – vypíná znakové konverze Type – mime typ (implicitně text/html ) Příklad – změna typu (ex9type.csp)

CSP skripty Provádění akcí na straně serveru Při generování Při kompilaci Jazyk skriptu musí být dle nastavení stránky … tělo skriptu … Příklad – server vs. compiler (ex10scr.csp)

CSP metody (1) Definování serverových metod Metoda náleží třídě vygenerované z CSP stránky Jméno, parametry, návratová hodnota Jazyk nemusí být podle jazyku stránky

CSP metody (2) <script language="[cache|basic]" method="jméno_metody" arguments="parametry" returntype="typ_výsledku"> … tělo metody … Příklad – CSP metoda (ex11methods.csp) Příklad – CSP metoda jiné stránky (ex12methods.csp)

SQL dotazy SELECT Name FROM Employee ORDER BY Name Použití výsledků dotazu: #(query.GetData(1))#

Hyper-události (1) Volání metod na Caché serveru bez nového generování stránky Vyvolání metody pomocí JavaScriptu Zpracování na serveru Zobrazení výsledku na té samé stránce Dva způsoby: Synchronní volání Asynchronní volání

Hyper-události (2) Jak to může fungovat? Stránka obsahuje Java applet JavaScript aktivuje metodu appletu a ten se spojí s Caché serverem (pomocí HTTP) Server provede metodu Stejnou cestou se vrací výsledek JavaScript nějakým způsobem zareaguje na výsledek metody (v synchronním případě)

Hyper-události (3) Synchronní případ: #server(třída.metoda(parametry, …))# Parametry lze zadat v JavaScript sekci Příklad – hyper-událost server (ex13server.csp)

Hyper-události (4) Asynchronní případ: #call(třída.metoda(parametry, …))# Rozdíl oproti volání #server: Nepoužívá se applet ale HTTP požadavek (pomocí IFRAME nebo ILAYER ) Je rychlejší (nečeká se na provedení metody) Příklad – hyper-událost call (ex14call.csp)

Hyper-události (5) Výhody: Vypadá to dobře Negeneruje se celá stránka (zvlášť u složitých stránek bude znát) Složitější validace formuláře pomocí metod aplikačního serveru Asynchronní akce lze provádět bez omezení uživatele (nečeká na novou stránku)

Hyper-události (6) Nevýhody: Stránka se načítá pomaleji (inicializace appletu) Časté používání není doporučováno Use as few #server and #call calls as possible Volání metody dříve, než se applet incializuje, vede k chybě Porušuje standardy (XHTML, W3C) Nefunguje v Netscape 6.0, 6.1 a Macintosh IE Rychle zopakované #call volání může přerušit volání předchozí

Objektový přístup Přehled základních tříd %CSP.Page %CSP.Request %CSP.Response %CSP.Session

Třída %CSP.Page (1) Univerzální předek všech uživatelských tříd Výstup přesměrován na HTTP odpověď Lokálních proměnné %request, %response, %session Vyřízení požadavku obstará metoda Page OnPreHTTP OnPage OnPostHTTP

Třída %CSP.Page (2) Sada metod pro práci s parametry ConvertParameter, Decrypt, Encrypt Metody pro bezpečnou práci s uživatelským vstupem EscapeHTML, UnEscapeHTML, QuoteJS Ovlivnění vlastností stránky ( ) Zpracovávání hyper-událostí

Třída %CSP.Request Zapouzdřuje HTTP požadavek Typ požadavku (GET/POST/HEAD) Parametry (multidimensionální) %request.Data(“jméno“, pořadí) Cookies Mime data CGI proměnné prostředí %request.CgiEnvs("HTTP_USER_AGENT") Příklad – HTTP požadavek (ex15Request.cls)

Třída %CSP.Response Zapouzdřuje HTTP odpověď HTTP hlavičky Cookies Pozor na pořadí! ( OnPreHTTP ) Typ obsahu ( ) Několik pomocných metod (timeout, redirect/server-side redirect, …)

Třída %CSP.Session (1) Relace = posloupnost požadavku daného klienta na danou aplikaci Relace zahájena automaticky při prvním přístupu Postup při vytváření relace: Vytvoření nového ID relace Kontrola licencí (počtu připojení) Vytvoření nové instance %CSP.Session Zavolání metody OnSessionStart Cookie přenos vs. URL přepis

Třída %CSP.Session (2) Třída je persistentní (globál ^%cspSession ) Způsoby ukončení (vypršení) relace: Klient je ukončen Timeout relace Explicitní ukončení Set %session.EndSession=1 Po ukončení se volá metoda OnSessionEnd

Třída %CSP.Session (3) Typické použití relací: Uchovávání uživatelských dat (multidimensionální) %session.Data(…) Pomocí klíče relace se šifrují parametry (viz. encoded stránky a private stránky) … This key never leaves Cache … Zavedení stavové informace mezi jednotlivé HTTP požadavky

Relace příklad - eshop Definujme následující globál: ^store(“číslo“) = jméno_výrobku ^store(“číslo“,“desc“) = popis_výrobku ^store(“číslo“,“price“) = cena_výrobku ^store(“číslo“,“cnt“) = ks_na_skladě cílem bude procházení skladem, přidávání a odebírání zboží do/z košíku Příklad – eshop (ex16eshop.csp)

Závěrečné shrnutí CSP je: Rychlé a silné Jednoduché (jednoduchý přechod od JSP) Umožňuje rychlý vývoj Naplno využívá výhod Caché serveru Co lze vytknout: Hyper-události porušují standardy Rozšíření (lze sehnat WWW hosting s Caché serverem?)