






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
Sintesi del corso di programmazione web prof bartolini
Tipologia: Appunti
1 / 11
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!







Sistema informatico basato sul web (non è un insieme di pagine) _ ha un elevata complessità sia in termini di dati che di applicazioni _ speso integrato con sistemi diversi tipo DBMS _ tipologie di servizi elettronici
Web browser _ comunica tramite HTTP _ interpreta la formattazione HTML
Una servlet è un programma java in esecuzione su un web server _ supportate direttamente o tramite plugin _ ricevono e rispondono alle richieste dei client attraverso (solitamente) HTTP _ la risposta contiene codice HTML dinamico L’interfaccia Servlet definisce i metodi che tutte le servlet devono implementare: le classi GenericServlet e HttpServlet implementano questa interfaccia. Possibili utilizzi: _ supportare richieste multiple in concorrenza 4 _ gestire un database remoto tramite TCP/IP _ autenticazione degli utenti e gestione di sessioni di navigazione _ load balancing tramite redirezione di richieste verso altre servlet in altri server
Un servlet container (anche detto web container o servlet engine), parte del web server, supporta solo le servlet API (incluse JSP e JSTL) _ può ospitare più servlet: quando una servlet viene invocata per la prima volta, il container genera un thread che inizializza l’oggetto Servlet _ gli oggetti ServletRequest e ServletResponse forniscono l’accesso agli stream I/O, permettendo la ricezione ed invio di informazioni al client _ l’oggetto ServletConfig viene utilizzato dal container per passare informazioni alla servlet al momento della sua creazione
_ la chiave è un ID per la sessione _ il valore è l’oggetto che contiene informazioni associate a quella sessione Il container mette a disposizione delle API per una gestione trasparente della sessione _ in tutte le risposte il server aggiunge automaticamente un cookie con l’ID di sessione JSESSIONID _ nel processare una richiesta, si chiede all’oggetto HttpRequest l’oggetto associato alla sessione 7 _ se nella richiesta non viene trovato un ID allora, se getSession(true), si procede alla creazione della sessione (nuovo ID, oggetto di sessione, relativa entry nella session map) _ il container estrae dalla richiesta l’ID di sessione e lo usa per recuperare, dalla session map, l’oggetto associato 2.5.3 Classe HttpSession Il container utilizza questa interfaccia per creare una sessione tra un client ed un server _ una sessione corrisponde ad un solo utente _ permette alle servlet di
Estensione della tecnologia servlet
Istruzioni dirette al container che specificano come gestire la JSP. Sintassi <%@ ... %> _ <%@ page attribute=”value” %>: definisce impostazioni e opzioni per la pagina _ <%@ include file=”resource” %>: per importare contenuti esterni/package _ <%@ taglib uri=”taglibURI” prefix=”taglibPrefix” %>: per importare un tag library 9
Blocchi di codice java eseguiti nel contesto della pagina _ codice puro <% javaCode %>
Azioni per controllare il comportamento del container, sintassi body _ tag:
tag handler (b) all’interno della cartella WEB-INF (escluse le sottocartelle classes o lib; nella sottocartella tags solo se nominato come implicit.tld)
Definisce i protocolli base per la comunicazione tra tag handler e JSP 4.1.1 Lifecycle
Interfaccia che estende Tag, definisce metodi per elaborare il corpo del tag 13 4.2.1 Lifecycle
Si possono definire 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 14
Gli aspetti relativi alla sicurezza sono interamente gestiti dal container _ si usa il descrittore della web app (web.xml) per dichiarare che certe risorse sono riservate ad utenti che rivestono certi ruoli _ si definisce un metodo di autenticazione (BASIC, FORM, DIGEST) per identificare gli utenti ed i rispettivi ruoli
Le risorse protette sono responsabili della gestione della propria sicurezza _ approccio portabile: non ci sono elementi della web app che dipendono dal server utilizzato (non sono necessarie ulteriori specifiche nel descrittore) _ ogni servlet/JSP deve verificare manualmente se l’utente è autenticato
Direttive Non vengono tradotte in linguaggio Java (sono comandi diretti al container) Scriptlet Ricopiate dalla pagina JSP nella servlet Commenti HTML viene stampato dalla servlet: out.write(“”) Commenti java Ignorati Azione standard Chiama il metodo jsp_runtime_library.include(request, response, “destination”, out) Azione standard Chiama il metodo PageContext.forward(“destination” + “?” + URLEncode(“paramName”)
Gerarchia cartelle webapps/ context root
index.html META-INF/ WEB-INF/ web.xml src/ classes/ lib/ tags/ Modifiche da apportare per le JSP Nessuna Modifiche da apportare per i custom tag Definire un TLD
JSP e servlet possono accedere allo stesso context attraverso i vari oggetti definiti per lo scope, e così reperire la stessa istanza del bean 20