STRUMENTI - PowerPoint PPT Presentation

1 / 71
About This Presentation
Title:

STRUMENTI

Description:

STRUMENTI Introduzione a Java: concetti fondamentali di programmazione; programmazione orientata agli oggetti; caratteristiche di Java Applicazioni Web server-side ... – PowerPoint PPT presentation

Number of Views:113
Avg rating:3.0/5.0
Slides: 72
Provided by: goy1
Category:

less

Transcript and Presenter's Notes

Title: STRUMENTI


1
STRUMENTI
  • 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

2
Introduzione a Java concetti fondamentali di
programmazioneprogrammazione orientata agli
oggetti caratteristiche di JavaJava
ServletJava e datadase (JDBC)
3
Che 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
4
Che 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

5
Che 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!

6
Che 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.

7
Che 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

8
Che 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

9
Che 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)

10
Che 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)

11
La 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

12
La 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
13
La 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?)

14
La 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

15
La 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

16
La 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à)

17
La 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
18
La 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

19
La 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)

20
La 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

21
La 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
22
La 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
23
La 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
24
La programmazione orientata agli oggetti - XIV
  • Modularità

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
?
25
La 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...,

26
La programmazione orientata agli oggetti - XVI
  • Struttura gerarchica

DISEGNO DI BOOCH, p. 55
Una gerarchia è un ordinamento di astrazioni
BOOCH, p. 54
27
La 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

28
La 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
29
La 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

30
Il 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

31
Il 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

32
Il 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)

33
Alcune 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
34
Alcune 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
35
Alcune 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)
...
36
Alcune 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
37
Alcune caratteristiche di Java javadoc - IV
38
Alcune caratteristiche di Java javadoc - V
39
Alcune caratteristiche di Java javadoc - VI
40
Java e Internet
Java su Internet
server-side
client-side
Servlet (e JSP)
Applet
41
Java 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

42
Java 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

43
Java 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

44
Java 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

45
Java 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

46
Java 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

47
Java 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)

48
Java 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

49
Java 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
50
Java 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
51
Java 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

52
FORM HTML - I

53
FORM 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)

54
FORM 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

55
FORM 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

56
FORM 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

?
?
57
FORM 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

58
Java e Internet Servlet - gestione di un form - I
59
Java e Internet Servlet - gestione di un form -
II
gestione (automatica) di interazioni (sessioni)
parallele
60
Java 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

61
Java 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)
62
Java e database - II
Esempio
database
legge
database
interroga
database
risponde
63
Java 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
64
Java 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
65
Java 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
66
Java e database - VI
  • Livello logico
  • Rappresentazione tabellare dei dati

Tabella LIBRI
Autore
Titolo
N.Inv
Anno_ed
Casa_ed
Collocaz
67
Java 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
68
Java 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
69
Java 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

70
Java 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

71
Java 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
Write a Comment
User Comments (0)
About PowerShow.com