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

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

Caché Server Pages David Polách, 2004

Podobné prezentace


Prezentace na téma: "Caché Server Pages David Polách, 2004"— Transkript prezentace:

1 Caché Server Pages David Polách, 2004 http://cache.polach.info

2 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

3 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

4 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

5 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

6 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

7 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 }

8 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

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

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

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

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

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

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

15 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

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

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

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

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

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

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

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

23 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

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

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

26 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í

27 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ě)

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

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

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

31 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í

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

33 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

34 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í

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

36 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, …)

37 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

38 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

39 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

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

41 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?)


Stáhnout ppt "Caché Server Pages David Polách, 2004"

Podobné prezentace


Reklamy Google