Active server pages - ASP

Active server pages představují jednu z aplikací ISAPI (Internet Server Application Programming Interface) - filtr ISAPI, součást instalace IIS (Internet Information Server), obvykle realizovanou knihovnou ASP.DLL. Slouží k vykonávání skriptů na straně serveru. K programování slouží jazyk VBScript, odvozený od jazyka Visual Basic for Application.

Objektový model obsahuje následjících šest objektů:

Application

Vlastnosti

Žádné

Kolekce

  • Contents - objekty a proměnné (kromě definovaných značkami <OBJECT>) definované na úrovni aplikace
  • StaticObject - objekty definované značkami <OBJECT> na úrovni aplikace

Metody

  • Lock - zabrání ostatním uživatelům ve změnách proměnných v kolekci Contents
  • Unlock - uvolní změny proměnných

Události

  • OnStart - nastává po přihlášení prvního uživatele k aplikaci, definuje se v souboru GLOBAL.ASA
  • OnEnd - nastává, pokud se z webového serveru odstraňuje aplikace ASP

ObjectContext

Řízení událostí pomocí Microsoft Transaction Server. Pro použití je nutné aby byl skript transakční (např. direktivou <%@ TRANSACTION = Required%>

Vlastnosti

Žádné

Kolekce

Žádné

Metody

  • SetComplete - signalizuje úspěšné dokončení transakce
  • SetAbort - přeruší transakci jako celek

Události

  • OnTransactionCommit - nastane po úspěšném dokončení transakce a také pokud ve skriptu nenastane metoda SetAbort
  • OnTransactionAbort - nastane po volání metody SetAbort

Request

Vlastnosti

  • TotalBytes - počet Byte odeslaných v těle požadavku HTTP, je možné je přečíst metodou BinaryRead

Kolekce

  • ClientCertificate - přístup k digitálním certifikátům klienta.
  • Cookies - údaje ukládané u klienta metodou Persistent Client State Mechanism (Cookies)
  • Form - informace předané z formuláře metodou POST
  • QueryString - informace předané z formuláře metodou GET nebo voláním ve tvaru:
    stranka.asp?par1=data1&par2=data2a&par2=data2b&...
  • ServerVariables - proměnné v kontextu určitého požadavku HTTP klienta na webový server

Metody

  • BinaryRead - přečtení určeného počtu Byte z těla požadavku HTTP (pak je již není možno přečíst jiným způsobem)

Události

Žádné

Response

Vlastnosti

  • Buffer - určuje zda se výstup skriptu ukládá do zásobníku (True) a pak odesílá najednou po skončení nebo metodou Flush, nebo až najednou (False - výchozí hodnota) - pak metody Clear, End a Flush končí chybou
  • CacheControl - uručuje zda Proxy Severy mohou ukládat stránky ("Public") a zrychlit tak přístup k nim, nebo ne ("Private") což je vhodné pokud se stránky často mění
  • Charset - znaková sada pro odpověď HTTP ("ISO-LATIN-1", ...)
  • ContentType - nastavení hlavičky Content-Type odpovědi HTTP ("text/plain", ...)
  • Expires - čas v minutách po který klient uloží výsledek do mezipaměti, pokud se klient v této době vrátí ke strábce, obdrží ji z mezipaměti a nebude znovu volán server
  • ExpiresAbsolute - Datum a čas do kterého má být stránka uložena v mezipaměti klienta
  • IsClientConnected - informace zda je klient stále připojen (pokud ne je možno ukončit činnost skriptu neboť stejně nebude nikam odeslán)
  • PICS - přidá do hlavičky odpovědi HTTP označení PICS pro hodnocení citlivosti obsahu programy jako NetNanny nebo CyberWatch
  • Status - stavová informace o výsledku práce serveru ("1xx" - informační stavy, "2xx" - úspěšné odpovědi, "3xx" - přesměrování klienta, "4xx" - klientské chyby, "5xx" - serverové chyby)

Kolekce

  • Cookies - odeslání Cookies na klientský počítač

Metody

  • AddHeader - přidání vlastní hlavičky odpovědi HTTP
  • AppendToLog - přidání textu do záznamu aktuálního požadavku klienta na vebovém serveru (do 80 znaků)
  • BinaryWrite - uložení informace do obsahu odpovědi bez konverze znaků (např. odeslání obrázku uloženého v databázi v OLE objektu).
  • Clear - vyprázdní zásobník odpovědi
  • End - ukončí vkládání do zásobníku a odešle ho klientovi
  • Flush - odeslání aktuálního obsahu klientovi (při zpracování rozsáhlých dotazů apod.)
  • Redirect - přesměrování na jinou URL adresu
  • Write - zapsání textu do těla odpovědi HTTP

Události

Žádné

Server

Vlastnosti

  • ScriptTimeout - maximální čas v sekundách po který bude server zpracovávat skript

Kolekce

Žádné

Metody

  • CreateObject - vytvoří instanci objektu na serveru
  • HTMLEncode - převod textu do podoby zobrazitelné na klientovi, např. znak < p5evede na &lt;
  • MapPath - z virtuální nebo relativní cesty určí fyzickou cestu na serveru
  • URLEncode - zakóduje řetězec, aby byl odeslatelný v adresním řádku jako řetězec dotazu

Události

Žádné

Session

Údaje o připojení uživatele (systém je ukládá jako Cookies)

Vlastnosti

  • CodePage - kódová stránka pro zobrazení obsahu (1252 - angličtina a západoevropské jazyky, 1250 - čeština a středoevropské jazyky, ...)
  • LCID - uživatelské nastavení zobrazení určitých informací (datum, čas, ...)
  • SessionID - identifikační číslo uživatele (stejné po celou dobu připojení uživatele)
  • Timeout - doba v minutách, po kterou bude server udržovat informaci o připojení uživatele

Kolekce

  • Contents - objekty a proměnné (kromě definovaných značkami <OBJECT>) definované na úrovni připojení pomocí skriptu
  • StaticObject - objekty definované značkami <OBJECT> na úrovni připojení pomocí skriptu

Metody

  • Abandon - uvolnění informací o uživateli, pokud není volána server bude ukládat informace až do doby vypršení

Události

  • Session_OnEnd - událost nastane při vypršení času připojení nebo volání metody Abandon, obsluha se definuje v souboru GLOBAL.ASA
  • Session_OnStart - událost nastane při připojení nového uživatele, obsluha se definuje v souboru GLOBAL.ASA


Obsluha jednotlivých událostí je definována událostními procedurami uloženými v souboru GLOBAL.ASA. Ten se nachází v kořenové složce virtuální složky úlohy. Současně se zde definují globání objekty a proměnné:

<OBJECT RUNAT=Server SCOPE=Session ID=MyInfo PROGID="MSWC.MyInfo">
</OBJECT>

Direktivy

Direktivy slouží k informaci webovému serveru pro určení jak zpracovat skript. Zadávají se: <%@ DIREKTIVA = Hodnota%>

Direktivy pro vkládání dat se vykonávají před vykonáním skriptu, proto umožňují vkládat do skriptu různé hodnoty (datum poslední úpravy) nebo celé dokumenty. Zadávají se: <!-- #direktiva Parametr -->


Ukázka činnosti ASP

Zjištění stavu objektů

Zjisti stav objektů modelu ASP (zdrojová verze volaného dokumentu)

Předání parametrů metodou GET

Křestní jméno: Příjmení: Adresa: Mám zájem o následující informace: o katedře ATŘ, studijní obory zajišťované katedrou ATŘ, odborné akce pořádané katedrou ATŘ, osobní kontakt. Soubor:

Předání parametrů metodou POST

Křestní jméno: Příjmení: Adresa: Mám zájem o následující informace: o katedře ATŘ, studijní obory zajišťované katedrou ATŘ, odborné akce pořádané katedrou ATŘ, osobní kontakt. Soubor:

Uložení do cookies

Křestní jméno: Příjmení: Adresa: Mám zájem o následující informace: o katedře ATŘ, studijní obory zajišťované katedrou ATŘ, odborné akce pořádané katedrou ATŘ, osobní kontakt. Soubor:

Uložení do proměnných objektu Session

Křestní jméno: Příjmení: Adresa: Mám zájem o následující informace: o katedře ATŘ, studijní obory zajišťované katedrou ATŘ, odborné akce pořádané katedrou ATŘ, osobní kontakt. Soubor:

Instalovatelné komponenty

Komponenty rozšiřují možnosti dynamických aplikací na webu. Mezi nejdůležitější patří komponenta pro přístup k datům v databázích.

ActiveX Data Objects

Komponenta ADO slouží pro přístup k databázím. Principiálně je obálkou automatizace pro OLE DB, které kontaktuje poskytovatele dat (nejčastěji Open DataBase Connectivity - ODBC). ADO poskytuje skriptu objektovou knihovnu pro přístup k datům včetně potřebných metod, zejména možnost výkonu SQL příkazů (Structured Query Language).

Ukázka činnosti ADO (zdrojová verze volaného dokumentu)