In principal toata functionalitatea ASP-ului consta in citeva obiecte:
- Request
- Response
- Server
- Application
- Session
- ObjectContext
Vom analiza pe rind toate proprietatile, metodele si evenimentele acestor obiecte.
Request- este folosit pentru a manipula informatiile trimise de catre client la serverul de web.
Colectii:
ClientCertificate - folosit pentru certificate de securitate in comunicatia cu diverse site-uri folosind protocolul SSL (sau PCT).
Forma generala:
Request.ClientCertificate (Cheie[SubCheie] )
Toate valorile cheilor si subcheilor se pot afla in help.
Cookies - folosit pentru citirea cookies-urilor in paginile web.
Cookies-ul este o mica informatie salvata pe calculatorul client (nu pe server) care poate fi utilizata de paginile respective si care nu este vizibila altor site-uri. In cookies se pot pastra diverse informatii. S-a recurs la aceasta solutie deoarece protocolul HTTP folosit in comunicatia dintre client si server pe Internet este "stateless" (fara mentinerea unor stari de la o pagina la alta in cadrul aceluias site). Cookies-urile se pot activa sau dezactiva din browserul de internet. Este foarte important ca acestea sa fie activate atunci cind se folosesc obiectele Application sau Session. Prin intermediul acestei colectii se pot scrie sau citi informatiile pastrate in cookies-urile
asociate site-ului.
Forma generala:
Request.Cookies(nume_cookie)[(cheie)|.atribute]
Exemplu:
<%= Request.Cookies("myCookie") %>
Form - prin acest obiect avem acces la valorile cimpurilor postate dintr-un form.
Forma generala:
Request.Form(element)[(index)|.Count]
element - numele elementului din forma
index - incepe de la 1
Exemplu:
<HTML>
<BODY>
Salut <%= Request.Form("nume") %><p>
<FORM ACTION = "exemplu.asp" METHOD = "post">
Dati numele: <INPUT NAME = "nume"> <INPUT TYPE = SUBMIT>
</FORM>
</BODY></HTML>
Deoarece Form este colectia "default" a obiectului se putea scrie Request("nume").
QueryString - permite accesul la parametrii paginii transmisi in cererea HTTP dupa caracterul "?" (separati de "&").
Forma generala:
Request.QueryString(nume_variabila)[(index)|.Count]
Exemplu:
Pentru < A HREF= "exemplu.asp?string1=orice&string2=altceva">
Exemplu:
Request.QueryString("string1") o sa returneze "orice", iar Request.QueryString("string2") o sa fie "altceva".
ServerVariables - permite accesul la citiva parametri caracteristici ai serverului de web sau a cererii HTTP curente.
Exemplu:
<%= Request.ServerVariables("SERVER_NAME") %>
<%= Request.ServerVariables("REMOTE_HOST") %>
Lista completa a parametrilor poate fi gasita in help.
Proprietati:
TotalBytes - (read-only) contine numarul de biti din corpul cererii facute de client.
Metode:
BinaryRead - permite citirea binara a cererii trimisa de catre client la serverul de web prin metoda POST.
Response - este folosit pentru a manipula informatiile trimise de catre serverul de web la client.
Colectii:
Cookies - folosit pentru a scrie informatii in cookies asociate unui site.
Forma generala:
Response.Cookies(nume_cookie)[(cheie)|.atribute] = valoare
Exemplu:
<% Response.Cookies("myCookie") = "orice text" %>
Pentru aceste cookies se poate seta intervalul de timp cit sint functionale sau domeniul pentru care sint valabile. Este foarte important ca scrierea unui cookie sa se faca inainte body-ul documentului (<BODY>) deoarece este transmis clientului in HEAD-ul documentului.
Proprietati:
Buffer - este folosit pentru a pastra sau nu raspunsul catre client intr-un bufer pina cind se apeleaza metoda Flush sau End. In acest fel nu va fi afisat nimic in browser pina la terminarea prelucrarilor in pagina ASP.
Forma generala:
Response.Buffer [ TRUE | FALSE]
CacheControl- specifica daca paginile generate pot fi pastrate in diverse cache-uri pe parcursul drumului spre calculatorul client.
Forma generala:
Response.CacheControl [ Private | Public]
Charset - adauga in headerul raspunsului catre client si un alt set de caractere.
ContentType - tipul raspunsului trimis catre client. De obicei e "text/HTML" (sau "image/GIF" sau "image/JPEG" atunci cind se trimite spre browser o imagine).
Expires - numarul in minute dupa care pagina expira in cache-ul browserului.
ExpiresAsolute - data cind pagina expira in cache-ul browserului.
IsClientConnected - specifica daca clientul este conectat sau nu de la ultimul Response.Write.
PICS - adauga un comentariu PICS in headerul raspunsului
Status - starea raspunsului care poate fi trimisa catre browserul client.
Exemplu:
<% Response.Status = "401 Unauthorized" %>
Metode:
AddHeader - folosit pentru adaugarea unei variabile in headerul
transmis la client. Se poate folosi doar inainte de <BODY>.
Forma generala:
Response.AddHeader nume,valoare
AppendToLog - adauga un string la log-ul serverului web.
BinaryWrite - trimite cod binar la client.
Clear - sterge buferul paginii ASP
End - opreste prelucrarea paginii ASP si trimite pagina la browser in starea in care este.
Flush - trimite pagina la browser in starea in care este.
Redirect - redirecteaza pagina spre alta pagina. Se poate folosi doar inainte de <BODY> sau daca este dupa acesta pagina spre care este redirectata nu trebuie sa mai aiba <BODY>
Write - scrie un string care va fi trimis catre client.
Exemplu:
<HTML><BODY>
<%Response.Write "acesta este un test"%>
</HTML>"
Server - folosit in special pentru citeva functii foarte importante
Proprietati:
ScriptTimeout - intervalul de timp maxim in secunde cit poate rula pagina ASP inainte de a rezulta un mesaj de eroare.
Exemplu:
Server.ScriptTimeout = 30
Metode:
CreateObject - folosit pentru crearea unui obiect COM ce va putea fi utilizat de catre scriptul ASP. Aceste obiecte pot fi create cu orice limbaj care "stie" COM: Visual Basic, VC++, Delphi, etc. Ele pot implementa diverse functii privind functionalitatea site-ului.
Forma generala:
Server.CreateObject (ProgID)
Exemplu:
lt;% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>
Distrugerea obiectului creat se poate face astfel: lt;% Set MyAd = Nothing %>
Probabil cel mai important obiect care este folosit este ADO (ActiveX Data Objects) pentru accesul la diverse baze de date: MS SQL Server, Access, Oracle, etc.
HTMLEncode - codifica un string in format HTML.
Exemplu:
<%= Server.HTMLEncode("Paragraf nou: <P>") %>
Va rezulta: Paragraf nou: <P>
MapPath - mapeaza o cale virtuala catre directorul aferent pe HDD.
Exemplu:
<%=Server.MapPath(Request.ServerVariables("PATH_INFO"))%>
Va rezulta (de exemplu): c:inetpubwwwrootscripttest.asp
URLEncode - codifica un string in format URL, pentru a putea fi transmis ca parametru dupa caracterul "?" din adresa.
Exemplu:
Server.URLEncode("http://www.microsoft.com")
Va rezulta: http%3A%2F%2Fwww%2Emicrosoft%2Ecom
Application - folosit pentru a pastra informatii pentru toti utilizatorii de la un moment dat al aplicatiei. Pentru a evita scrierea simultana a informatiilor din acest obiect de catre 2 utilizatori se folosesc metodete Lock / Unlock pentru blocarea/deblocarea accesului la aceste informatii.
Colectii:
Contents - cuprinde toate elementele adaugate pe baza unei chei sau
a elementelor create cu Server.CreateObject. Acestea se pot atit citi
cit si scrie.
Exemplu:
<% Application.Contents("strHello") = "Hello"
Set Application("objCustom") = Server.CreateObject("MyComponent")
Response.Write Application("strHello") %>
Aceasta e colectia default asa ca Application.Contents("strHello") respectiv Application("strHello") este acelasi lucru.
StaticObjects - reprezinta obiectele create cu <OBJECT> si este similat cu colectia Contents.
Metode:
Lock, Unlock - descris mai sus: pentru a impiedica modificarea simultana a unor valori de catre 2 useri.
Session - este asemanator cu Application dar este specific pentru fiecare user in parte. Poate fi utilizat pentru a pastra niste valori pe toata durata utilizarii aplicatiei de catre un user. Atit Session cit si Application pot fi utilizate doar daca userii au activat suportul pentru cookies in browserul de internet.
Colectiile Contents si StaticObjects sint asemenatoare cu cele de la Application.
Proprietati:
CodePage - codul paginii de caractere folosit
LCID - identificator local pentru formatarea numerelor si datei. Exemplu: Session.LCID=2057 va formata numerele si data in stil britanic.
SessionID - un identificator al sesiunii de lucru
Timeout - intervalul de timp in minute dupa care va expira obiectul Session, iar valorile continute se pierd.
Metode:
Abandon - abandoneaza o sesiune se lucru si distruge valorile continute.
ObjectContext - reprezinta contextul in care ruleaza obiectele COM care functioneaza sub Microsoft Transaction Server (MTS), context care poate stabili daca o tranzactie a fost incheiata cu succes sau nu. Are 2 metode: SetAbort - pentru a semnala ca o tranzactie a esuat, respectiv SetComplete - daca tranzactia a fost incheiata cu succes.