Materiale esercitazioni

Introduzione ad Eclipse
Slideshow degli argomenti presentati.

Archivio TemplateApp.zip del progetto di prova che dimostra le funzionalità di Eclipse IDE: viste, prospettive, strumenti di aiuto alla scrittura del codice, risoluzione automatica degli errori, test-driven development (JUnit) e integrazione con Ant.

Introduzione al web server Tomcat
Slideshow degli argomenti presentati.

Archivio TemplateWebapp.zip contenente un prototipo di struttura di progetto (privo di codice) per lo sviluppo di un'applicazione web deployabile su web server (ad esempio: Tomcat, scaricabile anche da qui - intranet universitaria, accessibile dal laboratorio).

Validazione di documenti XML
Il progetto di esempio TemplateXMLValidation.zip affronta la creazione di file XML e la loro validazione basata su DTD o XSD mediante differenti strumenti (si legga il relativo file di build di Ant come una sorta di menu):
  • Funzionalità integrate in Eclipse (sebbene non in tutte le versioni presenti in laboratorio)
  • Plugin di Firefox (XML Developer Toolbar, basato tuttavia su servizi online per alcune funzionalità, pertanto non fruibile in laboratorio)
  • Task di ANT (aggiornati e resi parametrici, rispetto alla versione vista in laboratorio!)
  • Codice Java (basato sui sorgenti disponibili qui, qui e qui).

Ulteriori note:
  • L'implementazione del tunnel TCP/IP, vista a lezione nell'ambito del progetto su XML (per problemi di distribuzione del materiale causati dal guasto del server), è stata più correttamente spostata nel progetto TemplateWebapp.zip, aggiungendo ulteriori informazioni al termine del relativo slideshow
  • E' disponibile una nuova versione del progetto relativo alla validazione XML, TemplateXMLValidationPlus.zip, che implementa validatori Java anche per DTD e permette la creazione di un archivio jar di cui richiamare le classi fornendo parametri a riga di comando (...de gustibus) o mediante una intuitiva GUI

Siti web basati su risorse statiche e scripting
Slideshow degli argomenti presentati.

Archivio TemplateHTML.zip contenente il progetto analizzato.

Ulteriori note:
  • Sono online gli archivi dei plugin Firebug per (Firefox 2 e Firebug 3), da esplodere con nome omonimo nel direttorio linux...
           $USER_HOME/.mozilla/firefox/$SOME_STRANGE_ID_HERE.default/extensions
    ...oppure nel direttorio windows...
           C:\Documents and Settings\$USER/Dati applicazioni\Mozilla\Firefox\Profiles\$SOME_STRANGE_ID_HERE.default\extensions
    ...per effettuare l'installazione offline in laboratorio (i primi esperimenti sembrano funzionare sotto linux!)
  • Una versione PDF della DOM reference utilizzata da Firefox (e da tutti gli altri browser basati su Gecko) è scaricabile qui.
  • Per sopperire alla mancanza di tempo sperimanta a lezione (causa ennesimi problemi tecnici in laboratorio) viene reso disponibile uno slideshow aggiuntivo sull'utilizzo di Firebug (contenente, tra l'altro, link a due ottimi tutorial online).
Tecniche AJAX
Slideshow degli argomenti presentati (modificato in data: 19/03/2009).

Archivio TemplateAJAX.zip contenente il progetto analizzato.

Archivio TecnologieWeb0809.zip contenente un progetto che riporta una copia delle pagine HTML e degli script presenti nel sito del corso, su cui sperimentare le tecniche apprese.

Ulteriori note:
  • Date le crescenti e irrisolte difficoltà ad attivare Firebug in laboratorio come plugin di Firefox, si segnala l'esistenza di una versione lite e cross-browser di tale plugin, nota come Firebug lite.
  • Una breve presentazione di Firebug Lite è disponibile in questo slideshow.
  • Firebug Lite può essere attivato su ciascuna pagina in cui si lavora...
    • dichiarando nel codice HTML il seguente script (reso disponibile sul sito del corso per aggirare le limitazioni del firewall in laboratorio):
             <script src="http://www.lia.deis.unibo.it/Courses/TecnologieWeb0809/materiale/laboratorio/risorse/firebug-lite/firebug-lite-compressed.js"> </script>
    • oppure utilizzando la seguente bookmarklet:
             Launch firebug lite!
      (cliccando sul link qui sopra, Firebug lite si attiva sulla pagina corrente; bookmarkando tale link e richiamandolo mentre si visualizzano altre pagine si attiverà su queste ultime)
    • oppure (metodo consigliato) aggiungendo il relativo codice e foglio di stile all'interno dei propri progetti e richiamandone lo script in ogni pagina, come mostrato nella nuova versione del progetto su AJAX, TemplateAJAXFirebugLite.zip.

  • Allo stato attuale, Firebug lite...
    • non supporta il debug, purtroppo;
    • supporta l'inspect del DOM run-time, utile per capire come navigare la struttura della pagina che si sta manipolando;
    • supporta l'utilizzo della console, che riporta non solo i log esplicitamente inseriti nel codice, come visto a lezione [ if ( window.console ) console.log("my message"); ], ma anche tutti i messaggi di errore sollevati in genere dagli script! fornendo quindi preziosi indizi su cosa non sta funzionando nel codice Javascript che si scrive (come ad esempio nello script che viene lanciato cliccando qui);
    • supporta il monitoraggio delle XmlHttpRequest se esplicitamente assegnate nel codice [ if ( window.firebug ) firebug.watchXHR( theXhr ); ]
    • .
Servlet
Slideshow degli argomenti presentati.

Archivio TemplateServlet.zip contenente il progetto analizzato.

Archivio TemplateLib.zip contenente il progetto che genera la libreria utilizzata durante l'esercitazione.

Archivio ValentineServlet.zip contenente una possibile soluzione dell'esercitazione proposta.
Esercizi con gli strumenti appresi
Data la necessità di fare il punto della situazione e verificare la validità e le modalità di utilizzo degli strumenti e dei modelli forniti, la lezione prevede l'elaborazione di un progetto di esempio contenente alcune semplici pagine, web da modificare secondo le istruzioni riportate nelle pagine stesse.
Per valutare la fattibilità di simili esercizi anche in sede d'esame, il progetto è concepito per essere svolto senza l'ausilio della rete Internet (non completamente accessibile dal laboratorio), ma solamente con il materiale ed i riferimenti disponibili sul sito del corso.

Archivio DoItYourSelf.zip contenente il progetto assegnato.
Archivio DoItYourSelfSolved.zip contenente una possibile soluzione del progetto assegnato.

Slideshow che evidenzia i punti salienti della soluzione.
JSP e accesso al database
Slideshow degli argomenti presentati.

Archivio TemplateJSPandDAO.zip del progetto di prova che dimostra le tecnologie oggetto della lezione.
Modello di progetto vuoto
Archivio TemplateAll.zip (modificato in data: 19/03/2009) contenente un modello di progetto 'vuoto' che predispone per l'uso tutto gli strumenti visti durante il corso (Firebug lite, script di utilità Javascript, Tunnel TCP, database, librerie JUnit, ecc...).
Sono graditi feedback in merito a eventuali bug o funzioni mancanti; molto apprezzato è anche l'eventuale invio tramite posta elettronica di proposte relative a correzioni e/o aggiunte, direttamente sotto forma di target di ANT, librerie da incorporare, script Javascript da accludere, ecc... .