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