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", ...)
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 <
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é:
Direktivy slouží k informaci webovému serveru pro určení jak zpracovat skript. Zadávají se: <%@ DIREKTIVA = Hodnota%>
CODEPAGE - číslené nastavení znakové sady
ENABLESESSIONSTATE - zapíná (True - výchozí) nebo vypíná (False) ukládání dat o připojení uživatelů (činnost objektu Session)
LANGUAGE - nastavuje výchozí skriptovací jazyk ("VBScript", "JScript", "PerlScript", "Python", "REXX")
LCID - určení formátu data, času apod. pro zobrazení výsledků skriptu
TRANSACTION - určuje zda má server považovat skript za jednu transakci ("Required" - sript vyžaduje transakci, "Requires_New" - skript vyžaduje novou transakci, "Supported" - transakci spouštět, "Not_Supported" - transakci nespouštět
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 -->
#config - konfigurace formátu chybových zpráv
#echo - vloží do klientské stránky HTML hodnotu proměnné prostředí (prvky kolekce ServerVariables objektu Request)
#exec - vkládá výsledek příkazového řádku prostředí nebo aplikace
#flastmod - vkládá datum a čas poslední aktualizace dokumentu
#fsize - vkládá velikost aktuálního dokumentu
#include PathType=FileName - vkládá celý dokument zadaný FileName, PathType určuje zda jde o relativní cestu (File) nebo úplnou virtuální cestu (Virtual). Např. můžeme vložit soubor adovbs.inc s definicí konstant programu VBScript, který dodává firma Microsoft standardně s komponentou ActiveX Data Objects (ADO).
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).