• Non ci sono risultati.

Architettura dell’Informazione 8. Realizzare Siti Dinamici e Applicazioni Web Paolo Milazzo

N/A
N/A
Protected

Academic year: 2022

Condividi "Architettura dell’Informazione 8. Realizzare Siti Dinamici e Applicazioni Web Paolo Milazzo"

Copied!
31
0
0

Testo completo

(1)

Architettura dell’Informazione

8. Realizzare Siti Dinamici e Applicazioni Web

Paolo Milazzo

Dipartimento di Informatica, Universit`a di Pisa http://pages.di.unipi.it/milazzo

milazzo di.unipi.it

Master in Turismo e ICT A.A. 2015/2016

(2)

Introduzione (1)

Un sito web costituito da un certo numero di pagine HTML `e un sito statico

I Il contenuto di un documento HTML viene determinato dall’autore del documento stesso e non cambia mai

I HTML non consente di descrivere pagine che si modificano o si aggiornano automaticamente in risposta ad eventi “esterni” (ad esempio: inserimento di dati nei form da parte degli utenti) HTML infatti `e un linguaggio dimark-up, non un linguaggio di programmazione

I Consente di descrivere la struttura di una pagina web

I Non consente di scrivere programmi che ricevano dei dati e li elaborino Per poter realizzare siti web pi`u evoluti servono quindi linguaggi pi`u evoluti che incorporino aspetti di programmazione

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 2 / 31

(3)

Introduzione (2)

Esistono numerosi linguggi e numerose tecnologie per realizzare siti web evoluti

Si differenziano principalmente in due categorie:

I Linguaggi (e tecnologie)client side

I Linguaggi (e tecnologie)server side

I linguaggi client side vengono utilzzati all’interno dei documenti HTML e vengono eseguiti nel computer dell’utente che visita il sito I linguaggi server side si utilizzano per scrivere programmi che verranno eseguiti sul server web e che si occupano di generare “al volo” documenti HTML

(4)

I linguaggi (e le tecnologie) client side (1)

Vantaggi dei linguaggi client side:

I Consentono una elevata interattivit`a con l’utente (apertura di finestre

“pop-up”, risposta a eventi legati ai movimenti del mouse, ecc...)

I Responsivit`a: essendo eseguiti sul computer dell’utente (e non sul server) forniscono tempi di risposta molto rapidi in quanto durante le interazioni con l’utente non ci sono scambi di dati tra client e server

I Non sovraccaricano di lavoro il server Svantaggi dei linguaggi client side:

I Sono un po’ limitati nelle funzionalit`a: ad esempio, non possono accedere a eventuali database presenti sul server

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 4 / 31

(5)

I linguaggi (e le tecnologie) client side (2)

Esempi tipici di applicazione dei linguaggi client side:

I Controllo dei dati immessi in un form prima dell’invio al server

(6)

I linguaggi (e le tecnologie) client side (3)

Esempi tipici di applicazione dei linguaggi client side:

I Visualizzazione di immagini a rotazione (image slideshow)

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 6 / 31

(7)

I linguaggi (e le tecnologie) client side (4)

Esempi tipici di applicazione dei linguaggi client side:

I Calendario

(8)

I linguaggi (e le tecnologie) client side (5)

Tra i linguaggi client sidepi`u utilizzati abbiamo:

I Javascript: `e un linguaggio di programmazione che consente di eseguire semplici elaborazioni di dati all’interno di un browser. Funziona da tempo con tutti i principali browser senza bisogno di applicazioni aggiuntive (plug-in)

I Flash: `e una tecnologia per la realizzazione di siti web animati che richiede l’istallazione di uno specifico esecutore (plug-in) nel computer dell’utente

I Applet Java: `e una tecnologia basata sul linguaggio di programmazione Java per la realizzazione di programmi anche molto complessi da eseguire nel computer dell’utente. Richiede l’istallazione di una Java Virtual Machine nel computer dell’utente

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 8 / 31

(9)

Javascript (1)

Tra il linguaggi client side vediamo in particolare Javascript Javascript `e un lingugaggio di scripting, ossia si usa per realizzare degliscript

Uno script `e un programma solitamente piuttosto piccolo e semplice che non richiede di eseguire calcoli sofisticati

Javascript `e IL linguaggio di scripting per il web

I Al giorno d’oggi la stragrande maggioranza delle pagine web contiene codice Javascript

Il codice Javascript viene inserito all’interno del documento HTML utilizzando il tag <script>

Il browser riconosce il codice Javascript e lo esegue

Il tag <script> consente anche di specificare il nome di un file separato che contiene il codice Javascript da eseguire

(10)

JavaScript (2)

Un semplice esempio di documento HTML+JavaScript:

< h t m l >

< h e a d >

< t i t l e > La mia p r i m a a p p l i c a z i o n e J a v a S c r i p t < / t i t l e >

< / h e a d >

< b o d y >

< s c r i p t >

a l e r t ( " Hello , w o r l d ! " );

< / s c r i p t >

< / b o d y >

< / h t m l >

Questo script apre un alertbox (una finestrella) con scritto Hello, world!

I JavaScript consente a un documento HTML di interagire con l’utente!

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 10 / 31

(11)

Javascript (3)

E’ anche possibile associare l’esecuzione di una porzione di codice JavaScript all’avvenimento di un particolare evento

I Pressione di un bottone

I Movimento del mouse su un elemento del documento HTML

I Modifica dei campi di un form

I ....

Esiste un set di eventi che possono essere associati a qualunque elemento del documento HTML tramite l’uso di attributi.

I Ad esempio: <input type="button" onclick="....codice JavaScript....">

I Esegue il codice JavaScript quando il bottone viene cliccato (ossia premuto)

(12)

Javascript (4)

Il set di eventi (di solito) include:

onclick Click sull’elemento ondblclick Doppio click sull’elemento

onmousedown Il tasto (sinistro) del mouse viene premuto onmouseup Il tasto (sinistro) del mouse viene rilasciato onmouseover Il mouse si trova sopra l’elemento

onmouseout Il mouse si sposta da sopra l’elemento

onkeypress Pressione di un tasto della tastiera mentre il focus `e sull’elemento onkeydown Un tasto della tastiera `e premuto mentre il focus `e sull’elemento

onkeyup Un tasto della tastiera `e rilasciato mentre il focus `e sull’elemento onfocus Si pone il focus sull’elemento

onblur Si sposta il focus su un altro elemento onchange L’elemento viene modificato

onsubmit Si preme il bottone “submit” (per i form) onreset Si preme il bottone “reset” (per i form)

onselect L’utente seleziona il testo contenuto nell’elemento

onload Al caricamento della pagina/dell’elemento (e.g. body/immagini) onunload Alla chiusura della pagina

onresize La finestra del browser viene ridimensionata

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 12 / 31

(13)

Javascript (5)

Un altro Hello World che usa gli eventi:

< h t m l >

< h e a d >

< t i t l e > La mia p r i m a a p p l i c a z i o n e J a v a S c r i p t < / t i t l e >

< / h e a d >

< b o d y >

< i n p u t t y p e = " b u t t o n " v a l u e = " C l i c c a qui "

o n c l i c k = " a l e r t ( ’ Hello , w o r l d ! ’) " >

< / b o d y >

< / h t m l >

Quando si clicca sul bottone “Clicca qui” si apre un alertbox con scritto Hello, world!

(14)

Javascript (6)

Con l’approccio a eventi si pu`o facilmente realizzare un rollover (un’immagine che cambia quando le si passa sopra il mouse):

< img src = " l o g o . png " w i d t h = " 100 px "

o n m o u s e o v e r = " t h i s . src = ’ l o g o 2 . png ’ "

o n m o u s e d o w n = " t h i s . src = ’ l o g o . png ’ " alt = " r o l l o v e r " >

L’immagine visualizzata inizialmente `e logo.png

Quando il mouse si posiziona sull’immagine logo.png viene sostituita da logo2.png

Quando il mouse si sposta da sopra l’immagine viene di nuovo visualizzata l’immagine iniziale

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 14 / 31

(15)

Javascript (7)

Javascript pu`o essere usato anche per creare dinamicamente il contenuto della pagina web

Ad esempio, il seguente documento HTML usa Javascript per creare un form con un numero di caselle di testo scelto dall’utente

< h t m l >

< h e a d > < t i t l e > F o r m d i n a m i c o < / t i t l e > < / h e a d >

< b o d y >

< f o r m id = " m y f o r m " >

< i n p u t t y p e = " s u b m i t " v a l u e = " i n v i a i d a t i " > < br >

< / f o r m >

< s c r i p t >

var n = p a r s e I n t ( p r o m p t ( " q u a n t i v a l o r i v u o i i n s e r i r e ? " ));

var f = d o c u m e n t . g e t E l e m e n t B y I d ( " m y f o r m " );

for ( var i =0; i < n ; i ++) {

var n u o v o = d o c u m e n t . c r e a t e E l e m e n t ( " i n p u t " );

n u o v o . s e t A t t r i b u t e ( " t y p e " , " t e x t " );

n u o v o . s e t A t t r i b u t e ( " n a m e " , " v " + i );

f . a p p e n d C h i l d ( n u o v o );

f . a p p e n d C h i l d ( d o c u m e n t . c r e a t e E l e m e n t ( " br " ));

}

</ s c r i p t >

< / b o d y >

< / h t m l >

(16)

Javascript (8)

Ecco l’esempio eseguito nel browser:

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 16 / 31

(17)

Javascript (9)

Javascript pu`o essere usato quindi come linguaggio per la creazione pagine web animate

In questo contesto Javascript pu`o essere usato anche per modificare dinamicamente aspetti di presentazione trattati con CSS

Questo modo di utilizzare il “pacchetto” HTML+Javascript+CSS viene spesso denominato Dynamic HTML

(18)

I linguaggi (e le tecnologie) server side (1)

Vantaggi dei linguaggi server side:

I Consentono di realizzareapplicazioni webanche molto sofisticate che accedono a database, interagiscono con altri programmi e mettono in comunicazione utenti diversi del sito

I Sono pi`u sicuri: i programmi non “viaggiano” sulla rete ma rimangono all’interno del server

Svantaggi dei linguaggi server side:

I Minore responsivit`a: ad ogni interazione con l’utente (click su un bottone, ecc...) segue una comunicazione tra client e server

I I programmi possono sovraccaricare il server

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 18 / 31

(19)

I linguaggi (e le tecnologie) server side (2)

Esempi tipici di applicazione dei linguaggi server side

I Servizi di prenotazione online

(20)

I linguaggi (e le tecnologie) server side (3)

Esempi tipici di applicazione dei linguaggi server side

I Siti su finanza aggiornati in tempo reale, home banking e trading on line

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 20 / 31

(21)

I linguaggi (e le tecnologie) server side (4)

Esempi tipici di applicazione dei linguaggi server side

I Social network

(22)

I linguaggi (e le tecnologie) server side (5)

Tra i linguaggi server sidepi`u utilizzati abbiamo:

I PHP

I ASP

I Java Server Pages

I Ruby on Rails

I ....

sono linguaggi di programmazione che consentono di scrivere programmi che generano documenti HTML elaborando dati ricevuti dall’utente, estraendo dati da un database e molto altro

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 22 / 31

(23)

PHP (1)

Vediamo in particolare il linguaggio PHP

PHP viene eseguito (tramite l’utilizzo di un programma detto

“interprete”) da un server web

Il codice PHP viene usato per generare dinamicamente i documenti HTML che il client deve ricevere e visualizzare nel browser

I In un sito web statico (non-PHP) il documento HTML viene preso dal file system e inviato direttamente al client

I In un sito web dinamico (tipo PHP) i file del web server sono passati all’interprete PHP che genera il documento HTML da inviare al client Quindi: l’output di un “programma” PHP `e un documento HTML Il codice PHP pu`o fare quello che gli pare per creare il documento HTML

I Ad esempio: accedere a un database SQL, consultare altri siti web, ecc....

(24)

PHP (2)

Come viene eseguito una applicazione web PHP:

1 Il client richiede al server web una pagina PHP, ad es:

http://www.prova.it/index.php

2 Il server web vede che si tratta di una pagina PHP e inoltra la richiesta all’interprete PHP (spesso eseguito sullo stesso computer)

3 L’interprete PHP esegue il programma contenuto nella pagina PHP possibilmente facendo delle richieste a un database

4 Il database risponde fornendo i dati richiesti

5 L’interprete crea un nuovo documento HTML tenendo conto anche dei dati estratti dal database e lo restituisce al server web

6 Il server web gira il documento HTML al client in risposta alla richiesta iniziale

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 24 / 31

(25)

PHP (3)

I file PHP sono strutturati come un documento HTML

I ma contengono sezioni di codice PHP delimitate da <?php e ?>

L’interprete PHP effettua il parsing del file (lo scandisce) e sostituisce le sezioni di codice PHP con il codice HTML risultante dalla sua esecuzione

Tutto ci`o che `e al di fuori del tag <?php .... ?> viene ignorato dall’interprete e dato in output cos`ı com’`e

Solitamente l’estensione usata per i file PHP `e .php

Per “eseguire” lo script bisogna necessariamente passare tramite un web-server:

I non `e sufficiente aprire il file con il browser

I per utilizzare PHP sul proprio computer bisogna avere installato un server HTTP e un inteprete PHP

(26)

PHP (4)

Un semplice esempio di file PHP (il solito Hello World):

< h t m l >

< h e a d > < t i t l e > H e l l o W o r l d in PHP < / t i t l e > < / h e a d >

< b o d y >

< ? php

p r i n t " <p > Hello , W o r l d ! </ p > " ;

p r i n t " <p > Q u e s t o e ’ un f r a m m e n t o di c o d i c e PHP .

N o t a che fa p a r t e di un d o c u m e n t o H T M L s t a n d a r d ! </ p >;

? >

</ body >

</ html >

Il corrispondente HTML generato dall’interprete PHP e inviato al client:

< h t m l >

< h e a d > < t i t l e > H e l l o W o r l d in PHP < / t i t l e > < / h e a d >

< b o d y >

< p > Hello , W o r l d ! < / p >

< p > Q u e s t o e ’ un f r a m m e n t o di c o d i c e PHP .

N o t a che fa p a r t e di un d o c u m e n t o H T M L s t a n d a r d ! < / p >

< / b o d y >

< / h t m l >

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 26 / 31

(27)

PHP (5)

E’ importante sottolineare che l’output di PHP `e un documento HTML

Il client ricever`a tale output senza vedere il codice PHP che lo ha originato

In generale il client non percepisce la differenza tra un sito web statico e un sito web dinamico

I in entrambi i casi il client riceve un documento HTML e lo visualizza nel browser

(28)

Combinazioni client side/server side (1)

Spesso si fa un uso combinato dei linguaggi e delle tecnologie client side e server side

Ad esempio, `e molto comune che un documento HTML generato da una applicazione PHP contenga del codice Javascript da eseguire nel browser dell’utente

I Questo consente di sfruttare i vantaggi di entrambi gli approcci

I Esempio tipico sono i form: spesso le pagine web che contengono dei form vengono generate da applicazioni server side che includono nella pagina il codice Javascript necessario per effettuare controlli sulla correttezza dei dati immessi dall’utente nel form

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 28 / 31

(29)

Combinazioni client side/server side (2)

Un modo sofisticato di far dialogare il codice Javascript con le applicazioni server side `e tramite la tecnologia AJAX

AJAX `e una tecnologia che consente al codice Javascript di effettuare delle richieste a una applicazione server side

I Consente di realizzare pagine che si aggiornano o si modificano in piccole partisenza dover ricaricare tutta la pagina

L’applicazione che ha portato al successo la tecnologia AJAX sono i suggerimenti per le ricerche su google

I Man mano che si inseriscono parole nella casella di ricerca di google vengono suggerite altre parole per rendere la ricerca pi`u specifica

(30)

I cookies (1)

I cookies sono uno strumento molto usato nell’ambito della realizzazione di siti web dinamici e di applicazioni web

Servono per memorizzare informazioni da usare in pagine di uno stesso sito visitate in momenti successivi

I Un cookie `e un piccolo file di testo che il sito lascia sul computer del client

Possono essere creati, gestiti e consultati sia utilizzando linguaggi client side che server side

Tipico esempio di utilizzo:

I La funzione “ricordati di me” che vi consente di non inserire la password ogni volta che vi collegate a un sito che la prevede

I In questo caso il sito vi lascia un particolare cookie quando inserite la password e la volta successiva che vi collegate non ve la richiede perche’

desume la vostra identit`a dal cookie che trova sul vostro computer

Paolo Milazzo (Universit`a di Pisa) Turismo-ICT - 8. Siti Dinamici A.A. 2015/2016 30 / 31

(31)

I cookies (2)

E’ bene sapere che:

I I cookies sono filetemporanei: devono avere una scadenza (che puo’

essere anche di qualche mese) dopo la quale il browser li cancella dal computer automaticamente

I I cookies possono essere cancellati in qualunque momento dall’utente usando una specifica opzione del browser

I Il browser garantisce che ogni sito possa avere accessosolo ai propri cookies

F Questo `e un aspetto di sicurezza molto importante in quanto i cookies spesso contengonoinformazioni riservate(chiavi di accesso, dati sensibili, ecc..)

F Un sito pu`o per`o consentire ad altri siti di visualizzare i propri cookies, tipicamente sulla base di accordi commericiali...

Riferimenti

Documenti correlati

Usando i tipi definiti nel paragrafo 3.2.1 si pu`o scrivere la seguente espres- sione di pattern matching che dato un valore s di tipo student testa se t contiene un elemento Tel ed

 Caratteristiche innovative rispetto ai linguaggi statici: gestione run-time di memoria, codice, errori.  Strumenti di supporto per la generazione e la manutenzione agile

• print_list(l) che stampa tutti gli elementi di una lista passata come parametro entrambe le funzioni devono sfruttare solo le 4 operazioni messe a disposizione da Lista. Tempo

 Riconoscere i servizi delle reti e di Internet per il business delle aziende e l’efficienza della Pubblica Amministrazione, con particolare attenzione alla sicurezza e

L’architettura più semplice e più diffusa L architettura più semplice e più diffusa Un client invia una richiesta ad un server per l’esecuzione di un compito (task). Un task

  $name è il nome della variabile associata al cookie e può essere usata anche per specificare un elemento di array.   $value è il valore associato e viene inviato in

  Il linguaggio di script fornisce il supporto per accedere agli elementi della pagina HTML e a caratteristiche del browser!.   Il browser diviene un ambiente di esecuzione

Gli oggetti ActiveX sono persistenti, cioé rimangono all'interno della macchina locale dopo essere stati scaricati, mentre le applet Java vengono caricate in memoria e quindi