Title: STRUMENTI
1STRUMENTI
- Introduzione a Java concetti fondamentali di
- programmazione programmazione orientata agli
- oggetti caratteristiche di Java
- Applicazioni Web server-side Java Servlet
- Interazione con database JDBC
- Introduzione a XML DTD parser XML
- XML-schema XSL
2Introduzione a Java concetti fondamentali di
programmazioneprogrammazione orientata agli
oggetti caratteristiche di JavaJava
ServletJava e datadase (JDBC)
3Che cosa vuol dire programmare - I
- La programmazione come processo di astrazione
la gerarchia di macchine virtuali (linguaggi di
programmazione)
Linguaggio macchina istruzioni eseguite
direttamente dalla macchina hardware Concetto di
gerarchia di macchine virtuali ? potenza e
flessibilità dei moderni elaboratori
4Che cosa vuol dire programmare - II
- Programmare definire un nuovo insieme di
comandi virtuali - ?
- occore tradurre il programma (scritto in un
linguaggio ad alto livello) in istruzioni in
linguaggio macchina - ?
- interpreti e compilatori programmi che
traducono le funzioni dei linguaggi ad alto
livello in funzioni appartenenti ai linguaggi
sottostanti fino al linguaggio macchina - ?
- Due tecniche per effettuare questa traduzione
- compilazione
- interpretazione
5Che cosa vuol dire programmare - III
- Compilare un programma
- tradurre il programma P nel linguaggio macchina
della macchina M ? Pm - eseguire Pm sulla macchina M
- La traduzione viene eseguita da un compilatore.
- gt compila file_sorgente.src ? file_eseguibile.exe
- gt esegui file_eseguibile.exe
- La compilazione è più efficiente.
- NB Per eseguire il programma su macchine diverse
- occorrono ri-compilare i sorgenti!
6Che cosa vuol dire programmare - IV
- Interpretare un programma
- richiedere lesecuzione del programma P sulla
macchina M - ogni istruzione di P viene tradotta in un insieme
di istruzioni nel linguaggio macchina di M ? Im - linsieme di istruzioni Im viene eseguito sulla
macchina M - La traduzione viene eseguita da un interprete.
- gt interpretaesegui file_sorgente.src
- Linterpretazione è più flessibile.
7Che cosa vuol dire programmare - V
- Approccio misto (per es. Java)
- tradurre il programma in un linguaggio intermedio
(bytecode), indipendente dalla macchina ? Pb - eseguire Pb
- Il primo passo viene eseguito da un compilatore.
- Il secondo da un interprete.
- gt compile file_sorgente.src ? file_intermedio.obj
- gt interpretaesegui file_intermedio.obj
8Che cosa vuol dire programmare - VI
- Diversi tipi di linguaggi (ad alto livello)
- Linguaggi imperativi
- Basati sul concetto di assegnamento le
istruzuioni sono sostanzialmente operazioni di
modifica delle strutture dati - es Fortran, Cobol (non strutturati) Pascal, C
(strutturati) - Linguaggi funzionali
- Basati sul concetto di funzione le istruzuioni
sono funzioni che vengono valutate es Lisp - Linguaggi logici
- Basati sul concetto di dimostrazione le
istruzuioni esprimono relazioni logiche tra input
e output es Prolog - Linguaggi ad oggetti
- Basati sul concetto di dato come oggetto attivo,
in grado di ricevere e inviare messaggi es
Smalltalk, C, CLOS, Java
9Che cosa vuol dire programmare - VII
- Strumenti per la programmazione
- Editor per la progettazione, per es. editor per
costruire diagrammi UML (opzionale) - Editor per scrivere i programmi (obbligatorio)
- Compilatore/interprete del linguaggio
(obbligatorio) - Debugger (opzionale)
- Sistema di mantenimento delle versioni, per es.
CVS (opzionale)
10Che cosa vuol dire programmare - VIII
- Perché scrivere un programma? Per risolvere un
problema! - ?
- 1o passo analizzare il problema ed identificare
una procedura di soluzione algoritmo insieme
di passi che descrivono i dati e le azioni da
eseguire su di essi - 2o passo tradurre lalgoritmo in un insieme di
istruzioni per eseguire quelle azioni sui dati
programma - Se il problema è complesso (es gestione
automatizzata di una segreteria studenti) occorre
un sistema software ( insieme di programmi) - NB Nello sviluppo del software, la fase di
analisi e progettazione è importantissima! (In un
certo senso, è più importante della realizzazione
vera e propria)
11La programmazione orientata agli oggetti - I
- Metodo classico di software design
(progettazione del software) top-down
functional (structured) design scomposizione
gerarchica funzionale - ?
- paradigma procedurale procedura sequenza di
passi per raggiungere il risultato - Pes es. iscrizione ad un appello
- scomposizione in passi via via più
- semplici, elementari procedura
- per iscriversi ad un appello
- PROGRAMMI PROCEDURE (ALGORITMI)
- STRUTTURE-DATI
12La programmazione orientata agli oggetti - II
- Metodo alternativo object-oriented design si
parte dagli oggetti, non dalle funzionalità! - ?
- paradigma ad oggetti oggetti che interagiscono
tra loro scambiandosi dei messaggi
collaborazione per raggiungere il risultato - Pes es. iscrizione ad un appello entità
coinvolte nell'attività e loro relazioni - PROGRAMMI OGGETTI (DATI ALGORITMI)
- COLLABORAZIONE (INTERFACCE)
verifica id-pswd
gestore dati studenti
id-pswd
autorizz.
interfaccia studenti
prenota app.
selez. appello
gestore appelli
ecc
13La programmazione orientata agli oggetti - III
- Object-oriented design costruisco un modello
del problema (anziché un modello della procedura
per risolverlo) - ?
- Object-oriented programming (programmazine
orientata agli oggetti) il programma si adatta
ai termini (al gergo) del problema, creando gli
oggetti necessari a rappresentarlo - Pes es Eckel, cap.1 un buon modo per
cominciare un semplice progetto per un programma
orientato agli oggetti è quello di chiedersi se
potessi estrarli da un cappello magico, quali
oggetti risolverebbero correttamente il mio
problema? (in altri termini quali attori
interagiscono nello scenario che descrive il mio
problema?)
14La programmazione orientata agli oggetti - IV
- Le 5 caratteristiche principali di Smalltalk (il
papà dei linguaggi di programmazione orientata
agli oggetti) - by Alan Kay - Ogni cosa è un oggetto (qualsiasi componente
concettuale del problema può essere considerata
un oggetto) - Un programma è un insieme di oggetti che si
inviano lun laltro dei messaggi - Ogni oggetto ha una memoria (contenente altri
oggetti) - Ogni oggetto ha un tipo
- Tutti gli oggetti di un certo tipo possono
rispondere agli stessi messaggi
15La programmazione orientata agli oggetti - V
- Secondo Grady Booch un oggetto è unentità
caratterizzata da - un'identità possibilità di identificare
univocamente l'oggetto - uno stato l'insieme dei valori dei suoi
attributi, in un certo tempo t - un comportamento l'insieme delle operazioni
(funzionalità) offerte dall'oggetto, cioè le cose
che l'oggetto è in grado di fare
16La programmazione orientata agli oggetti - VI
- Per capire che cos'è un oggetto è necessario
introdurre il concetto di classe - Aristotele introduceva il concetto di tipo
parlando della classe dei pesci e della classe
degli uccelli tutti gli oggetti appartenenti ad
una classe (pur essendo diversi gli uni dagli
altri) hanno caratteristiche e comportamenti
comuni (determinati appunto dallappartenenza a
quella classe) - Una classe è unastrazione (un modello) che
rappresenta le proprietà comuni (struttura e
comportamento) ad un insieme di oggetti concreti
(istanze) - Tutti i membri (oggetti, istanze) appartenenti ad
una classe avranno caratteristiche e
comportamenti comuni, (ma saranno caratterizzati
da un proprio stato e una propria identità)
17La programmazione orientata agli oggetti - VII
- Quando definisco una classe (tipo) ne definisco
- linterfaccia la vista esterna, il
comportamento, linsieme di operazioni che i suoi
membri (le sue istanze) possono fare, linsieme
di richieste che possono gestire - limplementazione la vista interna, la
definizione dei meccanismi che realizzano le
operazioni definite nellinterfaccia
implementazione
interfaccia
18La programmazione orientata agli oggetti - VIII
- Per esempio in una Biblioteca, consideriamo il
ruolo del Bibliotecario - quali servizi (operazioni) offre al pubblico?
- prestito(libro) questi servizi
- restituzione(libro) (operazioni) sono
- prenotazione(libro) accessibili al pubblico
- interfaccia
- Come li implementa (realizza)?
- prestito(libro) ? procedura queste
procedure - per trovare il libro, prenderlo, sono
"segrete", - darlo all'utente, registrare il non sono
visibili - prestito sulla scheda, ... al pubblico
- implementazione
19La programmazione orientata agli oggetti - IX
- Talvolta si parla di design by contract
- L'interfaccia può essere vista come un contratto
tra l'oggetto e il mondo esterno nel nostro
esempio, tra il Bibliotecario e il pubblico
(Utente) - Questo contratto definisce quali servizi
l'oggetto (il nostro Bibliotecario) deve offrire
(definisce cioè la sua interfaccia), ma non dice
nulla in merito all'implementazione (quali
procedure vengono eseguite per realizzare il
servizio) nel nostro esempio, il Bibliotecario
deve garantire i servizi come da contratto, ma
può realizzarli come vuole (la realizzazione è
una questione privata)
20La programmazione orientata agli oggetti - X
- L'interfaccia definisce dunque il comportamento
di un oggetto nell'esempio, i servizi, cioè le
operazioni di prestito(libro), restituzione(libro)
, prenotazione(libro) definiscono il
comportamento dei bibliotecari (cioè di tutti i
membri, le istanze della classe Bibliotecario) - L'interazione avviene inviando un messaggio
all'istanza (oggetto), con il quale gli si chiede
il servizio desiderato nell'esempio di deve
parlare o scrivere al bibliotecario per avere un
libro in prestito, o per restituirlo, o
prenotarlo - NB l'interazione (in linea di massima) avviene
con un'istanza (con un membro specifico, un certo
bibliotecario) e non con la classe
21La programmazione orientata agli oggetti - XI
- I principi fondamentali dellobject-oriented
- Astrazione
DISEGNO DI BOOCH, p. 39
Unastrazione rappresenta le caratteristiche
essenziali e distintive di un oggetto, dal
punto di vista di chi lo guarda Grady Booch,
Object Oriented Design, Benjamin/Cummings, 1991
p. 39
22La programmazione orientata agli oggetti - XII
- Incapsulamento (information hiding)
DISEGNO DI BOOCH, p. 46
Lincapsulamento (o information hiding) è il
principio secondo cui la struttura interna, il
funzionamento interno, di un oggetto non deve
essere visibile dallesterno
23La programmazione orientata agli oggetti - XIII
- ? ogni oggetto è costituito da 2 parti
- linterfaccia (vista esterna) ? visibile
- limplementazione (vista interna) ? nascosta
Lincapsulamento (o information hiding) è il
processo che nasconde quei dettagli, relativi al
funzionamento di un oggetto, che non
costituiscono le sue caratteristiche essenziali
e distintive BOOCH, p. 46
24La programmazione orientata agli oggetti - XIV
DISEGNO DI BOOCH, p.50
La modularità consiste nella suddivisione di un
sistema in una serie di componenti indipendenti,
che interagiscono tra loro per ottenere il
risultato desiderato
definizione dellarchitettura del sistema
scelta dei moduli e delle loro interazioni
?
25La programmazione orientata agli oggetti - XV
- ? ogni oggetto (modulo) è specializzato in un
certo compito tutti gli altri oggetti (moduli)
possono rivolgersi a lui (inviandogli un
messaggio) se hanno bisogno dei suoi servizi (in
cui lui è specializzato) - Per esempio pensate a ciò che avviene nella
vita reale, in una società organizzata come la
nostra all'inizio, per sopravvivere e soddisfare
i propri bisogni, ogni uomo cercava di realizzare
tutte ciò che gli serviva (costruiva utensili,
cacciava, si curava, ecc...). - Con il miglioramento del tenore di vita e la
maggiore complessità dei bisogni da soddisfare,
come si è organizzata la società? Attraverso la
modularizzazione delle funzioni e la
collaborazione di una grande quantità di
individui, ognuno specializzato in un compito
specifico se stiamo male ci rivolgiamo ad un
medico, per la spesa a verdurieri, macellai,
ecc...,
26La programmazione orientata agli oggetti - XVI
DISEGNO DI BOOCH, p. 55
Una gerarchia è un ordinamento di astrazioni
BOOCH, p. 54
27La programmazione orientata agli oggetti - XVII
- Gerarchia di classi e sotto-classi
- La principale proprietà di una tale gerarchia è
lereditarietà - se S è una sotto-classe di C, allora S eredita
tutte le proprietà di C - ed eventualmente ne
definisce altre per es
28La programmazione orientata agli oggetti - XX
- un membro di S sarà automaticamente anche un
membro di C per es. l'appello-orale-di-TW-del-15/
1/05, membro della classe AppelloOrale è anche un
membro della classe Appello, così come Snoopy,
che è un membro della classe Cane, è anche un
membro della classe Mammifero - ? l'istanza appello-orale-di-TW-del-15/1/05 è di
tipo - AppelloOrale, ma è anche di tipo Appello
(più generico)
Appello
instance-of
IS-A
instance-of
AppelloOrale
29La programmazione orientata agli oggetti - XXI
- I vantaggi fondamentali dellapproccio
object-oriented - Riuso
- Maggiore leggibilità
- Estensione e modifica più semplici
- Portabilità
- Manutenzione del software semplificata
- Migliore gestione del team di lavoro
30Il linguaggio Java - I
- Java è un linguaggio orientato agli oggetti, nato
allinizio degli anni 90 presso la Sun
Microsystems - E stato pensato sin dallinizio per Internet ed
è quindi particolarmente adatto per la
programmazione Web - Grazie alla compilazione del codice sorgente in
un linguaggio intermedio (bytecode) indipendente
dal S.O. Java è estremamente portabile (si può
sviluppare su Unix ed eseguire su Windows e
viceversa!) - Java possiede inoltre moltissime librerie, cioè
programmi scritti in Java che implementano varie
funzionalità (grafica, interfacce utente,
connessioni di rete, sicurezza, ecc) e che
possono essere utilizzati dai programmatori
31Il linguaggio Java - II
- Scrivere un programma in Java significa
- Definire un certo numero di classi
- Per ogni classe, definire
- Le proprietà della classe, cioè le strutture-dati
necessarie - Uno o più costruttori, cioè meccanismi per
costruire oggetti (elementi, membri) di quella
classe - Uno o più servizi pubblici, cioè operazioni
offerte dalla classe - L'insieme dei costruttori e delle operazioni
pubbliche rappresenta l'interfaccia della classe - In Java, quando vogliamo definire una classe, per
es. la classe - Biblioteca, creiamo un file con lo stesso nome
della classe e - lestensione .java, per es. Biblioteca.java
32Il linguaggio Java - V
- Dopo aver scritto le classi, dobbiamo compilarle
(tradurre il codice sorgente in bytecode) e poi
interpretarle (eseguire il bytecode) per fare
queste operazioni abbiamo bisogno di - Un editor generico di testo (per es. il Blocco
Note di Windows), oppure un editor dedicato (per
esempio TextPad) - Un ambiente di sviluppo J2SE (Java 2 Platform,
Standard Edition) 1.4.2 ? si può scaricare da
sito della Sun (java.sun.com/) - e contiene
- compilatore
- JRE (Java Runtime Environment)
- Java Virtual Machine (interprete)
- Java API (le classi Java predefinite, le librerie)
33Alcune caratteristiche di Java GUI
Interfaccia utente meccanismo attraverso il
quale utente e applicazione comunicano. Possono
essere Java offre una serie di librerie
per la costruzuione e la gestione di GUI
(Graphical User Interfaces)
testuali
grafiche
34Alcune caratteristiche di Java javadoc - I
Commentare il codice E importantissimo che il
codice sia leggibile (modificabile) anche a
distanza di tempo e da parte di persone diverse
dallautore Per questo è necessario inserire nel
codice commenti significativi, che spieghino le
funzionalità dei vari metodi, le scelte fattte e
quantaltro lautore ritiene utile per la
comprensione del programma
35Alcune caratteristiche di Java javadoc - II
In Java, esiste una forma standard per
commentare il codice, a partire dalla quale è
possibile generare in modo automatico la
documentazione (i cosiddetti API, cioè le
interfacce) del programma / Questo
metodo cancella il numero di matricola
indicato dalla lista degli iscritti _at_param
matricola il numero di matricola da
cancellare _at_return void / public
void cancellaPrenotaz(Integer matricola)
...
36Alcune caratteristiche di Java javadoc - III
Se il programma è documentato secondo queste
convenzioni, è possibile utilizzare javadoc per
generare automaticamente la documentazione gt
javadoc Nomefile.java Questo comando genera una
serie di file .html ( un .css e un file
package-list) Aprendo index.html con un normale
browser (per es. Microsoft Explorer) viene
visualizzata la documentazione
37Alcune caratteristiche di Java javadoc - IV
38Alcune caratteristiche di Java javadoc - V
39Alcune caratteristiche di Java javadoc - VI
40Java e Internet
Java su Internet
server-side
client-side
Servlet (e JSP)
Applet
41Java e Internet Applet
- Applet piccolo programma Java che viene
scaricato automaticamente insieme ad una pagina
Web e viene eseguito sul client dal browser, o da
un plug-in (interprete Java) installato nel
browser - Attenzione! Differenza principale tra Javascript
e Applet - gli script client-side (es. Javascript) sono
- interpetati (tradotte ed esguite) dal browser
(sul client) - le applet sono
- compilate (tradotte) sul server
- eseguite sul browser
- ? viene scaricato (sul client) solo il bytecode
- il codice sorgente non è visibile
- sono più efficienti
42Java e Internet Servlet - I
- Ricordiamoci che
- Il Web è basato su unarchitettura client-server
- Server processo (programma in esecuzione) che
- resta in ascolto (in attesa di richieste) su
una macchina server - ad ogni richiesta esegue unazione per gestirla
(recuperare una pagina web, eseguire un
programma, ) - restituisce al chiamante risultato (pagina
richiesta, risultato di esecuzione del programma,
) - Client programma che effettua richieste al
server - Il protocollo applicativo utilizzato dal Web è
HTTP, che è basato su due tipi di azioni - richiesta (request) da client a server
- risposta (response) da server a client
43Java e Internet Servlet - II
- La richiesta del client è espressa mediante un
URL (identificatore univoco di una risorsa sul
Web), può richiedere - La visualizzazione, sul client, di una pagina
statica - http//www.di.unito.it/people/goy.html
- La visualizzazione, sul client, di una pagina
dinamica, frutto di unelaborazione
precedentemente avvenuta sul server
http//www.di.unito.it/negozio/prezzo.jsp - Lesecuzione, sul server, di un programma,
unapplicazione Web - http//www.di.unito.it/negozio/calcolaPrezzo
-
44Java e Internet Servlet - III
- In questi ultimi due casi (pagina dinamica o
programma) è possibile includere nella richiesta
dei dati (parametri) su cui la pagina dinamica o
il programma potranno lavorare - http//www.di.unito.it/negozio/prezzo.jsp?prec10
0spesa25 - http//www.di.unito.it/ negozio/calcolaPrezzo?pre
c100spesa25 - I programmi che appartengono ad unapplicazione
web server-side sono programmi come altri ma - li si deve poter invocare attraverso il web
server - il web server deve poter passare al programma la
HTTP request contenente i dati (parametri),
affinchè il programma la interpreti - quando il programma ha ottenuto il risultato, lo
impacchetta e lo invia al web server che lo
spedisce al client via HTTP response
45Java e Internet Servlet - IV
- Le servlet girano nel processo del web server e
agiscono come livello intermedio tra - richieste provenienti dai client (browser)
- database e altre sorgenti informative gestite dal
server - Le servlet caricate nel processo del server,
vivono (restano in esecuzione) finché non
vengono esplicitamente scaricate (lesecuzione
viene terminata) ? possono gestire innumerevoli
richieste da parte dei client
46Java e Internet Servlet - V
- Java Servlet tecnologia server-side offerta in
ambiente Java programma Java che gestisce HTTP
request e restituisce HTTP response ? estende le
funzionalità del web server - Vantaggi delle Servlet
- essendo programmi duraturi
- permettono a web server di gestire interazioni
complesse con i client (non solo singole risposte
a singole richieste, ma anche sequenze di
request-response) - essendo scritte in Java
- sono indipendenti dalla piattaforma su cui devono
girare (portabilità) - possono sfruttare tutti i vantaggi dati dalla
disponibilità delle librerie Java
47Java e Internet Servlet - VI
- Per costruire unapplicazione web basata
sulluso di servlet è necessario un Web Container
(o Servlet Container o Servlet Engine) il Web
Container - carica le servlet nel processo del web server
(alla prima invocazione della servlet) - supporta il protocollo HTTP (per gestire il
flusso request/response) - gestisce al suo interno più applicazioni, ognuna
identificata da un servlet context (nome univoco) -
-
48Java e Internet Servlet - VII
- Tipi di Web Container
- Web Container incluso nel web server web server
scritti in Java includono Web Container per es
Jakarta Tomcat (di Apache) - Web Container in J2EE application server
application server che gestiscono Enterprise Java
Beans includono anche web server e web container - Web Container in runtime separato web servers
come Apache e Microsoft IIS necessitano di
runtime separato per gestire le servlets, più un
plug-in che gestisce la comunicazione tra web
server e Web Container
49Java e Internet Servlet - VIII
Invocazione di unapplicazione basata su Java
Servlet (ANDATA)
Applicazione web
2 il web server identifica lapplicazione
(attraverso servlet context) e delega la
gestione della richiesta
Web Container
Servlet/JSP
web server
3 il Web Container identifica il tipo di
applicazione (JSP, servlet), delega la
richiesta e passa i dati (parametri) contenuti
in HTTP request)
HTTP request
1 il browser invia una richiesta
browser
50Java e Internet Servlet - IX
Invocazione di unapplicazione basata su Java
Servlet (RITORNO)
Applicazione web
Web Container
Servlet/JSP
5 il Web Container invia la risposta al web
server
- 4 la servlet
- interpreta la HTTP request
- gestisce la richiesta
- invia il risultato al
- Web Container attraverso
- HTTP response
web server
6 il web server invia la risposta al browser
HTTP response
browser
51Java e Internet Servlet - X
- Linvocazione di una servlet può essere fatta da
- Form HTML (modulo on-line)
- Link (URL con parametri)
- http//www.di.unito.it/ negozio/calcolaPrezzo?pre
c100spesa25 -
52FORM HTML - I
53FORM HTML - II
- ltFORM METHOD "GET/POST" ACTION cosa-faregt
- ... campi del modulo ...
- ltINPUT TYPE"SUBMIT" VALUE"Invia"gt
- ltINPUT TYPE"RESET" VALUE"Cancella"gt
- lt/FORMgt
- Attributi del tag FORM
- METHOD
- specifica il modo in cui vengono inviati i dati
- GET "in chiaro" (in coda all'URL specificato
nell'attributo ACTION) - POST "nascosti" (all'interno dlel'oggetto che
viene inviato al server)
54FORM HTML - III
- ACTION
- è un URL che contiene il richiamo di unazione,
cioè un programma può essere, per es. - mailtoindirizzo-di-email ? invia una email
allindirizzo specificato, con i dati del modulo - una pagina ASP, PHP, JSP (cioè una pagina
contenente un programma in grado di riceverle i
dati del modulo e di decodificarli) - una Servlet Java o uno Script CGI ? invia i dati
del modulo ad un programma che è in grado di
riceverli e decodificarli
55FORM HTML - IV
- I pulsanti
- ltINPUT TYPE"SUBMIT" VALUE"Invia"gt
- ? viene eseguita lazione specificata in ACTION
- ltINPUT TYPE"RESET" VALUE"Cancella"gt
- ? vengono cancellati tutti i dati già inseriti
56FORM HTML - V
- Campi del modulo (ovvero le modalità per
richiedere i dati) - ltTEXTAREA NAME"commento" ROWS"10" COLS"20"gt
- lt/TEXTAREAgt
- ltINPUT TYPE"TEXT" NAME"nome" VALUE""
SIZE"20"gt - ltINPUT TYPE"CHECKBOX" NAME"interessi" VALUE""gt
- ltINPUT TYPE"RADIO" NAME"partec" VALUE""gt
?
?
57FORM HTML - VI
- ltSELECT NAME"eta"gt
- ltOPTION VALUE"fino5"gtfino a 5 annilt/OPTIONgt
- ltOPTION VALUEda6a11"gtda 6 a 11 annilt/OPTIONgt
- ...
- lt/SELECTgt
- ltINPUT TYPE"HIDDEN" NAMEid" VALUE"35FF6"gt
- parametro nascosto che viene inviato al server
senza che lutente - lo veda
58Java e Internet Servlet - gestione di un form - I
59Java e Internet Servlet - gestione di un form -
II
gestione (automatica) di interazioni (sessioni)
parallele
60Java e Internet Servlet - gestione di un form -
III
- Sessione utente "sessione di lavoro" tra
l'applicazione e ogni singolo utente (il server,
generalmente crea automaticamente un oggetto
session per ogni utente - che si connette all'applicazione)
- Se il protocollo utilizzato gestisce le sessioni
utente (session tracking), il server riconosce
richieste successive di stesso browser come parte
di una sola interazione
61Java e database - I
- Ricordiamoci che
- un uso tipico delle applicazioni web (pagine web
dinamiche - per es. JSP, oppure programmi - per
es. Servlet) interazione con un database
(visualizzazione e manipolazione dei dati
contenuti nel database) - Esempio sito che permette di visualizzare il
catalogo di una biblioteca e di - prenotare un libro
legge
database (libri)
scrive (inserisce, cancella, aggiorna)
62Java e database - II
Esempio
database
legge
database
interroga
database
risponde
63Java e database - III
- Cos'è un database (relazionale)?
- I dati sono registrazioni della descrizione di
una qualsiasi caratteristica della realtà, su un
supporto che ne garantisca la conservazione, la
comprensibilità e la reperibilità - Una base di dati (database) è una collezione di
dati organizzati in modo coerente, costruito con
funzionalità ben precise, note già in fase di
progettazione (esempi rubrica telefonica
personale, anagrafe, archivio di una biblioteca,
archivio centrale del ministero delle finanze,
segreteria studenti delluniversità, )
database
64Java e database - IV
- Definizione della base di dati (DB relazionale)
- quali informazioni
- quali relazioni tra le informazioni
- Vari livelli nella definizione dei dati
Vista 1
Vista 2
Vista n
Livello concettuale
Livello logico
Livello fisico
65Java e database - V
- Livello concettuale
- Ha l'obiettivo di descrivere, a livello
concettuale, la conoscenza sulla realtà che si
vuole modellare (linguaggi di rappresentazione
della conoscenza) - Individuare le entità rilevanti, le loro
proprietà (attributi) - e le relazioni tra entità
N.invent
Scaffale
LIBRO
Collocaz.
Anno_ed.
Ripiano
Titolo
Casa_ed.
Autore
(1n)
scrive
autore
libro
66Java e database - VI
- Livello logico
- Rappresentazione tabellare dei dati
Tabella LIBRI
Autore
Titolo
N.Inv
Anno_ed
Casa_ed
Collocaz
67Java e database - VII
- Interazione con un database (relazionale)
- Manipolazione dei dati
- inserimento di dati
- cancellazione di dati
- aggiornamento (update)
- interrogazione
- Ogni operazione di accesso alla base di dati
viene - interpretata, analizzata ed eseguita dal DBMS
- (DataBase Management System)
database
DBMS
68Java e database - VIII
- Si utilizza un linguaggio appositamente studiato
per - "parlare" con i database (relazionali) SQL
- (Structured Query Language)
- Esempio
- Produce come risultato una tabella
- che contiene tutti gli attributi nella clausola
SELECT, che soddisfano la condizione nella
clausola WHERE - nell'es tutti i libri
- editi da Feltrinelli
SELECT Autore, Titolo FROM Libri WHERE
Casa_edFeltrinelli
69Java e database - IX
- I produttori di database offrono API (interfacce)
per accedere ai dati gestiti dal DBMS - Laccesso al database è basato su modello
client-server ? il client accede al database
mediante le API definite dai produttori - DBMS diversi hanno API diverse ? serve uno
strumento per generalizzare laccesso, in modo da
separare lapplicazione (business logic) dal
livello dei dati (in modo che il passaggio ad un
database diverso non crei problemi) - Un Database Driver è uno strumento che ci
permette di comunicare in modo uniforme con
diversi DBMS
70Java e database - X
- ODBC (Open Database Connectivity) driver
- creato inizialmente per offrire API standard per
accesso SQL a piattaforme Microsoft Windows, è
poi stato esteso ad altre piattaforme - offre un accesso uniforme a database relazionali
eterogenei (installando lODBC driver specifico
per ogni database) - JDBC (Java DataBase Connectivity) driver offre
uninterfaccia standardizzata tra applicazioni
Java e database relazionali
71Java e database - XI
- JDBC supporta lesecuzione di query SQL
(interrogazioni standard al database) e lanalisi
dei risultati delle query (interrogazioni) - Offre metodi per accedere a DBMS diversi
astraendo dai dettagli implementativi del
database (MS Access? Oracle? ?) e dai suoi
meccanismi specifici di comunicazione - Permette ad una singola applicazione di
connettersi a più database diversi, anche
eterogenei