Introduzione alle ASP: primi passi negli script. Frosini Andrea Università degli studi di Siena Dipartimento di Scienze Matematiche ed Informatiche
Pagine Web statiche il computer contatta il server HTTP basandosi sullURL da noi indicata (i nomi vengono tradotti in indirizzi IP dal servizio distribuito DNS); il server HTTP cerca il file richiesto e, una volta trovato, invia il file al richiedente; il computer, una volta ricevuto il file, lo esamina, lo elabora (rendering) e lo mostra a video Il Web nasce come una collezione di pagine HTML collegate tra loro tramite links ipertestuali. Quando nel Browser si indica un URL (Uniform Resource Locator):
Pagine Web dinamiche Pagine il cui contenuto dipende dal contesto di esecuzione il browser invia al server Web, tramite URL, la richiesta di attivazione di un programma seguita da una serie di parametri; il server Web riconosce che la richiesta deve essere indirizzata allapplicazione e ne attiva una istanza con i parametri ricevuti; lapplicazione effettua lelaborazione in base ai parametri e crea sullo standard output, la risposta per il browser; il server Web cattura il flusso di dati generato dallapplicazione e lo trasforma in pagina HTML. Inizialmente le pagine dinamiche erano realizzate tramite lo standard CGI (Common Gateway Interface), successivamente è stata data la possibilità ai browsers di interpretare i linguaggi di scripting.
Linguaggi di scripting Linguaggi come Jscript, VBscript, Perl che permettono al client di effetture semplici elaborazioni. Si avvicinano ai linguaggi di programmazione, pur caratterizzandosi con una sintassi semplice e meno rigida. Il codice di uno script si inserisce usualmente allinterno del codice HTML, che riserva per questo i particolari tags e.
Script Uno script è composto da vari comandi di script. Un comando di script può assegnare un valore ad una variabile, eseguire una operazione, avviare un processo di stampa … Affinchè uno script possa essere eseguito viene inviato ad uno scripting engine che lo legge, riga per riga, e ne esegue i comandi. Ogni linguaggio di scripting ha bisogno del relativo scripting engine installato sul server. Il client non necessita di uno scripting engine dato che tutto il carico di lavoro è eseguito dal server.
Cosa è ASP ASP è lacronimo per Active Server Pages; le pagine sono attive perché contengono istruzioni che ne possono diversificare il contenuto finale; le pagine vengono scritte in HTML e salvate con estensione.asp; le pagine ASP hanno al loro interno un linguaggio di scripting; le pagine HTML di risposta alla richiesta di una ASP vengono create sul momento ASP non è un linguaggio di scripting
Come funziona ASP Lidea di base di ASP è quella di sfruttare la tecnologia COM (Common Object Model), cioè sfruttare tutte le risorse che il server Microsoft ha a disposizione, coinvolgendo i linguaggi di scripting Vbscript e Jscript; il client richiede una pagina.asp al server. Il server invoca ASP per elaborarla; vengono effettuati il parsing, il controllo sintattico e la compilazione della pagina; il risultato è immerso nel codice HTML ed inviato al client.
Attenzione! N.B. una pagina ASP non può essere testata in locale a meno di non aver installato un Personal Web Server (PWS) Per creare una pagina.asp è necessario: salvare il file in una directory visibile dalla rete; avere il permesso di esecuzione degli script.
Vantaggi e svantaggi di ASP Vantaggi: Completa indipendenza dal particolare browser utilizzato Possibilità di usare più linguaggi di scripting allinterno di una applicazione asp Comandi di script Svantaggi: Notevole carico di lavoro per il server che deve generare dinamicamente le pagine Tale soluzione contrasta con il modello CLIENT-SERVER
Sintassi ASP Una pagina ASP è può essere composta da: testo; marcatori HTML; comandi di script. E consentito utilizzare variabili, cicli ed istruzioni di controllo. N.B. il creatore della pagina asp deve avere i permessi necessari allesecuzione degli script e delle query concessi dal server!
Dichiarare il linguaggio di scripting ASP supporta in modo nativo due linguaggi: VBscript e Jscript. Se non diversamente specificato, ASP interpreta quanto presente allinterno dei tag come VBscript. Il linguaggio può essere dichiarato a livello di sito, di file o di funzione (cioè la dichiarazione vale per tutte le applicazioni ASP gestite dallInternet Information Services (IIS), solo per quelle legate ad un singolo file o solo per quelle legate ad una singola funzione). Lulteriore attributo RUNAT permette di specificare il livello di interpretazione dello script e assume i valori Server e Client.
Ricordiamoci che: In VBScript sono disponibili i seguenti cicli: Do While … Loop: le istruzioni sono ripetute fino a quando una condizione risulta True; While … Wend: le istruzioni sono ripetute fino a quando una condizione risulta True; For … Next: le istruzioni sono ripetute un numero di volte specificato da un contatore; For Each … Next: un insieme di istruzioni viene ripetuto per ciascun elemento di un insieme. Tale numero puo non essere noto a priori!
Esempi di semplici script (1) Evento associato ad un bottone <!-- Sub Bottone1_OnClick MsgBox Ciao Ciao. End Sub --> Una semplice pagina di esempio
Esempi di semplici script (2) <!-- Sub Submit_OnClick Dim TheForm Set TheForm = Document.MioForm If IsNumeric(TheForm.Testo1.Value) Then If TheForm.Testo1.Value 10 Then MsgBox "Immettere un numero compreso tra 1 e 10." Else MsgBox "Valore corretto." End If Else MsgBox "Immettere un valore numerico." End If End Sub --> …
Esempi di semplici script (3) MsgBox Hai premuto il pulsante <!-- Dim MyVar MyVar = MsgBox ("Salve gente!", 65, "Esempio di MsgBox") MsgBox ("Pulsante premuto "&MyVar)
Esempi di semplici script (4) <!-- Sub Esempio_ciclo() Dim Contatore, Numero Contatore = 0 Numero = 20 Do While Numero > 10 Numero = Numero - 1 Contatore = Contatore + 1 Loop MsgBox Il ciclo ha eseguito & counter & ripetizioni. End Sub --> …
ASP: Esempio 1 function CiaoJS() { Response.write(Ciao da JScript")} Sub CiaoVB Response.write Ciao da VBScript" End Sub Esempio Script lato server
Inclusione di file e commenti Sintassi inclusione: commento: REM commento commento Regole per linclusione di file: un file può includere altri file; un file non può includere sé stesso; un file può essere incluso più volte; non si possono creare dinamicamente nomi di file inclusi.
Dichiarazione di variabili e cicli Inizializzazione di una variabile: pippo = 12 pluto = Ciao mondo I cicli possono essere definiti usualmente: for counter = 25 to 0 step -5 Ciao mondo! next oppure Do "Ciao Mondo! " i = i + 1 Loop Until i > 5 La dichiarazione esplicita delle variabili nello script può essere forzata utilizzando
Esempio 2 Esempio variabili e cicli Calcolo dei quadrati e cubi dei primi 5 numeri Numero Quadrato Cubo intestazione tabella <% dim i dichiarazione variabile i=5 for num = 1 to i %> variabile non dichiarata
Definire e richiamare procedure Le procedure allinterno di una Active Server Page possono essere scritte con linguaggi di scripting diversi (seguendone, ovviamente, la sintassi); possono essere definite su file esterni inclusi; sono richiamate con il comando Call Nome_procedura dopo il nome della procedura, tra parentesi, possono essere inseriti gli eventuali parametri;
Esercizio Piccolo esercizio: creare un file con estensione.inc che contenga una procedura per stampare il carattere * ed una seconda procedura per stampare il carattere ^ ; creare un file con estensione.asp che: includa il file.inc creato; visualizzi un triangolo rettangolo di altezza 9, formato dalla sequenza di simboli *^* richiamati tramite le procedure contenute nel file incluso.
Esempio 3 <% Option Explicit Response.ContentType = "text/html" Response.Expires = %> … … Informazioni dal browser
Creare moduli Lo scambio di dati tra client e server avviene essenzialmente tramite i moduli (form) caratterizzati da: Campi: elementi da riempire con linput che si desira spedire al server; Bottoni: permettono linvio (submit) o la cancellazione (reset) dei dati inseriti nei campi; CGI (Common Gateway Interface): programmi lato server (Java, C++, Perl …) che leggono ed elaborano i dati inviati, fornendo al client la risposta tramite una pagina HTML di formato standard.
Il tag Il tag per la creazione di moduli è I suoi attributi di interesse sono Action: specifica lazione che dovrà essere fatta al momento dellinvio dei dati (caricamento di una pagina, reindirizzamento verso una specifica URL, specifica della risorsa che dovrà elaborare i dati inviati …) Method: specifica il modo di invio al server dei dati. I valori ammessi sono get e post.
I metodi GET e POST Inviando una form il client invia coppie del tipo nome=valore. Il metodo GET è indicato per il passaggio di pochi valori che vengono specificati al programma CGI sulla linea di comando. Tali valori possono essere solo di tipo testuale, ad esempio Il metodo POST è indicato per il passaggio di grandi quantità di dati di qualsiasi tipo (testi, immagini, video). Viene eseguito solo in risposta ad una form ed i parametri non passano in chiaro nella URL. I dati vengono passati nel corpo del pacchetto HTTP.
Il tag Gli attributi del tag permettono le diverse modalità di inserimento dati. Ad esempio: text, password, hidden permettono linserimento di righe di testo; textarea permette linserimento di aree di testo; select elemento di selezione multipla; radio e checkbox bottoni di invio dati; submit e reset bottoni di invio e cancellazione dati. Esempio: Ad ogni elemento è possibile associare un nome univoco ed un valore di default
Cosa ci interessa? La gestione dei form può risultare complessa, per questo noi ci limiteremo quasi esclusivamente allutilizzo del formato di invio POST; del tipo TEXT; dei bottoni di SUBMIT e RESET. Esercizio: Creare una pagina.html che includa un bottone per caricare una seconda pagina.html per visualizzare la scritta Ciao.
Esempio 3: saluto.html Esempio saluto Invio dati personali studente Nome: Maschio Femmina
Esempio 3: salve.asp Salve <% strsesso=request.form("sesso") pippo=request.form("nome") %> Sig.ra Sig.
Esempio 4: esercizio Esempio / esercizio: creare una pagina contenente un form per linserimento dei dati di uno studente che contenga i campi testuali: ID studente, Nome, Cognome, Citta, Stato, CAP; inviare il form con il metodo post; linvio del form deve caricare, in risposta, una pagina che visualizzi i dati inseriti; eventualmente creare un controllo sui campi inseriti.