











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
appunti programmazione web 2018 per ripasso
Tipologia: Appunti
1 / 19
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!












5 Autenticazione 15 5.1 Approccio dichiarativo........................ 15 5.1.1 Tipologie........................... 16 5.2 Approccio programmato....................... 17 5.3 Approccio combinato......................... 17 5.4 Principali e Ruoli........................... 17
6 Standard JavaBean 17 6.1 Contesti di visibilità......................... 18
7 Utilizzare MySQL 18 7.1 Libreria JDBC............................ 18 7.1.1 Passaggi per una connessione................ 18 7.1.2 PreparedStatement...................... 19 7.1.3 Transazioni.......................... 19
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
Blocchi di codice java eseguiti nel contesto della pagina, per creare pagine di- namiche
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
Azioni per controllare il comportamento del container
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 tag annidato , specica coppie nome/valore di dati da allegare ad altre azioni
per incapsulare codice scriplet in una classe apposita nel package bean 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
si possono denire le proprietà con si possono leggere le proprietà con
Le JSP possono accedere ad oggetti deniti in diverse aree di visibilità (scope)
3.3.1 application scope
fornisce informazioni sul contesto di esecuzione della JSP (ServletContext) rappresenta la web app a cui la JSP appartiene consente di interagire con l'ambiente di esecuzione (risorse server- side, parametri di inizializzazione/attributi dell'app)
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
rappresenta l'eccezione che non viene gestita da nessun blocco try/catch disponibile nelle pagine con errorPage=true
Meccanismo di estensione dei tag JSP predeniti
il prefix distingue i tag per una libreria tag è il nome attr1="value" ... attrN="value" sono gli attributi che modi- cano il comportamento del tag
denire, per ogni tag, una classe tag handler che ne implementi le funzionalità denire una tag library, che denisce un insieme di custom tag e contiene gli oggetti che implementano i tag
crea l'oggetto tag handler invoca i metodi dell'interfaccia Tag
prevede un insieme di metodi per l'accesso agli oggetti impliciti nell'ambito della pagina
la JSP invoca i metodi setPageContext e setParent prima di in- vocare doStartTag o doEndTag
4.1.1 Dichiarare i tag
Ogni tag deve essere dichiarato nella TLD con un elemento , che a sua volta contiene gli elementi
tagdependent: il body viene interpretato dall'implementazione stessa del tag empty scriptless: il body accetta solo testo statico, espressioni EL, cus- tom tag
Un tag può contenere degli attributi dichiarando l'elemento , che a sua volta contiene gli elementi
quando il container incontra il tag crea l'oggetto tag handler ed invoca i metodi set necessari per impostare i valori degli attributi
TagSupport per tag che non elaborano il contenuto del proprio body BodyTagSupport per tag che elaborano il contenuto del proprio body
4.2.1 Classe TagSupport
4.2.2 Classe BodyTagSupport
null per i livelli superiori tag contenitore per i tag annidati
non è possibile proporre agli utenti contenuti diversi a seconda dei ruoli ricoperti l'accesso, basato esclusivamente su password, è completamente con- trollato dal server la soluzione non è sempre portabile: server diversi potrebbero sup- portare l'accesso in modi diversi è necessario modicare il descrittore
5.1.1 Tipologie
La scelta del meccanismo viene dichiarata nel descrittore in corrispondenza dei tag e
quando un utente tenta di accedere ad una risorsa protetta, il con- tainer invia automaticamente e in modo trasparente una nestra di richiesta username/password questo metodo manca di sicurezza (password trasmesse in base64)
come il metodo BASIC ma viene visualizzata la pagina di login anzichè una nestra di dialogo: permette di controllare l'aspetto ed il comportamento della pagina di login viene inoltre specicata una pagina di errore per il caso di mancata autorizzazione nel descrittore specicare che si adotta l'autenticazione basata su FORM ed il nome della pagina di login/errore
quando un utente tenta di accedere ad una risorsa protetta, il con- tainer invia automaticamente e in modo trasparente una nestra di richiesta username/password basato sul meccanismo domansa/risposta: il server propone al client una NONCE 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
ogni servlet o JSP deve controllare il protocollo utilizzato se gli utenti provano ad utilizzare una connessione HTTP bisogna redirezionarla su HTTPS
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
7.1.2 PreparedStatement
Per eseguire ecacemente comandi simili ripetutamente, si usa uno statement precompilato e parametrizzato
7.1.3 Transazioni
disattivando l'auto-commit si possono raggruppare due o più statement in una transazione