L'oggetto
Request gestisce il flusso dal Browser.
Consente di recuperare informazioni fornite dall'utente corrente
o relative all'utente corrente; consente inoltre di accedere
a tutte le informazioni passate in una richiesta HTTP.
Le richieste HTTP includono informazioni sull'utente corrente,
i dati immessi dall'utente prima di eseguire la richiesta
e gli argomenti che indicano al server Web la modalità
di elaborazione e di risposta alla richiesta.
Sintassi:
Request[.collection|property|method](variable) |
L'oggetto
Request: Collections |
Collections
|
Significato
|
ClientCertificate |
il
valore dei campi memorizzati nel Certificato del
Cliente inviato con la richiesta HTTP protetta a
server che richiede la certificazione |
Cookies |
il
valore di coookies inviati con la richiesta HTTP |
Form |
il
valore dei campi del Form inviato con la richiesta HTTP |
QueryString |
il
valore delle variabili della query HTTP |
ServerVariables |
il
valore di variabili predeterminate |
Non
esamineremo adesso ClientCertificate, rimandando l'argomento
alla lezione sulla Sicurezza.
Cookies:
Sintassi:
Request.Cookies(cookie)[(key)|.attributo] |
cookie
specifica a quale cookie accedere
key: parametro opzionale; la chiave contenuta nel cookie
della quale restituire il valore
attributo: sono consentiti i parametri:
HasKeys:
se il cookie contiene chiavi
Se il cookie contiene chiavi e non vengono specificare viene
restituita una stringa del tipo :
nomekey1=valorekey1&nomekey2=valorekey2... etc.
Si utilizzano i Cookies per memorizzare informazioni sull'utente;
un caso tipico sono i login a portali, community, forum; ad
esempio se abbiamo memorizzato nel cookie ForumASP763 il nickname
nella chiave UserID, la password nella chiave Pwd e l'indirizzo
e-mail nella chiave EMail potremo nella pagina ASP a cui indirizziamo
dopo il login mettere:
<b>Bentornato
<% Request.Cookies("ForumASP763")(UserID)
%> !</b><br> |
Form:
L'utilizzo più comune dell'oggetto Request è
per recuperare informazioni da un form HTML, ad esempio tutti
gli elementi del form restituiti in un evento Submit.
Sintassi:
Request.Form(elemento)[(indice)|.Count] |
elemento:
specifica il nome dell'elemento del Form a cui accedere
indice: parametro opzionale; se elemento è una
Collection specifica a quale accedere, da 1 a Request.Form(elemento).Count
Ad
esempio il codice seguente scrive nella pagina HTML tutti
i parametri passati ed i loro valori:
<%
For Each x In Request.Form
Response.Write x
If Request.Form(x).Count = 1 Then
Response.Write " = " & Request.Form(x) &
"<br>"
Else
Response.Write "<br>"
For i = 1 To Request.Form(x).Count
Response.Write " (" & i & ") =
" & Request.Form(x)(i) & "<br>"
Next
End if
Next
%>
|
QueryString
Sintassi:
Request.QueryString(variabile)[(indice)|.Count] |
variabile specifica il nome della variabile della riga di
comando a cui accedere
indice opzionale; se variabile è una Collection specifica
a quale accedere, da 1 a Request.QueryString(variabile).Count
Se
ad esempio la nostra pagina si chiama paginadb1.asp e gestisce
un Database secondo le richieste che gli vengono inviate da
altre pagine con un formato che comprende il parametro cmd
che specifica il tipo di azione ed eventualmente il parametro
id che, nei casi necessari, specifica il record su cui agire
avremo delle chiamete del tipo: pagina1.asp?cmd=list oppure
pagina1.asp?cmd=delete&id=127 ed il codice di pagina1.asp
sarà del tipo:
<%
sCommand = UCase(Trim(Request.QueryString("cmd")))
Select Case sCommand
Case "LIST":
ListRecord
Case "ADD":
AddRecord
Case "DELETE":
DeleteRecord
Case "VIEW":
ViewRecord
Case "EDIT":
EditRecord
Case Else
ListRecord
End Select
%> |
ovviamente
in tutte le Subroutines eccetto ListRecord avremo bisogno
della chiave primaria del record che dovrà esserci
stata fornita tramite il parametro id; pertanto in quelle
Subroutines utilizzeremo:
Trim(Request.QueryString("id")) |
controlleremo che la sua lunghezza non sia zero, respingendo
in tal caso la richiesta, e ne utilizzeremo il valore per
effettuare le operazioni necessarie.
ServerVariables
Sintassi:
Request.ServerVariables(variabile
ambiente del server) |
I
nomi delle variabili sono prefissati dal Sistema; non le esaminiamo
in dettaglio (alcune servono per usi molto particolari) ma
vediamone un esempio:
sRootURL = "http://"
& Request.ServerVariables("SERVER_NAME")
_
& Request.ServerVariables("SCRIPT_NAME") |
avremo
in sRootURL l'indirizzo completo assoluto della pagina in
cui eseguiamo lo script; lo potremo ad esempio usare per inviare
una nuova richiesta della nostra pagina con un comando e l'indirizzo
sarà ad esempio sRootURL & "?cmd=PIPPO"
L'oggetto
Request: Proprietà |
Proprietà
|
Significato
|
TotalBytes
|
(solo
lettura) restituisce il nunero di bytes inviati
al server dalla richiesta |
L'oggetto
Request: Metodi |
Metodi
|
Significato
|
BinaryRead
|
restituisce
in forma binaria i dati inviati al server dalla
richiesta POST |
In
particolare non viene effettuata la transcodifica dei dati:
ogni byte può quindi contenenere qualsiasi valore da
0 a 255, non solo quelli corrispondenti a caratteri validi;
da usare quindi con estrema attenzione e solo in casi molto
particolari.
Si
ringrazia per l'articolo Paolo Malesci |
|