Da Wikipedia, l`enciclopedia libera

Modulo 4 – Unità Didattica 1 - Data Base nel Web: 6. ASP. Gli oggetti Request e Response
pag. 20
6.1. Gli oggetti Request e Response
Nelle pagine ASP si possono definire nuovi oggetti, utilizzando i concetti di base della
programmazione ad oggetti o utilizzare oggetti predefiniti.
Request e Response sono due oggetti predefiniti. A pag. 18 abbiamo visto un loro utilizzo, ora
cerchiamo di capire il loro funzionamento.
6.1.1. Oggetto Request in generale
Quando un browser richiede una pagina, questo atto è chiamato request. Request viene usato per
ottenere informazioni dall'utente. Le sue caratteristiche sono:
Collection
Descrizione
ClientCertificate
Contiene i valori dei campi memorizzati nel certificato del client
Cookies
Contiene i cookie inviati in una richiesta HTTP
Form
Contiene i valori provenienti da una form inviata tramite il metodo post
QueryString
Contiene i valori delle variabili inviate tramite una richiesta HTTP
ServerVariables
Contiene tutti i valori delle variabili del server
6.1.1.1 Oggetto Request.form
La collection Form
La collection Form è usata per recuperare i valori da una form inviata con il metodo POST.
Sintassi
Request.Form(elemento)
Request.Form[(indice)]
Parametro
Descrizione
elemento
Il nome dell'elemento del form da cui si vogliono leggere i valori
indice
Opzionale. Specifica un parametro tra molti
6.2. Oggetto Response in generale
L'oggetto ASP Response è usato per inviare un determinato output all'utente.
6.2.1. Il metodo Response.write
E’ utilizzato per visualizzare caratteri e testo; la sua sintassi è:
Modulo 4 – Unità Didattica 1 - Data Base nel Web: 6. ASP. Gli oggetti Request e Response
pag. 21
<% Response.Write(stringa) %>
Parametri
Descrizione
stringa
Il dato da scrivere (variabili, stringhe...)
Riprendiamo e rielaboriamo il codice scritto la volta scorsa per comprendere appieno l’oggetto
Request e l’oggetto Response.write. Aggiungiamo la costante Stringafissa
<% Option Explicit %>
<% Dim Stringa1, Stringa2, Stringa3, Stringafissa
Stringa1=Request.Form("cognome")
Stringa2=Request.Form("nome")
Stringa3=Request.Form("email")
Stringafissa="Arrivederci a presto" %>
<html>
<body>
<h3> I dati che mi hai inserito sono </h3>
<HR>
<font size="4">Cognome: <% Response.Write Stringa1 %> <BR>
Nome: <% Response.Write Stringa2 %> <BR>
Email: <% Response.Write Stringa3 %> </font> <BR>
<HR>
<Form Name="form1" ACTION=/Scripts/Registra.asp" METHOD="post">
<INPUT TYPE= "submit" VALUE="Conferma" NAME="b1">
<INPUT TYPE="reset" VALUE="Annulla" NAME="b2">
<BR><BR>
<font size="4">
<% Response.Write "Grazie per la collaborazione" %> <BR>
<% Response.Write Stringafissa %></font> <BR>
</FORM>
</BODY>
</html>
Di sopra vediamo tre possibili utilizzi di response.write. Il primo scrive in output il contenuto
di una variabile, contenuto che abbiamo ricevuto mediante un Request.form. Il secondo
utilizzo si limita alla semplice scrittura di un breve testo "Grazie per la collaborazione", come
pure il terzo utilizzo, più razionale e pulito, perché dichiara la stringa tra le costanti.
6.2.2. Il metodo Response.End
Ferma
la
processazione
dello
script
e
restituisce
il
risultato
corrente.
Il metodo End conclude l'esecuzione della pagina e invia al client gli output non ancora inviati. Tutto quello
che segue consequenzialmente una chiamata a Response.End non verrà preso in considerazione, sia esso
codice di scripting o semplice output di altro tipo. Si provi il seguente esempio:
<% ' primo if
Modulo 4 – Unità Didattica 1 - Data Base nel Web: 6. ASP. Gli oggetti Request e Response
pag. 22
if (stringa1 = "Scotto" and stringa2 = "Piero") Then
Response.Write "Ma vai a lavorare ! !"
Else
Response.End
End if
%>
<BR><BR>
<h1> Iscrizione al servizio web terminata </h1>
<% ' secondo if
if (stringa1 = "De Stasio" and stringa2 = "Luca") Then
Response.Write "Ma vai a studiare !"
Else
Response.End
End if %>
</font> <BR>
</FORM>
</BODY>
</html>
Cosa succede se inserisco come cognome De Stasio (stringa1) e come nome (Luca)?
Niente! Non viene scritto “Ma vai a studiare !” Infatti non avendo inserito Scotto Piero (primo if),
Response.End fa sì che non si prenda in considerazione il resto del codice di scripting. Neppure
“Iscrizione al servizio web teminata” verrà mandato in output!
6.2.3 - Il metodo Response.Redirect
Questo metodo segnala al browser del client di spostarsi su un altro URL. Tutto quello che seguirà
consequenzialmente una chiamata a Redirect non verrà né interpretato dal server, né comunque
ascoltato dal client che sarà passato a fare richiesta ad un altro URL. I percorsi indicati possono
essere relativi o assoluti. La sintassi è semplice. l'URL deve essere espresso come una classica
stringa. Si prenda a modello i seguenti esempi:
Response.Redirect("http://www.innovit.org") percorso assoluto
Response.Redirect("response.htm") percorso relativo (cerca la pagina nella stessa directory del file
di partenza)
Fonti e risorse principali:
http://asp.html.it
http://www.aspcode.it/
Lorenzi - Cavalli, Access e database in rete, Atlas 2005