Corso basi di dati: Introduzione ad ASP
Transcript
Corso basi di dati: Introduzione ad ASP
Corso basi di dati Introduzione alle ASP Gianluca Di Tomassi Email: [email protected] Università di Roma Tre Web statico e Web interattivo • In principio il Web era una semplice collezione di pagine HTML statiche collegate tra di loro tramite link ipertestuali. • La necessità di una maggiore interattività tra l’utente e il server Web, nata soprattutto nel momento in cui grandi aziende hanno visto nella rete delle reti, un nuovo veicolo commerciale, ha indirizzato gli sforzi nello sviluppo di strumenti per rendere il Web sempre più “dinamico” (Es. motori di ricerca) ⇒ Nasce lo standard CGI (Common Gateway Interface) Corso basi di dati - Introduzione alle ASP [email protected] 2 1 Interazione tra browser e applicazione CGI • il browser invia al server Web una richiesta facendo riferimento al nome dell’applicazione seguita da una serie di parametri; • il server Web riconosce che la richiesta deve essere indirizzata all’applicazione specificata e ne attiva un’istanza passandole opportunamente i parametri • l’applicazione effettua l’elaborazione in base ai parametri acquisiti e crea sullo standard output un flusso di dati che costituisce la pagina di risposta per il browser. • il server Web cattura il flusso di dati generato dall’applicazione CGI e la trasforma in una risposta HTTP Corso basi di dati - Introduzione alle ASP [email protected] 3 Client-side scripting L’interfaccia CGI tuttavia presenta dei limiti (Es. Invio di dati errati) SOLUZIONE: Netscape prima e Microsoft dopo, hanno pensato di permettere ai loro browser, di interpretare particolari linguaggi, detti linguaggi di scripting (JavaScript, Jscript e VBscript), che permettono al client di effettuare alcune semplici elaborazioni. Corso basi di dati - Introduzione alle ASP [email protected] 4 2 Script • Uno script è composto da una serie di comandi di script • Un comando di script istruisce la macchina a fare qualcosa Ø Assegnare un valore ad una variabile Ø Eseguire un’operazione Ø Stampare qualcosa Corso basi di dati - Introduzione alle ASP [email protected] 5 Linguaggi per il web Per fare chiarezza elenchiamo i 4 tipi di linguaggi con cui si ha a che fare nel web: • Linguaggi di marcatura (HTML) • Linguaggi compilati (C) • Linguaggi semicompilati (Java) • Linguaggi interpretati (scripts) Corso basi di dati - Introduzione alle ASP [email protected] 6 3 Linguaggi di scripting • I linguaggi di scripting sono una via di mezzo tra un sistema di marcatura ed un linguaggio di programmazione Ø Ø • • Un sistema di marcatura ha il compito di formattare un testo Un linguaggio di programmazione dà una serie completa di istruzioni al computer Un linguaggio di scripting si avvicina di più ad un linguaggio di programmazione che ad un sistema di marcatura Le regole di un linguaggio di scripting sono comunque meno rigide e complicate di quelle di un linguaggio di programmazione Corso basi di dati - Introduzione alle ASP [email protected] 7 Esecuzione di uno script • • • Affinchè uno script possa essere eseguito una serie di comandi vengono inviati allo scripting engine Script significa “copione”, “sceneggiatura”: una riga viene letta, interpretata ed eseguita e poi si passa alla successiva, come da copione I motori di scripting (scripting engine) sono degli oggetti COM (Component Object Model) che processano e interpretano gli script Corso basi di dati - Introduzione alle ASP [email protected] 8 4 Ambienti per lo scripting • • • Alcuni sistemi forniscono un host environment per i motori di scripting ossia garantiscono un ambiente dove gli script possono essere processati Affinchè uno script possa essere effettivamente processato in un ambiente, il motore di scripting del linguaggio di scripting deve essere installato sul web server Al contrario nella maggior parte dei casi il browser client non necessita supporto per lo scripting dato che tutto il carico è lasciato al lato server Corso basi di dati - Introduzione alle ASP [email protected] 9 ASP • ASP è l’acronimo per Active Server Pages • Le pagine sono "attive" poichè al loro interno custodiscono dei comandi che ne possono diversificare il contenuto finale • Così le pagine inviate al client possono essere differenti da caso a caso a seconda delle scelte fatte dal client stesso o di situazioni contingenti • Viene fornita una pagina HTML standard che offre di conseguenza il vantaggio, di essere indipendente dal tipo di browser utilizzato. Corso basi di dati - Introduzione alle ASP [email protected] 10 5 Introduzione ad ASP (1) Il successo ottenuto dal client-side scripting ha portato in breve tempo allo sviluppo di linguaggi di scripting anche per il lato server. Nascono: • Borland IntraBuilder dove è Javascript il linguaggio server-side utilizzato. • La Microsoft, rilasciando la versione 3.0 di Internet Information Server (IIS), ha introdotto sul mercato degli scripting server-side, la tecnologia Active Server Pages (ASP) Ambiente di interpretazione di scripting che gira sul server. Corso basi di dati - Introduzione alle ASP [email protected] 11 Introduzione ad ASP (2) L’idea della tecnologia ASP è quella di sfruttare la tecnologia COM (Common Object Model), cioè sfruttare tutte le risorse che il server Microsoft ha a disposizione e coinvolgendo anche i linguaggi di scripting come Jscript e Vbscript. A cosa serve ASP e come funziona Le pagine di un sito non sono più una semplice collezione di documenti HTML ma un insieme di pagine contenenti codice script interpretabile dal server Web. Il server Web effettua le elaborazioni specificate prima di inviare la pagina HTML risultante al browser che l’ha richiesta. Corso basi di dati - Introduzione alle ASP [email protected] 12 6 ASP un linguaggio? • ASP non è un linguaggio di scripting • Linguaggi di scripting sono: Ø Visual Basic Script Ø JavaScript Ø PERL Corso basi di dati - Introduzione alle ASP [email protected] 13 VBScript • Veloce e leggero subset di Visual Basic • Altamente integrato con i www browser • Puro interprete: processa il codice sorgente incorporato nell’HTML • Non produce applets stand-alone ma viene usato per dotare di interattività i documenti HTML Corso basi di dati - Introduzione alle ASP [email protected] 14 7 JavaScript • • • Nel 1994 la Netscape sviluppa LiveScript Nel 1995 nasce la collaborazione con la Sun per sviluppare in parallelo JavaScript Nel 1996 Microsoft adotta un linguaggio molto simile: Jscript per problemi di copyright Corso basi di dati - Introduzione alle ASP [email protected] 15 PERL • • • Processing Extraction Report Language Linguaggio di scripting nato per l’automatizzazione di alcuni task specifici Diffusione enorme nell’ambito della manutenzione di attività di un server • Utilizzato in particolare per la scrittura di procedure CGI • Il codice non viene compilato in codice macchina Corso basi di dati - Introduzione alle ASP [email protected] 16 8 Funzionamento di un’applicazione ASP (1) Lato CLIENT Lato SERVER Richiesta Risposta Server Page DB Web server con opportune librerie • La caratteristica principale di ASP e dei comandi script in generale è di garantire la generazione di codice HTML "on the fly" cioè al volo • Quando il file di estensione asp viene chiamato dal browser il processo a cui viene dato inizio produce in risposta del codice HTML Corso basi di dati - Introduzione alle ASP [email protected] 17 Funzionamento di un’applicazione ASP (2) 1. Il client richiede una pagina “.asp” al server. Il server invoca ASP per elaborarla 2. Vengono effettuati il parsing, il controllo sintattico e la compilazione della pagina 3. Il codice viene eseguito 4. Il risultato e viene immerso nel codice HTML 5. La pagina HTML risultato viene inviata al client Corso basi di dati - Introduzione alle ASP [email protected] 18 9 ASP: prime accortezze Per creare uno script “.asp” disponibile agli utenti del web è necessario: Ø Salvare il file in una directory appartenente al web publishing Ø Avere il permesso di esecuzione degli script Corso basi di dati - Introduzione alle ASP [email protected] 19 La sintassi ASP Una pagina ASP può essere scomposta in tre parti: 1) Testo 2) Marcatori HTML 3) Comandi script In un documento con estensione “.asp” è consentito utilizzare variabili, cicli e istruzioni di controllo. Una pagina può essere costituita solamente da codice ASP, oppure avere ASP immerso nel codice HTML ( in entrambi i casi l’estensione deve essere “.asp”). Corso basi di dati - Introduzione alle ASP [email protected] 20 10 La sintassi ASP: esempio Il codice ASP è sempre delimitato dai due marcatori <% e %>. ESEMPIO: Assegnazione di un valore ad una variabile Es: <% eta=26 %> Espressione di output Es: <%= eta %> Viene inviato il valore corrente della variabile al browser Corso basi di dati - Introduzione alle ASP [email protected] 21 Un semplice esempio <HTML> <BODY> Output:<BR> <% intS = 60*60 %> Ci sono <% Response.Write intS %> secondi in un’ora. </BODY> </HTML> Corso basi di dati - Introduzione alle ASP [email protected] 22 11 Vantaggi e svantaggi nell’utilizzare ASP Vantaggio completa indipendenza dell’applicazione particolare browser utilizzato Web dal Svantaggio un lavoro notevole per il server che deve generare pagine statiche ⇒ Soluzione in contrasto con il modello client/server Corso basi di dati - Introduzione alle ASP [email protected] 23 Linguaggi di scripting supportati da ASP • • • Possibilità di utilizzare più linguaggi di scripting all’interno di un’applicazione ASP. ASP supporta in modo nativo due linguaggi di scripting, VBScript e Jscript. Se non diversamente specificato, ASP interpreta il codice script che trova all’interno dei marcatori <% e %> come codice VBScript, il linguaggio predefinito. Corso basi di dati - Introduzione alle ASP [email protected] 24 12 Come dichiarare il linguaggio di scripting ? 1. a livello di sito (quindi di Web server), cioè per tutte le applicazioni ASP gestite da IIS; 2. a livello di file (quindi di singola applicazione), cioè per tutte le pagine che compongono un’applicazione; 3. a livello di funzione NOTARE: La procedura per il settaggio del linguaggio primario dipende dal tipo di linguaggio da introdurre: Ø Supporta la sintassi object.method Ø Non supporta la sintassi object.method Corso basi di dati - Introduzione alle ASP [email protected] 25 Specificare il linguaggio a livello di file se “object.method” supportato Tramite la direttiva @ LANGUAGE è possibile specificare il linguaggio da utilizzare all’interno di una determinata pagina ASP. Accortezze sulla direttiva : Ø Questa deve essere la prima linea del file Ø Non va inserita in un file incluso Ø Inserire uno spazio tra @ e LANGUAGE Ø Non inserire altri elementi nella linea ESEMPIO: <% @ LANGUAGE = “JScript” %> à il motore ASP interpreterà il codice contenuto all’interno di quella pagina come codice JScript. Corso basi di dati - Introduzione alle ASP [email protected] 26 13 Specificare il linguaggio al livello di funzione Si utilizza una versione arricchita del tag <SCRIPT>: <SCRIPT LANGUAGE=”VBScript” RUNAT=”Server” > Codice script </SCRIPT> L’attributo RUNAT specifica a che livello deve essere interpretato lo script; se non viene impostato, lo script è destinato all’interpretazione da parte del browser. VANTAGGIO L'uso di RUNAT fa si che il codice sorgente non è mai presente nella pagina html che viene spedita al navigatore dal server. Corso basi di dati - Introduzione alle ASP [email protected] 27 Inclusione di file • • Server-side includes è un meccanismo che consente di inserire informazioni in un file prima che venga processato Due modi per descrivere il percorso del file: Ø Virtual: indica un percorso che inizia in una directory virtuale Es: <!—#INCLUDE VIRTUAL="nome"--> Ø File: indica un percorso relativo a partire dalla directory che include il file “.asp” Es: <!--#INCLUDE FILE="nomefile.est" --> NOTA: va usata sempre al di fuori dei tag <%,%>, che delimitano gli script ASP. Corso basi di dati - Introduzione alle ASP [email protected] 28 14 Regole per l’inclusione di file • • • • • • • Un file incluso può includere altri file Si può includere lo stesso file più di una volta Attenzione ai cicli infiniti di inclusione Un file non può includere se stesso Non è possibile aprire un delimitatore in un file “.asp” e chiuderlo in un file incluso Non è possibile inserire un delimitatore dentro un altro se il primo non è stato ancora chiuso non è possibile usare un comando di script per creare il nome di un file incluso Ø Es: <% name=(intestazione & ".inc") %> <!—include file="<% name %>" --> questo script fallisce!!! Corso basi di dati - Introduzione alle ASP [email protected] 29 Commenti nelle pagine ASP • In VBScript le linee possono essere commentate con il REM del BASIC o con gli apostrofi ESEMPIO: <% REM Sto per chiamare CiaoVBS Call CiaoVBS() ‘sto per chiamare Ciao Call Ciao() %> • In JavaScript le linee possono essere commentate con // ESEMPIO: <% // Sto per chiamare CiaoJS Call CiaoJS() // sto per chiamare Ciao Call Ciao() %> Corso basi di dati - Introduzione alle ASP [email protected] 30 15 Suddividere un’istruzione su più righe Nel caso si incontri un’istruzione singola molto lunga se la si vuole distribuire su due righe allora si deve utilizzare il carattere di continuazione di VBScript "_“ "_“ vuol dire "continua alla riga successiva" Esempio che genera errore: <% Response.write "AAAAAAAAAAAAAAAAA" %> Esempio corretto: <% Response.write _ "AAAAAAAAAAAAAAAAA" %> Corso basi di dati - Introduzione alle ASP [email protected] 31 Forzare la dichiarazione delle variabili Per poter forzare a dichiarare tutte le variabili utilizzate all’interno della pagina ASP si utilizza: Option Explicit Quindi se si aggiunge <% Option Explicit %> subito dopo la riga <%@ Language)…%>, si fa in modo che VBScript richieda dichiarazioni esplicite di tutte le variabili Corso basi di dati - Introduzione alle ASP [email protected] 32 16