Vediamo cosa si può fare con i pezzi di ASP, l'oggetto  Response + l'oggetto Request.

Usando il metodo Write del Response siamo in grado di scrivere sullo schermo. Usando il Request siamo in grado di leggere dallo schermo.

Per riferimento vi mostro il modello dell'oggetto Request:
Proprieta : TotalBytes
Collections : ClientCertificate, Cookies, Form, QueryString, ServerVariables
Metodi : BinaryRead

Come col Lego, con questi due oggetti siamo in grado di costruire un ponte fra una pagina e l'altra.

Cominciamo col costruire una pagina che raccoglie l'input da una form e restituisce una risposta appropriata.
Chiamiamola il file chiedimi.asp

<html><head><title>Chiedimi</title></head>
<body>
<%
Response.Write "<form action='rispondimi.asp' method='post'><br>"
Response.Write "come ti chiami?"
Response.Write "<input type='text' name='nome'><br>"
Response.Write "di che citta' sei?"
Response.Write "<input type='text' name='citta'><br>"
Response.Write "<input type='submit' value='dimmelo'>"
Response.Write "</form>"
%>
</body>
</html>

Vedi subito cosa succede qui, no? Naturalmente avremmo potuto scrivere questo senza ASP, direttamente in HTML ma volevo solo farti vedere cosa si può fare con il Response.

Adesso costruiamo una pagina per la risposta chiamiamola rispondimi.asp.
Lo so che il Request lo abbiamo appena guardato ma, sono sicuro che capirai, dopo lo guarderemo più in dettaglio.

<html><head><title>Rispondimi</title></head>
<body>
<%
nome = Request.Form("nome")
citta = Request.Form("citta")
Response.write "Ciao " & nome & ",<br> Oooh, " & citta & "&46;&46;&46;, mi piacerebbe venire&46;&46;&46;<br>"
%>
</body>
</html>

Semplice no?
L'oggetto Request funziona con un gruppo di collezioni di dati.
In questo caso l'input dalla pagina precedente è dentro alla collezione Form. Poiché noi sappiamo già i nomi dei campi li possiamo chiamare direttamente ma se non li sapessimo, potremmo trovarli così:

<html><head><title>Rispondimi</title></head>
<body>
<%
'per ogni dato nella collezione scrivi dato e valore del dato
For each dato in Request.Form
Response.Write dato & " = " & Request.Form(dato) & "<br>"
Next
%>
</body>
</html>

Questo modo ha il vantaggio di accedere il nome del controllo insieme con il valore. Per esempio se sono io che rispondo, il programma restituisce:

Nome = Giorgio
Citta = Surfers Paradise

Il ponte è fatto no?
È facile passare valori da un pagina all'altra con ASP?

Non è comunque l'unico modo per passare variabili da una pagina a un'altra. Dopo tutto non possiamo mettere form dappertutto e non sempre le variabili che vogliamo passare hanno a che fare con i nostri utenti. Spesso abbiamo bisogno di mandare delle flags per avvertirci su che corso prendere in dipendenza da un valore o un altro.
Per esempio se volessimo combinare i due file chiedimi.asp e rispondimi.asp in uno solo, potremmo farlo? E se la risposta è sì, come facciamo?

Segue domanda_rispondi.asp

<html><head><title>Domanda e Rispondi</title></head>
<body>
<%
clickato = Request.Querystring("clickato")
'se cliccato ha un valore, il cliente ha cliccato il bottone della form
If clickato then
nome = Request.Form("nome")
citta = Request.Form("citta")
Response.write "Ciao " & nome & ",<br> Oooh, " & citta & "&46;&46;&46;, mi piacerebbe venire&46;&46;&46;<br>"
Else
'altrimenti è appena entrato in questa pagina
Response.Write "<form action='domanda_rispondi.asp?clickato=true' method='post'>"
Response.Write "come ti chiami?"
Response.Write "<input type='text' name='nome'><br>"
Response.Write "di che citta' sei?"
Response.Write "<input type='text' name='citta'><br>"
Response.Write "<input type='submit' value='dimmelo'>"
Response.Write "</form>"
end if
%>
</body>
</html>