1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

70
1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici

Transcript of 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

Page 1: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

1

Basi di dati e Web

Prof. Stefano Paraboschi

Prof. Barbara Pernici

Page 2: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

2

GATEWAY

• I server Web possono richiamare qualunque programma– trasmettendo anche eventuali parametri

• collegamento tra ambiente web e altri ambienti

• chiamata dei programmi: http, URL, eventuali parametri

Page 3: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

3

Web server e file

Web server

FILE SYSTEM - pagine statiche

A.html

B.html C.html

D.html

Cgi-bin

Xyz.exe abc.exe

Pagine eseguibili

CGIHTTP

Web client (browser)

Page 4: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

4

CCommon ommon GGateway ateway IInterfacenterface

• Meccanismo che consente al Web Server Meccanismo che consente al Web Server di eseguire applicazioni esterne in grado di eseguire applicazioni esterne in grado di creare pagine di creare pagine dinamicamentedinamicamente

Page 5: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

5

Caratteristiche di CGI Caratteristiche di CGI • Non e’: Non e’:

•un linguaggio di programmazioneun linguaggio di programmazione•un protocollo di comunicazioneun protocollo di comunicazione

• Definisce solo un insieme di Definisce solo un insieme di variabili di variabili di ambienteambiente utili alla applicazione (ad es. utili alla applicazione (ad es. parametri inviati dal client)parametri inviati dal client)

%&£$$pp*&£$

Page 6: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

6

EsecuzioneEsecuzione

1.1. Il server riconosce dall’URl che la risorsa richiesta dal cliente e’ un eseguibile

http://mio.server.web/cgi-bin/xyz.exe

Page 7: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

7

EsecuzioneEsecuzione2.2. Il server decodifica i parametri inviati dal cliente e riempie le variabili d’ambiente

es: request_method, query_string, content_length, content_type

http://mio.server.web/cgi-bin/xyz.exe?#^@@

#^@@P$&*£

Page 8: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

8

EsecuzioneEsecuzione

3.3. Il server lancia in esecuzione l’applicazione richiesta

#^@@P$&*£

Page 9: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

9

EsecuzioneEsecuzione

4.4. L L’applicazione stampa la sua risposta sullo standard output(la risposta puo’ essere una pagina web o di altro tipo - il tipo e’ dichiarato nella risposta)

Page 10: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

10

EsecuzioneEsecuzione

5.5. Il server ridireziona lo standard output sulla rete e quindi verso il client

Page 11: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

11

Invio di parametri a un programma Invio di parametri a un programma CGICGI

• Il client puo’ usare due metodi:•GET•POST

•GET: i parametri sono codificati nell’URLhttp://www.mioserver.it/cgi-bin/xyz?par=val•POST : i parametri sono spediti al server separatamente, usando il body del messaggio di richiesta HTTP•NB: il metodo POST richiede l’uso di un costrutto HTML chiamato FORM

Page 12: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

12

Form (moduli)• Input dall’utente• Come: con parametri (<INPUT type=):

– text boxes (text)– buttons (submit)– radio buttons (radio)– password (password)– hidden (valore fisso, non visibile all’utente)

• i parametri hanno un nome a cui si associa un valore compilando la form

• submit: si invia il contenuto del modulo al server come parte di un’altra richiesta http di una pagina speciale (eseguibile)

Page 13: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

13

FORM HTMLFORM HTML

Esempio: invio al server il nome dell’utente<form action=http://www.mysrvr.it/cgi-bin/xyz.exe method=post><p>Dimmi il tuo nome:<input type=“text” name=“chisei” ></p><input type=“submit” ></form>

Page 14: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

14

FORM HTMLFORM HTML

Page 15: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

15

FORM HTML<HTML>

<BODY>

<form action=http://www.mysrvr.it/cgi-bin/xyz.exe

method=post>

<p>Dimmi il tuo nome:

<input type="text" name=“chisei” ></p>

<input type="hidden" name=“sessione” value="123" >

<p>Password:

<input type="password" name=“pwd” ></p>

<p>

<input type="radio" name="tipo" value="doc">docente</p>

<p>

<input type="radio" name="tipo" value="stud">studente</p><input type="submit" value="VAI">

<input type="reset">

</form>

</BODY>

</HTML>

Page 16: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

16

Page 17: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

17

Struttura di un programma CGIStruttura di un programma CGI

leggi le variabili d’ambiente

leggi le variabili d’ambiente

stampa codice HTML

stampa codice HTML

elaboraelabora

stampa intestazioneMIME

stampa intestazioneMIME

cout << “Content-type: text/html”<< endl << endl;

Page 18: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

18

Decodifica dei parametriDecodifica dei parametri

leggi la variabileRequest_methodleggi la variabileRequest_method

leggi la variabileQuery_string

leggi la variabileQuery_string

GET

leggi la variabilecontent_length

leggi la variabilecontent_length

leggi content_lengthcaratteri da

standard input

leggi content_lengthcaratteri da

standard input

POST

Valore?

Page 19: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

19

Programmi eseguibili

• per selezionare pagine

• Per accedere a pagine riservate

• per accedere a servizi– per accedere a basi di dati

Page 20: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

20

A Web page (containing a list of links)

Page 21: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

21

A “unique” page-scheme: ProfessorListPage

ProfessorListPage

ProfessorListNameToProfP

Page 22: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

22

An ADM Scheme

ProfessorListPage

ProfessorListNameToProfP

ProfessorPage

NamePositionAddress

EMailResearchList

AreaToResP

Page 23: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

23

Heterogeneous Union and Forms

Page 24: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

24

Heterogeneous Union and Forms in ADM

ProfessorListPage

ProfessorListName

ToProfP

ProfessorPageNamePosition

Address

EMailResearchList

Area

ToResP

Name

Submit

U

SearchProfPage

Page 25: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

25

Maintenance

• The Schemes help designers to maintain the hypertext structure

• Maintenance activities correspond to apply scheme transformations:– introduce multilevel lists– introduce forms– split pages– ...

Page 26: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

26

Maintenance: example

Page 27: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

27

Tecnologie per l’integrazione Web/Basi di dati

Page 28: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

28

Web & basi di datiWeb & basi di dati

Obiettivi::•ottenere la generazione dinamica di ottenere la generazione dinamica di pagine a partire da dati contenuti in una pagine a partire da dati contenuti in una base di datibase di dati•sfruttare i pregi di Web e basi di dati, sfruttare i pregi di Web e basi di dati, aggirandone i difettiaggirandone i difetti

Page 29: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

29

Pregi e difetti di basi di dati e WebPregi e difetti di basi di dati e Web

pro contropro contro

•semplicesemplice•portabileportabile•a basso costoa basso costo•indipendente indipendente dalle interfaccedalle interfacce•ipermedialeipermediale

• basato su filebasato su file• statico statico

•modelli dei datimodelli dei dati•linguaggi di linguaggi di interrogazione interrogazione •funzioni di funzioni di amministazioneamministazione

• complessecomplesse• proprietarieproprietarie• navigazione e navigazione e

presentazione presentazione assentiassenti

WebWeb

basi basi di datidi dati

Page 30: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

30

Programma CGIProgramma CGI

Web serverWeb server

CGICGI

gatewaygateway gatewaygateway

DBMSDBMS

via DBMS API,via DBMS API,embedded SQL,embedded SQL,

ODBC ...ODBC ...

Page 31: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

31

InvocazioneInvocazione• Il cliente specifica nell’URL il nome del programma da eseguire•Il programma deve stare in una posizione precisa (di solito il direttorio cgi-bin)

http://mio.server.web/cgi-bin/xyz.exe

root

cgi-bin

xyz.exe

Page 32: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

32

Esempio di CGI per accesso a DB

main(char Cognome[]){ char Nome[20], Dipartimento[20], Citta[20]; char Indirizzo[60]; int Age, Stipendio; $ open connection to NewCompanyDB $ select Nome, Dipart, Citta, Indirizzo, Stipendio into :Nome, :Dipart, :Citta, :Indirizzo, :Stipendio from Impiegato I, Sede S where I.Sede = S.Citta and Cognome = :Cognome ; $ close connection ...

Page 33: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

33

if (sqlcode == 0){ printf("<html>\n<head><title> %s %s",Nome,Cognome, "</title></head>\n<body>\n"); printf("<H3> %s %s",Nome,Cognome,"</H3>\n"); printf("<table>\n"); printf("<tr><td><em>Dipartimento</em>:</td><td>%s", Dipartimento,"</td></tr>\n"); printf("<tr><td><em>Citta</em>:</td><td>%s",Citta,“ </td></tr>\n"); printf("<tr><td><em>Indirizzo</em>:</td><td>%s", Indirizzo,"</td></tr>\n"); printf("<tr><td><em>Stipendio</em>:</td><td>%u", Stipendio,"</td></tr>\n"); printf("<tr><td><a href=\"/cgi-bin/ProjOfEmp?Cognome=%s", Cognome,"\">Progetti in

corso</a></td><td> </td></tr>\n"); printf("</table>\n</body>\n</html>"); } else { printf("<html>\n<head><title>Error</title></head>\n<body>\n"); printf("niente impiegato %s\n",Cognome,"</body>\n</html>"); }}

Page 34: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

34

Programma CGI per l’accesso a DBProgramma CGI per l’accesso a DB

• PRO– portabilità: usa solo standard aperti: URL,

HTTP, CGI, HTML (attenzione però all’accesso al DB)

• CONTRO

– prestazioni: creazione di un sotto-processo per ogni richiesta

– aperture e chiusure ripetute della connessione con la base di dati

Page 35: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

35

Form e CGI come interfacce di applicazioni

• Per applicazioni di qualsiasi tipo

• Problemi:– identificazione utente, sicurezza– affidabilita’, transazioni– sessioni– numero di processi attivati, operazioni di

apertura e chiusura

Page 36: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

36

Simulazione sessioni

• HTTP consente di richiedere una pagina alla volta

• Simulazione di sessioni:– con hidden parameters nelle form– con cookie (max 4KB) (inviato

nell’intestazione della risposta e memorizzato come parte della configurazione del browser) e dizionario stato clienti

Page 37: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

37

Processo CGI: FAST-CGIProcesso CGI: FAST-CGIhttp://www.fastcgi.com

• Il web server genera il processo fast-cgi in fase di inizializzazione

• Il processo esegue una routine di inizializzazione e si pone in attesa

• Ad ogni richiesta, il web server apre una connessione verso il processo fast-cgi

• Il processo genera output sulla connessione http con il client passatagli dal server http

• Il processo fast-cgi chiude la connessione e rimane in attesa di nuove connessioni

Page 38: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

38

FAST-CGI: vantaggiFAST-CGI: vantaggi

• Migliori prestazioni: creazione di processi fast-cgi solo in fase di inizializzazione

• Mantenimento dello stato: la persistenza del processo fast-cgi consente di superare la natura stateless di http

• Disponibilita’: distribuito gratuitamente da Open Market come fast-cgi library

Page 39: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

39

Applicazione Applicazione serverserver

dispatcherdispatcher

Processo CGIProcesso CGI

DBMSDBMS

Web serverWeb server

CGICGI

dispatcherdispatcher

gatewaygateway

Page 40: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

40

Processo CGIProcesso CGI

• PRO– evita apertura e chiusura della connessione ad ogni

richiesta– sfrutta le ottimizzazioni del DBMS– basato su standard CGI

• CONTRO

– prestazioni: tempo di commutazione tra processi diversi (dispatcher - server)

– complessita’ realizzativa dell’interfaccia tra dispatcher e applicazione server

Page 41: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

41

GATEWAYGATEWAY

Gateway Web-base di datiGateway Web-base di dati

CLIENTCLIENT

DBMSDBMSHTTP HTTP serverserver

Page 42: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

42

Una gerarchia di soluzioniUna gerarchia di soluzioni

GatewayGateway

su clientsu client su Serversu Server

estensioneestensioneesternaesterna

basato su basato su APIAPI

estensioneestensioneinternainterna

proprietarioproprietario

processo processo CGICGI

programmaprogrammaCGI CGI

basato su basato su CGICGI

Page 43: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

43

Architetture di servizi on linebasati su Web

• Architettura di base

• clienti dinamici

• web applications

• soluzioni complesse

Page 44: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

44

Architettura di base

BROWSER WEB SERVER

LOCAL FILE

SYSTEM

Page 45: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

45

Clienti dinamiciscripting lato client

BROWSER

HTML

Script

Compiled modules

DOMDOM

Page 46: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

46

Applicazioni su web (server side)

BROWSER

WEB SERVER

DATABASEJAVA SERVLET, API

ASP

JSP

PHPScripted page

HTML page

Scripting lato server

Page 47: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

47

Applicazioni complesse:un esempio di modulo intelligente

client

CAP

Web server

Richiesta form

Risposta

3 minuti

Risposta con form con inclusione script per completare citta’ da CAP

Page 48: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

48

CAP

Web server

Sottomissione form invocata da script Java

Risposta

3 secondi

Risposta con form ricostruito con completamento citta’ da CAP

Seconda soluzione

CAP

00198

00198ROMA

Page 49: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

49

Web server

L’oggetto comunica direttamente con l’application server

Risposta

< sec

Oggetto distribuito che comunica direttamente con un oggetto sul lato server e restituisce la citta’ dato il CAP

Terza soluzione

CAP

00198

Application server

Page 50: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

50

Server APIServer API

Web Web serverserver

DBMSDBMS

GatewayGateway

APIAPI API = interfaccia per estendere il servercon servizi non standard

Page 51: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

51

Server APIServer API

• PRO– efficienza: il gateway e’ nello stesso processo

del Web server (es. e’ una libreria collegata dinamicamente)

– ancora parzialmente basato su standard aperti (URL, HTTP, HTML)

• CONTRO

– dipendenza da API proprietarie (NSAPI, ISAPI ) non standardizzate

Page 52: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

52

Server ProprietarioServer Proprietario

Web Web serverserver

DBMSDBMS

GatewayGateway Costruito dal venditoreCostruito dal venditoredel Web server o DBMSdel Web server o DBMS

Page 53: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

53

Server Proprietario Server Proprietario

• PRO– efficienza: il server Web diventa una

applicazione cliente della base di dati• CONTRO

– dipendenza dallo specifico Web Server e DBMS (a meno che il gateway non utilizzi prodotti di connettivita’ come ODBC)

Page 54: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

54

Java ServletJava Servlethttp://java.sun.com/products/servlet/index.html

• Differenze rispetto a fast-cgi:– protocollo basato su NCGI, versione

semplificata di fast-cgi– applicazioni (servlet) scritte in Java – servlet eseguite nello stesso processo del

web server, per minor carico di comunicazione interprocesso

Page 55: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

55

Java Servlet: vantaggiJava Servlet: vantaggi• Indipendenza dalla piattaforma grazie a Java• Sicurezza gestita mediante Security Manager

della JVM• Gestione degli errori con il meccanismo delle

eccezioni Java• Disponibilita’: distribuzione gratuita di Java

Servlet Development Kit contenente la libreria Java servlet

• Servlet Status• Introdotto nel 1995

• Version 2.1 JSDK (ServletRunner) disponibile

Page 56: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

56

Servlet+JDBC

• Uso di JDBC a lato client è oneroso:– caricamento dei driver– traffico di spedizione dati

• Uso di dispatcher e processo CGI ottimizza l’accesso ma è difficile da programmare

• Soluzione: uso di servlet+JDBC

Page 57: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

57

Dispatcher con i Servlet

Servlet

DBMSengine

Database

JDBC+SQL

Web Server

JVM

Dispatcher

ApplicationServer

Page 58: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

58

Server-side scripting

• CGI, FastCGI, Java Servlet sono architetture general-purpose per eseguire applicazioni via HTTP

• Sono complesse da programmare

• Server-side scripting: una soluzione più semplice per produrre testo marcato in modo dinamico a lato server

Page 59: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

59

Client-side scripting• Il codice script è interpretato dal

browser

+ marcatura &+ marcatura &scripting scripting

e componentie componenti

<HTML> <HTML> ……..</HTML> </HTML> <script> <script> ……......</script></script>

contenutocontenuto

testotesto

Ciao!Ciao!Ciao!Ciao!

TextboxTextbox

pagina interattivapagina interattiva

Page 60: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

60

Server-side scripting• Il codice script è interpretato dal server

• Il browser riceve HTML puro

<HTML> <HTML> <BODY><BODY> … …..</BODY></BODY></HTML> </HTML>

<HTML> <HTML> ……..</HTML> </HTML> <script> <script> ……......</script></script>

Template: testo+script da interpretare sul server

Page 61: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

61

1

Flusso dei messaggiFlusso dei messaggi

BROWSER

SERVER

DATABASE

3

5

24

6

7

8

1. L’utente richiede una pagina

2. Il server preleva la pagina

3. Il server passa il file al browser

4. L’utente compila la form e la passa al server

5. Il server esegue il codice ASP

6. Il file ASP comporta l’accesso ad un database

7. L’esecuzione ASP genera una pagina HTML

8. Il server invia la pagina HTML al browser

Page 62: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

62

Active Server PagesActive Server Pages Architettura server-side scripting Architettura server-side scripting

proprietaria proprietaria

Rilasciate da Microsoft a partire dalla Rilasciate da Microsoft a partire dalla versione 3.0 di IISversione 3.0 di IIS

Linguaggio di scripting di default Linguaggio di scripting di default VBScriptVBScript

Componenti server-side ActiveX, COM, Componenti server-side ActiveX, COM, DCOM, JavaBeansDCOM, JavaBeans

Microsoft Active Server Pages (ASP)

Page 63: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

63

Concetti GeneraliASP è un ambiente di sviluppo che permette di creare script “lato server” all’interno di documenti HTML, consentendo di realizzare applicazioni Web dinamiche e interattive Web Server

Active ServerPages

HTTPRequest

HTTPResponse

Browser

Requisiti minimi• Microsoft Internet Information Server versione 3.0 su Windows NT Server• Microsoft Peer Web Services versione 3.0 su Windows NT Workstation• Microsoft Personal Web Server su Windows 9x

Page 64: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

64

Un file .asp contiene una combinazione di:Un file .asp contiene una combinazione di: TestoTesto Tag HTMLTag HTML Comandi ScriptComandi Script

Si ottiene un file Si ottiene un file .asp.asp anche semplicemente anche semplicemente

ridenominando un file ridenominando un file .html.html o o .htm.htm

MS IIS mette a disposizione un ambiente per MS IIS mette a disposizione un ambiente per

processare gli script (interprete VB)processare gli script (interprete VB)

File ASP

Page 65: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

65

Delimitatori ASPDelimitatori ASP <% . . . . . . %> Comandi Server-side scripting. <% . . . . . . %> Comandi Server-side scripting.

Per esempio: Per esempio: response.write()response.write()

<%= . . . . . .%> Espressioni da valutare<%= . . . . . .%> Espressioni da valutare

ASP: sintassi

Esempio 1

<%If Time >=#12:00:00 AM# And Time < #12:00:00 PM# Then

Greeting = “Good Morning”Else

Greeting = “Hello”End if%>

Esempio 2

<FONT COLOR=”GREEN”><%= greeting %></FONT>

Page 66: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

66

Oggetti server-side• Request object

– METODI: querystring, form, cookies

• Session object• Application object

– METODI: lock, unlock

• Response object– METODI: write, redirect, end, flush, cookies– PROPRIETÀ: buffer, cookies

• Server object– METODI: createobject, mappath, URLencode,

HTMLencode– PROPRIETÀ: scripttimeout

Page 67: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

67

Indipendenza dal tipo di browser utilizzatoIndipendenza dal tipo di browser utilizzato Il browser vede solamente pagine HTMLIl browser vede solamente pagine HTML All’utente non sono necessari programmi proprietari All’utente non sono necessari programmi proprietari

o estensioni del browsero estensioni del browser

Facilità di apprendimento e utilizzoFacilità di apprendimento e utilizzo

Oggetti di utilità Oggetti di utilità

Nasconde la presenza di programmi script agli Nasconde la presenza di programmi script agli

utenti e ad eventuali hackerutenti e ad eventuali hacker

Consente un collegamento semplice ed Consente un collegamento semplice ed

efficiente a qualsiasi database via ADOefficiente a qualsiasi database via ADO

Vantaggi di ASP

Page 68: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

68

Accesso a database con ASPAccesso a database con ASP

• Esempio di server proprietario (Microsoft)

• Accesso semplice ed efficiente

• Utilizzo di componenti Active Data Object (ADO)

• Accesso tramite interfaccia ODBC e linguaggio SQL

Page 69: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

69

Modello ADO• Connection: oggetto che descrive una

connessione con la base di dati– open, close, ...

• Command: oggetto che descrive la query da eseguire

• execute..

• RecordSet: oggetto che descrive il risultato della query (insieme di tuple)

• BOF, EOF, clone, close, delete, move, moveNext, open, requery, resynch, update, ...

Page 70: 1 Basi di dati e Web Prof. Stefano Paraboschi Prof. Barbara Pernici.

70

ConnessioneConnessione ee queryquery • Ogni accesso deve

essere preceduto da una connessione al database<%Conn.Open “ADOSamples”

Set RS = Conn.Execute(“SELECT * FROM Table)Do While Not RS.EOF. . . .RS.MoveNextLoopRS.CloseConn.Close %>

• Si può mantenere una connessione aperta per tutta la sessione

SUB Session_OnStart

‘----Open ADO connection to

‘----database

Conn.Open “UserDB1”, “userdblogin”, “userdbpassword”

END SUB