|
Come facilmente immaginabile il pre-built object Response permette allo sviluppatore di controllare le informazioni che sono spedite all'utente (output). Le proprietà supportate da questo oggetto sono
le seguenti:
· Buffer - è una proprietà che permette di settare se l'output verso l'utente debba essere bufferizzato o meno. Se tale proprietà è settata a true il contenuto della pagina non verrà spedito all'utente fino a quando non sarà stato completato dal server o fino a quando i metodi flush o end sono stati eseguiti;
· ContentType - permette di settare il tipo di output prodotto dalla pagina
(text/Html, Excel, JPG picture, …). Il formato di default è text/Html;
· Expires - definisce la data in cui la paginà espirerà. Se la pagina sarà richiesta dallo stesso utente prima di tale data il browser dell'utente utilizzerà i dati contenuti nella cache anziché richiedere una nuova pagina al server;
· ExpiresAbsolute - permette di definire la scadenza con una data assoluta (giorno e ora );
· Status - ritorna lo stato della pagina.
I metodi supportati dall'oggetto Response sono i seguenti:
· AddHeader - permette di aggiungere un nuovo header alla pagina;
· AppendToLog - permette di aggiungere informazioni alla fine del log file. Molto utile quando si sta
correggendo un errore;
· BinaryWrite - scrive informazioni in maniera binaria. Tale metodo viene utilizzato solamente quando l'output prodotto è di tipo binario (esempio: un'immagine o un file Excel);
· Clear - cancella ogni tipo di output bufferizzato. Funziona solo se la proprietà Buffer è settata a
true;
· End - Interrompe l'esecuzione della pagina e invia al client il buffer se è memorizzato;
· Flush - Scarica il contenuto del buffer sulla pagina dell'utente;
· Redirect - interrompe l'esecuzione della pagina e porta l'utente in un'altra pagina. La nuova pagina è passata come parametro del metodo. Esempio:
Response.Redirect("nuova_pagina.asp");
· Write - scrive dei dati nell'output del richiedente. I dati, sotto forma di stringa, sono passati come singolo parametro del metodo. Esempio:
Response.Write("Esempio").
Più o meno tutte le proprietà dell'oggetto Response vengono utilizzate a seconda dei casi. Nell'esempio sottostante, ampliamo
le funzionalità delle pagina Request2.asp e Request1.asp e controlliamo se l'utente ha inserito correttamente i valori nei due campi. Se ciò è avvenuto mostreremo a schermo i dati inseriti, altrimenti rinvieremo l'utente alla
form, chiedendo di compilare i dati nel modo debito.
<%Option Explicit%>
<html>
<head>
<title>Response 1</title>
</head>
<body>Riempi i campi:
<%
var sErrore
var sMessaggio
sErrore = Request.QueryString("errore")
Select Case
sErrore
Case "1"
sMessaggio = "Il campo nome non è, stato debitamente compilato"
Case "2"
sMessaggio = "Il campo cognome non è, stato debitamente compilato"
Case "3"
sMessaggio = "Entrambi i campi non sono stati debitamente compilato"
Else Case
sMessaggio = " "
End Select
Response.Write(sMessaggio)
%>
<form name="test" action="response2.asp" method="post">
nome: <input type="text" name="txtFirstName" value=""><br>
cognome: <input type="text" name="txtLastName" value=""><br>
<input type="submit" value="Invia">
</form>
</body> |
Listato 5 - Salva la pagina con il nome
Response1.asp
<% Option Explicit
dim sNome
dim sCognome
dim sErrore
'Prende i dati in input
sNome = request.form("txtFirstName")
sCognome = request.form("txtLastName")
'Controlla quali campi sono stati lasciati in bianco
sErrore = 0
if sNome = "" then sErrore = 1
if sCognome = "" then sErrore = sErrore + 2
'Se ci sono errori viene richiamata la pagina di input
If sErrore > 0 then
Response.Redirect("Response1.asp?errore=" & sErrore)
End If
%>
<html>
<head>
<title>Response 2</title>
</head>
<body>Hai inserito i seguenti dati ...<br>
nome: <%= sNome %><br>
cognome: <%= sCognome%><br>
</body>
</html> |
Listato 6 - Salva la pagina con il nome
Response2.asp
Partiamo ad analizzare il codice di Response2.asp: i valori dei campi txtFirstName e txtLastName vengono assegnati in due variabili. Se tali valori sono stati lasciati vuoti nella form della pagina precedente il loro valore sarà "". In tal caso il codice se ne accorgerà e assegnerà alla variabile sErrore un valore specifico: 1 se il campo lasciato bianco è il nome, 2 se è il cognome, 3 se si tratta di entrambi. In caso ciò accada l'esecuzione del codice sarà interrotta e l'utente sarà
inviato nuovamente alla form, passando ad essa anche il codice di errore. La prima pagina (Response1.asp) controllerà ogni volta se il parametro errore esiste ed è diverso da "". Se tale condizione accade significa che l'utente è stato indirizzato perché uno o più campi non sono stati completati e visualizzerà quindi un messaggio d'errore efficace.
Lezione
successiva =>
Torna
all'indice
|