Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: [email protected] Università...

31
Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: [email protected] Università degli studi di Siena Dipartimento di Scienze Matematiche ed Informatic

Transcript of Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: [email protected] Università...

Page 1: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Introduzione alle ASP:primi passi negli script.

Frosini Andreae-mail: [email protected]

Università degli studi di Siena Dipartimento di Scienze Matematiche ed Informatiche

Page 2: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Pagine Web statiche

• il computer contatta il server HTTP basandosi sull’URL 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):

Page 3: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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 all’applicazione e ne attiva una istanza con i parametri ricevuti;

• l’applicazione effettua l’elaborazione in base ai parametri e crea sullo standard output, la risposta per il browser;

• il server Web cattura il flusso di dati generato dall’applicazione 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.

Page 4: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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 all’interno del codice

HTML, che riserva per questo i particolari tags <script> e </script>.

Page 5: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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.

Page 6: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Cosa è ASP

• ASP è l’acronimo 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

Page 7: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Come funziona ASP

• L’idea 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.

Page 8: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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.

Page 9: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Vantaggi e svantaggi di ASP

Vantaggi:• Completa indipendenza dal particolare browser utilizzato• Possibilità di usare più linguaggi di scripting all’interno 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

Page 10: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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

all’esecuzione degli script e delle query concessi dal server!

Page 11: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Dichiarare il linguaggio di scripting

ASP supporta in modo nativo due linguaggi: VBscript e Jscript.

Se non diversamente specificato, ASP interpreta quanto presente all’interno dei tag <% e %> 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 dall’Internet Information Services (IIS), solo per quelle legate ad un singolo file o solo per quelle legate ad una singola funzione).

L’ulteriore attributo RUNAT permette di specificare il livello di

interpretazione dello script e assume i valori Server e Client.

Page 12: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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!

Page 13: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempi di semplici script (1)

<HEAD><TITLE>Evento associato ad un bottone</TITLE></HEAD>

<SCRIPT LANGUAGE="VBScript">

<!--

Sub Bottone1_OnClick

MsgBox “Ciao Ciao.”

End Sub

--></SCRIPT>

<BODY>

<H3>Una semplice pagina di esempio</H3><HR>

<FORM>

<INPUT NAME="Bottone1" TYPE="BUTTON" VALUE="Fare clic qui">

</FORM></BODY>

Page 14: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempi di semplici script (2)

<SCRIPT><!--

Sub Submit_OnClick

Dim TheForm

Set TheForm = Document.MioForm

If IsNumeric(TheForm.Testo1.Value) Then

If TheForm.Testo1.Value < 1 Or 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

--></SCRIPT> …

Page 15: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempi di semplici script (3)

<FORM NAME=“MioForm”>

<INPUT TYPE=“Button” NAME =“Bottone1” VALUE="Click">

<SCRIPT FOR="Bottone1" EVENT = “onClick” LANGUAGE=“VBScript”>

MsgBox “Hai premuto il pulsante”

</SCRIPT>

</FORM>

<SCRIPT LANGUAGE="VBScript">

<!--

Dim MyVar

MyVar = MsgBox ("Salve gente!", 65, "Esempio di MsgBox")

MsgBox ("Pulsante premuto "&MyVar)

</SCRIPT>

Page 16: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempi di semplici script (4)

<SCRIPT><!--

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

--></SCRIPT> …

Page 17: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

ASP: Esempio 1

<SCRIPT RUNAT=Server LANGUAGE=JSCRIPT>

function CiaoJS() {

Response.write(“Ciao da JScript")}

</SCRIPT>

<SCRIPT RUNAT=Server LANGUAGE=VBScript>

Sub CiaoVB

Response.write “Ciao da VBScript"

End Sub

</SCRIPT>

<html><HEAD><TITLE>Esempio Script lato server</TITLE></HEAD>

<body>

<% Call CiaoJS%><BR>

<% Call CiaoVB%>

</body>

</html>

Page 18: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Inclusione di file e commenti

Sintassi

inclusione: <!--#include file = "file_da_includere"-->

commento: REM commento

‘ commento

Regole per l’inclusione 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.

Page 19: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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!<br>”

next

oppureDo

"Ciao Mondo!<br>"

i = i + 1

Loop Until i > 5

La dichiarazione esplicita delle variabili nello script può essere

forzata utilizzando <% option explicit %>

Page 20: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempio 2

<HTML><HEAD><TITLE> Esempio variabili e cicli </TITLE></HEAD>

<BODY bgcolor="#FFFFFF">

<center> Calcolo dei quadrati e cubi dei primi 5 numeri <br><br>

<table border = 2>

<tr>

<td> Numero <td> Quadrato <td> Cubo ‘ intestazione tabella

</tr>

<% dim i ‘ dichiarazione variabile

i=5

for num = 1 to i %> ‘ variabile non dichiarata

<tr align=center>

<td><%=num%> <td><%=num*num%> <td><%=num*num*num%>

</tr>

<% next %>

</center>

</BODY></HTML>

Page 21: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Definire e richiamare procedure

Le procedure all’interno 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;

Page 22: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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.

Page 23: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempio 3

<% @LANGUAGE = VBScript %>

<% Option Explicit

Response.ContentType = "text/html"

Response.Expires = -1500 %>

… <%= date %> … <%= time %>

Informazioni dal browser

<%=Request.ServerVariables("SCRIPT_NAME")%>

<%=Request.ServerVariables("SERVER_PORT")%>

<%=Request.ServerVariables("REMOTE_HOST")%>

<%=Request.ServerVariables("HTTP_HOST")%>

<%=Request.ServerVariables("REMOTE_ADDR")%>

<%=Request.ServerVariables("HTTP_USER_AGENT")%>

<%=Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")%>

Page 24: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Creare moduli

Lo scambio di dati tra client e server avviene essenzialmente tramite

i moduli (form) caratterizzati da:

•Campi: elementi da riempire con l’input che si desira spedire al

server;

•Bottoni: permettono l’invio (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.

Page 25: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Il tag <form>

Il tag per la creazione di moduli è <form> </form>

I suoi attributi di interesse sono

•Action: specifica l’azione che dovrà essere fatta al momento

dell’invio 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.

Page 26: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

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

http://localhost/cgi-bin/script?nome=andrea&cognome=frosini

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.

Page 27: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Il tag <input />

Gli attributi del tag <input /> permettono le diverse modalità di

inserimento dati. Ad esempio:•text, password, hidden permettono l’inserimento di righe di testo;•textarea permette l’inserimento 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: <input type=“text” name=“saluto” value=“ciao” />

Ad ogni elemento è possibile associare un nome univoco ed un valore

di default

Page 28: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Cosa ci interessa?

La gestione dei form può risultare complessa, per questo noi ci

limiteremo quasi esclusivamente all’utilizzo

• 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”.

Page 29: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempio 3: saluto.html

<HTML><HEAD><TITLE>Esempio saluto</TITLE></HEAD>

<BODY><center>Invio dati personali studente</center><br>

<FORM METHOD=POST ACTION="salve.asp">

<TABLE>

<TR>

<TD align=right>Nome:</TD>

<TD align=left><INPUT TYPE=TEXT NAME="nome"></TD>

</TR>

<TR>

<TD>

<TD align=left>

Maschio <INPUT type="RADIO" name="sesso" value="Maschio">

Femmina <INPUT type="RADIO" name="sesso" value="Femmina">

</TR>

</TABLE>

<INPUT TYPE=RESET> <INPUT TYPE=SUBMIT>

</FORM></BODY></HTML>

Page 30: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempio 3: salve.asp

<%@ Language=VBScript %>

<HTML><BODY>

<center><h3> Salve <br>

<%

strsesso=request.form("sesso")

pippo=request.form("nome")

%>

<% If (strsesso="Femmina") Then %>

Sig.ra

<%End If%>

<%If (strsesso="Maschio") Then %>

Sig.

<% End If %>

<%=pippo%>

</h3></center></BODY></HTML>

Page 31: Introduzione alle ASP: primi passi negli script. Frosini Andrea e-mail: frosini@unisi.it Università degli studi di Siena Dipartimento di Scienze Matematiche.

Esempio 4: esercizio

Esempio / esercizio:

• creare una pagina contenente un form per l’inserimento dei dati

di uno studente che contenga i campi testuali:

ID studente, Nome, Cognome, Citta’, Stato, CAP;

• inviare il form con il metodo post;

• l’invio del form deve caricare, in risposta, una pagina che

visualizzi i dati inseriti;

• eventualmente creare un controllo sui campi inseriti.