| Consigli PC  |

 

 

 ITALIA UMTS

Flying in the net!

black.gif (50 bytes)
 

www.calshop.biz

 
 

Italia UMTS nasce da una idea del team di calshop.biz e vuole essere nella rete un punto di riferimento nel settore dell'informazione e.
© 2002 - 2004 ItaliaUMTS Powered by calshop  -  All Rights Reserved.

 
black.gif (50 bytes)
 

Google
 
Web www.calshop.biz
 


Asp: la guida introduttiva

1 | 2 | 3 | 4 

ASP: la guida introduttiva

Capitolo 3 - l'oggetto built-in Response

   3.0   Scopo ed utilizzo dell'oggetto Response
   
3.1   Il metodo Response.Write
   
3.2   Il metodo Response.End
   
3.3   Il metodo Response.Redirect
   3.4   La proprietà Buffer e gli output bufferizzati
   
3.5   Le proprietà Status e ContentType

3.0 - Scopo ed utilizzo dell'oggetto Response

Tra la famiglia degli oggetti built-in di ASP (cfr. capitolo precedente) Response, come il nome lascia ad intendere, è l'oggetto dedicato alla formattazione e all'invio di un qualche output al client. La sintassi necessaria per utilizzare l'oggetto Response è quella classica degli oggetti di JavaScript, dove il nome dell'oggetto è separato dal nome della proprietà o del metodo che sta venendo invocato con un singolo punto.

Response.nomeProprietà
Response.nomeMetodo(parametro1,parametro2,...)
Response.nomeCollezione("chiave")

Ecco schematicamente cosa fornisce l'oggetto Response:

Proprietà
   
Buffer Booleano, specifica se il buffer è attivo o meno
CacheControl Si utilizza per indicare ai proxy di aggiungere o meno l'output della pagina alla propria cache
CharSet Aggiunge all'header della pagina la specifica di un particolare charset indicato
ContentType Specifica il content type da inviare secondo le norme del protocollo HTTP al client
Expires Indica la durata della pagina all'interno della cache del browser
ExpiresAbsolute Indica la data di scadenza della pagina archiviata nella cache del browser
Status Specifica la linea di stato restituita al client dal server
   
Metodi
   
AddHeader Aggiunge un header specifico alla pagina, di cui è possibile settare nome e valore
AppendToLog Aggiunge una riga al Log del server
BinaryWrite Invia all'output il parametro passato senza applicare conversioni di charset
Clear Ripulisce l'output, ma solo se bufferizzato
End Interrompe l'interpretazione della pagina, e restituisce l'output bufferizzato
Flush Invia all'istante l'ouput bufferizzato
IsClientConnected Verifica durante l'esecuzione della pagina se il client è ancora connesso
Pics Aggiunge un valore al PICS label dell'header
Redirect Invia un messaggio di redirect al browser, spostandolo su un differente URL
Write Scrive sull'output della pagina
   
Collezioni
   
Cookies Setta e recupera i valori relativi ai cookie
   

Non è intenzione di questa guida prendere in analisi sin da ora tutte le proprietà ed i metodi sopra indicati. Molti di essi saranno trattati separatamente nei capitoli seguenti, come ad esempio la collezione Cookies. Per il momento ci si accontenterà di prendere in analisi solo le proprietà e i metodi di uso più ricorrente.

3.1 - Il metodo Response.Write

Nei due capitoli precedenti già si è accennato all'utilizzo di questo metodo, utile per inviare un output di testo al client. La giusta sintassi di utilizzo è la seguente:

<% Response.Write(stringa); %>

Che comunque rimane del tutto equivalente alla più semplice da "embeddare" tra i codici HTML:

<%=stringa%>

Il parametro stringa, come indica il nome stesso, può essere una stringa o comunque un tipo di dato che abbia rappresentazione in stringa. Con JScript è possibile concatenare più stringhe con l'operatore + direttamente all'interno di Write:

nome = "Pippo";
Response.Write("Ciao " + nome + ", io sono un output!");

3.2 - Il metodo Response.End

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:

<%@ LANGUAGE = JScript %>
<%
Response.Write("IO VENGO SCRITTO");
Response.End;
Response.Write("IO NON VENGO SCRITTO");
%>
NEMMENO IO VERRO' SCRITTO!

3.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 il seguente esempio:

Response.Redirect("pagina2.htm");

3.4 - La proprietà Buffer e gli output bufferizzati

La proprietà Buffer di Response gestisce una cosa assai importante nell'utilizzo di una tecnologia server-side come ASP. La proprietà, accesibile sia in lettura che in scrittura, rappresenta un valore Booleano (true o false) che sta ad indicare se l'output dovrà essere bufferizzato o meno. Di default questa proprietà è settata a false. Questo significa che normalmente gli output non saranno bufferizzati, e perciò verranno inviati al client man mano che saranno generati. Impostandola invece su true si attiverà la bufferizzazione dell'output. In questa maniera ogni dato inviato all'output (ad esempio tramite Reponse.Write) non sarà girato al client il più presto possibile, ma sarà conservato in un buffer temporaneo, per essere poi spedito al termine dell'esecuzione oppure su comando esplicito del codice (con il metodo Flush). Questo ha vantaggi e svantaggi. Un output non bufferizzato dà l'impressione di essere molto più veloce, specie relativamente a lunghe pagine HTML, e difatti l'utilizzo di output non bufferizzati è la prassi per la generazione dinamica di pagine in HTML. Attivare la bufferizzazione permette però di poter gestire assai più elegantemente il possibile output, intervenendo più volte su di esso. Di default l'output è spedito non appena generato, per questo non è più possibile intervenire su di esso. Se il codice ha postato la stringa "Ciao" al client non potrà più tornare sui propri passi cancellando quanto fatto: quando il codice tenterà di farlo probabilmente l'utente starà già visualizzando il messaggio sul proprio monitor. Con il buffer attivato, invece, un comando di scrittura su output non implica automaticamente l'invio del medesimo al client. Sarà dunque possibile intervenire a più riprese su header e corpo dell'output, con alcuni metodi speciali che hanno significato sono in questo ambito:

  • Response.Clear - ripulisce l'output accumulato nel buffer
  • Response.Flush - invia all'istante i dati accumulati nel buffer al client, senza attendere la fine dell'esecuzione

Alcuni metodi di uso comune in presenza di un output bufferizzato si comportano in maniera leggermente diversa dall'usuale:

  • Response.End - oltre ad interrompere l'esecuzione in questo caso invia al client l'output cumulato nel buffer
  • Response.Redirect - può essere utilizzato anche dopo aver già scritto tutti gli header nell'output. In questo caso ripulirà il buffer e inserirà il comando di redirect al posto dei dati cumulati

3.5 - Le proprietà Status e ContentType

Status e ContentType sono altre due proprietà che vanno ad influenzare l'header della risposta inviata dal server al client. Per quanto possibile si è cercato di non addentrarsi nei meandri del protocollo HTTP, la cui conoscenza faciliterebbe la comprensione del capitolo, tuttavia ora diviene necessaria una piccola immersione nelle sue specifiche. Non se ne risentano i lettori più attenti, si sta cercando solamente di essere semplici e facilmente comprensibili.
Il protocollo HTTP altro non è che un insieme di regole che descrive come debba avvenire un dialogo tra un client ed un server. L'esempio più sfruttato da e guide che tentano di illustrare le funzionalità di tale protocollo è quello della telefonata, e qui non si vuole venir meno a questa consolidata tradizione. Quando si telefona ad un amico o ad un conoscente si ricorre involontariamente all'uso di un certo "protocollo", o meglio, all'uso di un insieme di regole. Ad esempio chi risponde dice sempre "pronto" per segnalare la sua presenza e la sua disponibilità dall'altra parte del cavo, e immediatamente chi ha effettuato la chiamata risponderà salutando e dichiarando la propria identità. Solo dopo queste operazioni preliminari si passerà al colloquio, ossia al vero scopo della telefonata. Il protocollo descritto per la "telefonata tipo" non è comunque rigido, le cose tra uomini potrebbero svolgersi assai differentemente e probabilmente ci si continuerebbe a capire lo stesso. Sui computer, naturalmente, non esiste flessibilità, per cui tutti i server e tutti i client devono rispondere secondo le regole del protocollo HTTP, che definisce appunto il funzionamento di una "chiamata". Se un client o un server dovessero "rispondere male" la controparte in rete riaggancierebbe subito la linea. Così come per la telefonata tra persone, dove il colloquio vero e proprio viene fatto precedere da un header introduttivo, il protocollo HTTP prevede uno scambio di informazioni iniziali tra il client ed il server. Con le pagine ASP ci si sta occupando della gestione del server, quindi si dovrà fare la parte di colui che risponde. Il client solitamente si collega ad un server mediante protocollo HTTP indicando un URL di suo interesse. Il compito sel server è quello di recuperare, se esiste, il file puntato dall'URL e di spedirlo al client, facendolo però precedere da una serie di informazioni inerenti l'esito della richiesta e la natura del file. Status e ContentType controllano proprio questi ultimi due aspetti citati.


Status inserisce nell'header una riga che specifica l'esito della richiesta. Nel protocollo HTTP questo viene identificato da una serie di tre numeri. Ad esempio 200 significa "ok, ho trovato il file, adesso arriva", mentre 404 significa "mi dispiace, il file specificato dall'URL che mi hai passato non esiste". Con Status è possibile alterare questa parte dell'header:

Response.Status = "401 Unauthorized";

Questa riga dice al client che non si ha l'autorizzazione per ricevere il file richiesto. In questa sede non saranno trattati tutti i possibili status di un header, per chi fosse interessato all'argomento si consiglia di cercare in rete le specifiche del protocollo HTTP.

ContentType definisce la natura del file che si sta per inviare al client. I browser non sono soliti riconoscere i file in base asll'estensione che porta il loro nome, quanto piuttosto rispetto alla descrizione fornita dal server su di essi. ContentType permette di controllare questa descrizione. Con ASP, infatti, non si realizzano solo ed esclusivamente semplici output HTML, ma con l'ausilio di giusti ActiveX esterni è possibilissimo mandare in output ad esempio delle immagini (tipico caso dei contatori ad immagini), dei suoni o comunque altri tipi di output differenti dal classico "text/html" di default. Si provi ad eseguire la seguente pagina ASP:

<%@ LANGUAGE = JScript %>
<% Response.ContetType = "text/plain"; %>
<html>
<head>
<title>E' una pagina HTML?</title>
</head>
<body>
Cosa vedi?
</body>
</html>

Come è possibile vedere l'HTML compreso nell'output invece di venire interpretato dal browser verrà stampato all'interno della finestra! Questo perchè abbiamo fatto dire al client dal server che la pagina che seguiva era "text/plain", ossia semplice testo, e il browser il semplice testo lo prende e lo stampa senza svolgere ulteriori compiti. Utilizzando Microsoft Internet Explorer non sempre avviene ciò, questo perchè la Microsoft ha scelto di far parlare al suo browser un linguaggio diverso dal resto di Internet, ma non scendiamo in inutili polemiche.
Se si voleva lanciare come output un JavaScript era possibile farlo utilizzando la dicitura "application/x-javascript". Sono davvero tanti i possibili MIME TYPE (così vengono chiamate queste stringhe che indicano la tipologia del file) che un browser può riconoscere o che ASP, con le necessarie estensioni, può generare. Qui ne citiamo solo alcuni che potranno tornare utili nelle applicazioni più comuni:

Testuali
   
text/html Settato di default, è il comune MIME TYPE di una pagian HTML
text/plain File di testo semplice
text/rtf File in formato Rich Text Format
text/xml File in formato XML
   
Immagini
   
image/gif Immagine GIF
image/jpeg Immagine JPEG
image/png Immagine PNG
   
Audio
   
audio/midi File MIDI
audio/x-wav File audio in formato WAVE
audio/x-realaudio File audio in formato RealAudio
   
Altro
   
application/x-javascript File JavaScript
application/zip File WinZip
   

Home Page

1 | 2 | 3 | 4 

 
Trucchi PC e Guide
Tips su sistemi operativi, registro di configurazione, sicurezza, internet, navigazione, word ed excel. ................ ....
 

Guide e sulla configurazione, installazione ed utilizzo di, periferiche, sistemi operativi ecc... .............................................................


 

 
 
Halloween  
Halloween Online

Utenti on line

Ultimo aggiornamento giugno 2005