Sei in: Per i Webmaster - Corso di ASP - Oggetto request
L'oggetto Request, al contrario di Response, è utilizzato per recuperare informazioni di vario genere, vengano esse dal client che richiede una pagina o siano esse relative al server stesso. Come per l'oggetto Response vediamo il riassunto veloce dei metodi, delle proprietà e delle collection:
Collections:
ClientCertificate
Cookies
Form
QueryString
ServerVariables
Properties:
TotalBytes
Methods:
BinaryRead
La
sintassi generica dell'oggetto Request è la
seguente:
Request.[collection|property|method](variable)
I
parametri variabili sono stringhe che specificano l'elemento da recuperare
da una collection o da usare come input per un metodo o una proprietà.
Tutte le variabili possono essere recuperate tramite la sintassi
Request(variable) senza fare riferimento alla collection. In questo caso
il server cerca all'interno delle collection in questo ordine:
- QueryString
- Form
- Cookies
- ClientCertificate
- ServerVariables
Vediamo ora alcuni esempi di codice vero e proprio. Supponiamo che all'interno di una pagina vi sia la seguente istruzione:
...
<a
href="page.asp?valore1=15&valore2=20">Apri
page.asp</a>
...
La parte di codice scritta in grassetto significa che oltre a definire il nome della pagina che si vuole aprire, in questo caso page.asp, si effettua anche un passaggio di una variabile che si chiama valore1 che contiene 15 e di una variabile di nome valore2 che contiene 20. Vediamo allora qual'e l'istruzione da scrivere in page.asp per recuperare queste informazioni e magari scriverle a video:
<%
Dim strValore1,
strValore2
strValore1 =
Request.QueryString("valore1")
strValore2 =
Request.QueryString("valore2")
Response.Write
"valore1 vale: " & strValore1 & "<br>"
Response.Write
"valore2 vale: " & strValore2
%>
Un altro modo per ottenere le stesse informazioni è quello di sfruttare il fatto che si tratti di collection, nel seguente modo:
<%
Dim Item
For Each Item In
Request.QueryString
Response.Write Item " vale: " & Request.QueryString(Item) &
"<br>"
Next
%>
La stessa collection si utilizza quando si vogliono
recuperare dati passati tramite un form con il metodo GET. Nel caso in cui
invece il form sia inviato col metodo POST, allora si utilizza la
collection Form dell'oggetto Request.
Supponiamo di avere il seguente
form all'interno di una pagina web:
...
<form method="POST" action="page.asp">
Nome: <input type="text" name="nome"><br>
Cognome: <input type="text" name="cognome"><br>
<input type="submit" value="Invia dati">
</form>
...
Questo è il codice che si potrebbe usare per recuperare le accoppiate variabile/valore:
<%
Dim Item
For Each Item In
Request.Form
Response.Write Item & " vale: " & Request.Form(Item) &
"<br>"
Next
%>
oppure
...
<p>
Nome: <% =
Request.Form("nome") %><br>
Cognome: <% =
Request.Form("cognome") %>
</p>
...
Per leggere tutte le variabili di ambiente tramite la collection ServerVariables si può utilizzare sempre un ciclo For Each... Next e vedere di cosa si tratta.
<%
Dim Item
For Each Item In
Request.ServerVariables
Response.Write Item & ": " & Request.ServerVariables(Item) &
"<br>"
Next
%>
Nel caso in cui si abbia la necessità di una sola variabile di ambiente o di alcune variabili, si può fare riferimento alle singole:
<%
Dim strUserAgent,
strRemoteAddr
strUserAgent =
Request.ServerVariables("HTTP_USER_AGENT")
strRemoteAddr =
Request.ServerVariables("REMOTE_ADDR")
Response.Write
"Browser in uso sul client: <b>" & strUserAgent &
"</b><br>"
Response.Write "IP
number del client: <b>" & strRemoteAddr &
"</b>"
%>
In questo caso abbiamo letto che tipo di browser è in uso sulla macchina del client e l'IP number della sua connessione e li abbiamo riscritti a video in grassetto.
