ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di pagine dinamiche. Tali pagine includono codice che viene eseguito sul Server e solo loutput prodotto viene inviato al client. È una tecnologia sviluppata da Microsoft e quindi il Server che la supporta dovrà funzionare in ambiente Windows. I linguaggi che è possibile utilizzare sono: VBScript e JavaScript.
ASP – Active Server Pages - 2 -Giuseppe De Pietro Il Web Server Quando si sviluppano pagine lato client si prende in considerazione solo il browser che le deve visualizzare. Per le pagine dinamiche invece è fondamentale lutilizzo di un Web Server, ovvero un servizio che dovrà ricevere le richieste dal client, processare il codice e restituire una risposta in formato HTML. Per le pagine ASP si deve utilizzare il Web Server di Microsoft IIS (Internet Information Server).
ASP – Active Server Pages - 3 -Giuseppe De Pietro Le richieste Web Richiesta HTTP Risposta HTTP IIS Pagine ASP
ASP – Active Server Pages - 4 -Giuseppe De Pietro Eseguire le pagine ASP in locale Lo sviluppatore può testare le applicazioni Web simulando le connessioni al server. Gli utenti di Windows NT, 2000 e XP Professional dispongono di una copia di IIS. Gli utenti di Windows 98 possono comunque eseguire le pagine ASP utilizzando una versione molto semplificata di IIS: Personal Web Server (PWS).
ASP – Active Server Pages - 5 -Giuseppe De Pietro La struttura di una pagina ASP ASP non è un linguaggio, è una tecnologia in cui elementi di diversa natura cooperano fra di loro per produrre un risultato. La struttura tipica di una pagina è formata da quattro elementi distinti: Direttive per linterprete: sono comandi che una pagina fornisce allinterprete per il corretto funzionamento della stessa. Comandi SSI: usati per includere risorse esterne. Codice di scripting: è la parte attiva della pagina contenente il codice. Codice statico: è la parte che viene trasferita al client così comè.
ASP – Active Server Pages - 6 -Giuseppe De Pietro Un semplice esempio Pagina ASP <% Response.Write(Pagina ASP) %> Direttiva Comando SSI (Server Side Include) Codice di scripting Codice statico
ASP – Active Server Pages - 7 -Giuseppe De Pietro Usare due linguaggi lato Server Lattributo della direttiva language obbliga ad utilizzare il linguaggio indicato. Ma se volessimo utilizzare due linguaggi diversi nella stessa pagina, possiamo includere il codice lato Server in questo modo: codice VBScript <% //codice JavaScript %>
ASP – Active Server Pages - 8 -Giuseppe De Pietro Oggetti built-in JavaScript è un ottimo linguaggio ad oggetti. Integrato in un ambiente client interagisce con gli oggetti del browser (window, document, location, ecc.) ma usato in ambiente ASP non può assolutamente utilizzare tali oggetti. Ne esistono però altri creati automaticamente dal server e messi a disposizione di ciascuna pagina: Application: crea variabili legate allapplicazione. Request: permette di ricevere dati dal client. Response: invia dati al client. Server: interagisce con lambiente del Web Server. Session: crea variabili legate alle sessioni utente.
ASP – Active Server Pages - 9 -Giuseppe De Pietro Oggetto Response È loggetto che si occupa di inviare dati dal Server al client. Il protocollo HTTP definisce delle regole ben precise di comunicazione tra client e Server. Headers (errori,redirect, tipo file,Info cache) Corpo della pagina
ASP – Active Server Pages Giuseppe De Pietro Metodi Write e End Il metodo Response.Write è quello più comune, serve per la creazione dinamica del documento da restituire al client. Response.Write(messaggio) Il metodo Response.End() interrompe lesecuzione di una pagina: Tutto quello che segue (codice statico e dinamico) non verrà preso in considerazione.
ASP – Active Server Pages Giuseppe De Pietro Redirezionare lutente Una particolare intestazione HTTP è il reindirizzamento verso unaltra pagina. Questa operazione la si effettua con il metodo: Response.Redirect(nomepagina) Essendo una intestazione è dobbligo inserirla prima allinizio della pagina altrimenti genera un errore. Si risolve il problema bufferizzando loutput della pagina: Response.Buffer=true In questo modo si indica al Web Server di non inviare la risposta finchè non ha finito di elaborare la pagina.
ASP – Active Server Pages Giuseppe De Pietro Controllo della cache Grazie alloggetto Response è possibile gestire la durata della pagina nella cache del browser: Response.Expires=120 Indica al browser di conservare la pagina nella memoria cache per 2 ore. Impostando a 0 il tempo, il browser non archivierà la pagina, mentre è possibile anche indicare una data assoluta: Response.ExpiresAbsolute=30/06/ :00:00 È possibile anche controllare la cache di un proxy (di default i proxy non archiviano le pagine ASP), per attivare larchiviazione: Response.CacheControl=Public per disattivarla: Response.CacheControl=Private
ASP – Active Server Pages Giuseppe De Pietro Oggetto Request Loggetto Request raccoglie in input sia i dati inviati dal client che quelli dell ambiente del Web Server. Le variabili dambiente permettono di recuperare varie informazioni in merito al server, allo script ed al client. Request.ServerVariables(costante) IP del Server ( LOCAL_ADDR ). Nome del Server ( SERVER_NAME ). Porta del Server ( SERVER_PORT ). Protocollo supportato ( SERVER_PROTOCOL ). IP del client ( REMOTE_ADDR ). Nome del client ( REMOTE_HOST ). Tutte le intestazioni HTTP ( ALL_HTTP ).
ASP – Active Server Pages Giuseppe De Pietro Lettura dati dal client La collezione Request.Form permette di ricevere dati dal client in modalità Post : Request.Form(nome_controllo) Mentre in modalità Get, i dati saranno inseriti dopo lURL in formato QueryString: Pagina.asp?campo1=valore1&campo2=valore2 E sul server sarà possibile prelevarli con: Request.QueryString(nome_controllo)
ASP – Active Server Pages Giuseppe De Pietro Oggetto Server È loggetto che permette il controllo di alcune funzionalità aggiuntive del Web Server. ScriptTimeout: specifica in secondi la durata massima di esecuzione dello script (default 90 secondi). È utile per evitare che uno script mal progettato possa impegnare troppo il Server. CreateObject: genera unistanza di un componente installato sul Server. Ad esempio per creare un oggetto connection: Server.CreateObject(ADODB.Connection) MapPath: restituisce un percorso assoluto, partendo da un percorso relativo. Molto utile per astrarsi dal file system della macchina su cui risiede lo script. HTMLEncode: codifica i caratteri particolari dei tag HTML (, ecc.) come entità. È molto utile per trattare del testo inviato da un utente, senza dargli la possibilità di poter inserire degli script pericolosi. URLEncode: applica le regole della codifica URL (equivalente escape).
ASP – Active Server Pages Giuseppe De Pietro