Tecnologie Web T 19 Gennaio 2012 – Compito Tempo a disposizione: 3 ore La soluzione comprende la consegna elettronica dei seguenti file mediante l’apposito applicativo Web esamix (http://esamix.labx): Libretto.zip Conecessionaria.zip Vneditore.zip file zip contenente il sorgente java dell’applicazione al punto 1 file zip contenente il sorgente java dell’applicazione al punto 2 file zip contenente il sorgente java dell’applicazione al punto 3 Ogni file .zip consegnato DEVE CONTENERE TUTTI e SOLI i file creati/modificati e/o ritenuti importanti in generale ai fini della valutazione (ad esempio, descrittori, risorse statiche o dinamiche, codice Java e relativi .class, ecc.) e NON dell'intero progetto N.B. Per superare la prova scritta di laboratorio ed essere ammessi all’orale, è necessario totalizzare almeno 18 punti (su un totale disponibile di 33), equamente distribuiti sui tre esercizi, ovvero almeno 7 punti sul primo esercizio, 6 punti sul secondo esercizio e 5 punti sul terzo esercizio Studenti in debito di Tecnologie Web L-A Viene richiesto lo svolgimento dei soli esercizi 1 (18 punti) e 2 (15 punti). Tempo a disposizione: 2 ore. I 18 punti necessari per l’ammissione all’orale sono così distribuiti: almeno 10 punti sul primo esercizio e almeno 8 punti sul secondo ESERCIZIO 1 (12 punti) Si realizzi un’applicazione Web per la gestione dei libretti degli studenti basata principalmente su tecnologie Servlet e JSP. Ciascun voto è caratterizzato dal nome dello studente, il nome della materia e una valutazione quantitativa da 18 a 30 e la data in cui la valutazione è stata effettuata. A tal fine, si realizzi una pagina HTML Libretto.html che permetta di specificare il nome di uno studente e se si desidera inserire un nuovo voto o visualizzare i voti precedenti. Il nome dello studente deve essere inserito unicamente al primo accesso all’applicazione Web. La pagina Libretto.html invia le proprie richieste ad una pagina JSP Voti.jsp che, a seconda della richiesta specificata in Libretto.html, visualizza voti già inseriti o permette di inserirne uno nuovo. Nel caso di visualizzazione di voti già inseriti, la pagina Voti.jsp fornisce la possibilità di specificare la data dalla quale mostrare i voti; ad esempio, se la data inserita è 27-12-2011, si dovranno mostrare unicamente i voti inseriti dal 27-12-2011 in poi. Le richieste vengono gestite da una Servlet SelezionaVoti che recupera l’elenco dei voti che rispettano i requisiti dati, mentre l’elenco viene mostrato da un’apposita pagina JSP MostraVoti.jsp. Nel caso di inserimento di un nuovo voto, la pagina JSP deve dare la possibilità di specificare una valutazione composta dal nome della materia e un voto nel range [18, 30]. Tale valutazione può essere salvata temporaneamente o resa definitiva tramite appositi pulsanti. Il salvataggio temporaneo della valutazione permette all’utente di recuperare quanto scritto fino a quel momento anche se cambia pagina visualizzata, ad esempio per consultare i voti precedenti dello studente (ma solo a patto che l’utente non chiuda il proprio browser). 1/2 Tecnologie Web T 19 Gennaio 2012 – Compito ESERCIZIO 2 (11 punti) Realizzare un’applicazione Web per la ricerca di macchine in vendita in una concessionaria tramite l’inserimento di targhe, basandosi principalmente sulla tecnologia Javascript. A tal fine si realizzi una pagina HTML che mostri un campo di testo in cui inserire un numero di targa. Dato che la targa è composta unicamente da caratteri alfanumerici, l’applicazione deve cancellare automaticamente qualunque carattere inserito che non sia una cifra o un carattere alfabetico. Inoltre, per velocizzare la fase di inserimento dati, non appena sono stati inseriti 7 caratteri (per ipotesi dimensione fissa di una targa) l’applicazione invia la targa a una Servlet CercaMacchine tramite AJaX e azzera il campo di testo. La Servlet CercaMacchine risponde con le informazioni relative alla targa inserita restituendo un oggetto DescrizioneMacchina (serializzato tramite JSON) che specifica modello e colore della macchina (a tal fine si creino lato server alcuni oggetti di esempio). Una volta ricevuto l’oggetto DescrizioneMacchina serializzato tramite JSON, si modifichi la pagina HTML al fine di mostrare le informazioni relative alla macchina appena cercata, avendo cura di mostrare sempre le informazioni relative alle ultime 3 macchine trovate. ESERCIZIO 3 (10 punti) Partendo dalla realtà illustrata nel diagramma UML di seguito riportato, si fornisca una soluzione alla gestione della persistenza basata su Hibernate in grado di “mappare” efficientemente il modello di dominio rappresentato dai JavaBean Prodotto, Vendita e Venditore con le corrispondenti tabelle Prodotto, Vendita e Venditore contenute nel database TW_STUD di DB2. Nel dettaglio, dopo aver creato gli schemi delle tabelle all’interno del proprio schema nel database TW_STUD, implementato i JavaBean e definito i file XML di mapping Hibernate, si richiede la realizzazione di una classe di prova facente uso delle API Hibernate in grado di: inserire un venditore; inserire una o più vendite; inserire uno o più prodotti; restituire, partendo dal codice fiscale di un venditore, l’elenco dei prodotti che tale venditore ha venduto. N.B. Le relazioni 1-N devono essere specificate esplicitamente nel file XML di mapping. 2/2