










Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Riassunto del corso di programmazione web
Tipologia: Dispense
1 / 18
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!











5 Autenticazione 14 5.1 Approccio dichiarativo........................ 14 5.1.1 Tipologie........................... 15 5.2 Approccio programmato....................... 16 5.3 Approccio combinato......................... 16 5.4 Principali e Ruoli........................... 16
6 Standard JavaBean 16 6.1 Contesti di visibilità......................... 17
7 Utilizzare MySQL 17 7.1 Libreria JDBC............................ 17 7.1.1 Passaggi per una connessione................ 17 7.1.2 PreparedStatement...................... 18 7.1.3 Transazioni.......................... 18
Sistema informatico basato sul web (non è un insieme di pagine)
informativi: per richieste di informazioni strutturate e classicate di comunicazione: interazione bidirezionale tra host transazionali: per servizi online o per trasmettere dati
Web browser
denisce dei tag tra un tag aperto e chiuso può trovarsi qualsiasi testo o altri tag ogni tag può avere una lista di attributi ogni tag aperto deve essere chiuso (XHTML) ogni documento inizia con il tag il tag denisce il titolo del documento, i fogli di stile e scripts il tag è il contenuto principale della pagina
i parametri della richiesta non sono visibili la quantità di dati che si può inviare è illimitata le richieste non possono essere salvate e ripetute
Web app
all'interno di applet, attraverso metodi di scripting, in app stan- dalone richiedono il supporto del client problemi di prestazioni e portabilità
servlet, enterprise javabean, API e servizi di transaction man- agement, application server e protocolli di programmazione dis- tribuita non richiedono alcun supporto da parte del client accesso ad informazioni disponibili esclusivamente lato server minimi requisiti in termini di potenza di calcolo e storage da parte del client
Una servlet è un programma java in esecuzione su un web server
L'interfaccia Servlet denisce i metodi che tutte le servlet devono implementare: le classi GenericServlet e HttpServlet implementano questa interfaccia. Pos- sibili utilizzi:
Un servlet container (anche detto web container o servlet engine), parte del web server, supporta solo le servlet API (incluse JSP e JSTL)
la servlet ottine questo oggetto tramite il metodo getServletConfig contiene un oggetto che implementa l'interfaccia servletContext denisce i metodi che una servlet può utilizzare per comunicare con il container esiste un solo context per ciascuna web app nel container esistono uno o più context e ogni servlet deve essere contenuta in uno di essi
(a) invocato una sola volta (b) inizializzazione delle variabili globali (c) la servlet è in grado di rispondere alla prima richiesta
(a) invocato ad ogni richiesta del client (b) riceve la richiesta HttpServletRequest ed eettua le sue elaborazioni (c) genera un oggetto risposta HttpServletResponse che viene passato al web server
può essere utilizzato sia per richieste GET che POST
2.5.1 Hidden form parameter
La sessione viene mantenuta solo navigando attraverso FORM opportunamente scritti
2.5.2 Cookies
Un cookie è un oggetto spedito dalla servlet tramite il metodo HttpServletResponse.addCookie
Il server gestisce una session map: ogni voce rappresenta una sessione distinta
Il container mette a disposizione delle API per una gestione trasparente della sessione
2.5.3 Classe HttpSession
Il container utilizza questa interfaccia per creare una sessione tra un client ed un server
vedere e manipolare informazioni sulla sessione (ID, tempo di creazione, ultimo accesso) associare oggetti alle sessioni, permettendo la persistenza delle infor- mazioni utente attraverso varie connessioni
Il server riconosce le richieste della stessa connessione e le associa all'oggetto corretto tramite cookie JSESSIONID
nchè il client non partecipa alla sessione, il metodo isNew restituisce true se il client non partecipa alla sessione, il metodo getSession resti- tuisce una sessione dierente ad ogni richiesta, e isNew restituisce sempre true
NB: non si memorizzano le informazioni dell'utente negli attributi delle servlet perchè più utenti possono accedere in parallelo alla stessa servlet
2.5.4 URL rewriting
Se il client riuta i cookie, è possibile chiedere al container di appendere l'ID della sessione all'URL degli hyperlink presenti nel codice HTML della risposta
3.2.1 Scriplet
Blocchi di codice java eseguiti nel contesto della pagina
blocco di codice java inserito, al momento della traduzione, nel metodo _jspService (quindi non si possono denire meotodi) le variabili così denite sono locali, quindi devono essere inizializzate
per denire variabili e metodi che faranno parte della classe Servlet corrispondente le variabili così denite sono automaticamente inizializzate
espressioni java che vengono valutate alla richiesta della pagina il container converte il risultato di un'espressione in un oggetto String e lo invia in output come parte della risposta
3.2.2 Azioni standard
Azioni per controllare il comportamento del container, sintassi body
consente l'inclusione di contenuto dinamico nella JSP più essibile della direttiva include, importa il codice solo al mo- mento dell'esecuzione
consente alla JSP di inoltrare la richiesta ad altre risorse (opzionale) tag annidato , specica coppie nome/valore di dati da allegare ad altre azioni
per incapsulare codice riutilizzabile id è l'etichetta che viene assegnata al bean all'interno dell'app scope denisce le modalità con cui l'istanza del bean deve essere ricercata
Le JSP possono accedere ad oggetti deniti in diverse aree di visibilità (scope)
3.3.1 application scope
3.3.2 page scope
rappresenta l'istanza corrente della servlet associata alla JSP istanza dell'interfaccia HttpJspPage può essere utilizzato per accedere a tutti i metodi deniti nelle servlet
fornisce informazioni sul contesto di esecuzione della JSP rappresenta l'insieme degli oggetti impliciti di una JSP, consente l'accesso ad essi attraverso i corrispettivi get utile per costruire custom tags
(a) prefix è il nome assegnato alla libreria con la direttiva taglib (b) tag è il nome del tag all'interno della libreria (c) attr1="value" ... attrN="value" sono gli eventuali attributi del tag
Per denire un tag handler
4.1.1 Interfaccia Tag - lifecycle
(a) null per i livelli superiori (b) tag contenitore per i tag annidati
(a) SKIP_BODY: il body del tag viene ignorato (b) EVAL_BODY_INCLUDE: il body del tag deve essere trascritto invariato
(a) SKIP_PAGE: la parte di pagina oltre il tag di chiusura viene ignorata (b) EVAL_PAGE: la parte di pagina oltre il tag di chiusura viene consider- ata
4.1.2 Interfaccia BodyTag - lifecycle
(a) SKIP_BODY: il body del tag viene ignorato (b) EVAL_BODY_INCLUDE: viene elaborato il body del custom tag, si passa direttamente al metodo doAfterBody() (c) EVAL_BODY_BUFFERED: viene elaborato il body del custom tag, si crea l'oggetto BodyContent
(a) non invocato per tag vuoti (b) il valore dell'oggetto implicito out viene sostituito nell'oggetto pageContext
(a) SKIP_BODY: il body del tag viene ignorato (b) EVAL_BODY_AGAIN: il body del tag viene valutato nuovamente
(a) SKIP_PAGE: la parte di pagina oltre il tag di chiusura viene ignorata (b) EVAL_PAGE: la parte di pagina oltre il tag di chiusura viene consider- ata
Si possono denire i privilegi di accesso per certe risorse della web app: se l'utente è stato già autenticato la risorsa viene resa disponibile, altrimenti si chiede l'autenticazione
Gli aspetti relativi alla sicurezza sono interamente gestiti dal container
l'utente per essere autenticato deve rispondere con un hash calcolato con {username, password, NONCE, HTTP, URI} nel descrittore specicare che si adotta l'autenticazione basata su DIGEST
Le risorse protette sono responsabili della gestione della propria sicurezza
Le restrizioni specicate nel descrittore associano i ruoli alle risorse
entità denominate, che in genere rappresentano singoli individui o società possono ricoprire uno o più ruoli
Ai ni dello sviluppo di servlet e JSP si denisce bean una classe che incapsula dati e logica di esecuzione
Si può accedere ad un bean da più JSP/servlet in base al suo scope:
Per l'accesso a DB relazionali
API, che deniscono le modalità di connesione/interrogazione/creazione di query parametrizzate e le strutture dati con cui trattare il risultato di una query driver manager, che comunica con i driver specici dell'applicativo in uso per realizzare il DB
provvede a tutti i problemi di conversione tra i comandi JDBC ed il DB engine
7.1.1 Passaggi per una connessione
(a) avviene in modo dinamico, a tempo di esecuzione (b) il codice che inizializza la classe del driver provvede a registrarlo presso il driver manager (c) cambiando il driver è possibile utilizzare un altro tipo di DB senza modicare il codice