Alma Mater Studiorum Università di Bologna Scuola di Ingegneria. Tecnologie Web T A.A Esercitazione 4 Servlet e Java Server Pages

Documenti analoghi
Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura. Tecnologie Web T A.A

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria. Tecnologie Web T. Esercitazione opzionale Spring MVC

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione opzionale Spring MVC

Verso l architettura MVC-2 Java Server Pages (JSP)

Verso l architettura MVC-2 Java Server Pages (JSP)

Verso l architettura MVC-2 Java Server Pages (JSP)

Siti web centrati sui dati Architettura MVC-2: JSP

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi

Introduzione alle JSP

Sistemi Distribuiti M Proposta di esercizio: Mapping Object-Relational attraverso Hibernate e JPA

Anno Accademico Laboratorio di Tecnologie Web Uso di Firebug

Cosa è importante: pom.xml Goal Plug-in Repository

Fondamenti di Informatica T2 Modulo 2

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

Anno Accademico Laboratorio di Tecnologie Web Pagine JSP Pattern DAO

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

Sistemi Distribuiti M Proposte di Esercizio- Introduzione Generale

Basi di Dati. JDBC - Esercitazione n. 4 Quaderno n. 4. Passi preliminari per lo svolgimento delle esercitazioni

03FYZ TECNICHE DI PROGRAMMAZIONE Esercitazione di Laboratorio 03 es.1 23 Marzo 2016

InvoiceComm Document Exchange

Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2010/2011

1. Introduzione 3 / 27

Antonio d Acierno 13/01/2006

FASI DA ESEGUIRE ON-LINE

GUIDA PER LA COMPILAZIONE DELLA DOMANDA ONLINE

FASI DA ESEGUIRE ON-LINE

6 JavaServer Pages. Marco Tessarotto Programmazione dei Web Server Anno Accademico

SECONDA FASE: Compilazione della candidatura telematica

GUIDA APPLICATIVA NUMERAZIONE UNITARIA INTERMEDIARIO

Infantia2000 ACN2009 Flusso Informativo (Guida operativa)

WebDisk. TeamPortal - WebDisk

Gestione rubrica. Guida per l'amministratore

Prova d Esame Tecnologie Web LA A.A. 2008/2009 Tempo Disponibile: 3 ore Ai candidati è consentita la consultazione di manuali e materiale didattico

Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura. Tecnologie Web T A.A Esercitazione 3 Servlet

MANUALE AREA CLIENTI WEB

FASI DA ESEGUIRE ON-LINE

Vademecum invio notifiche push dal portale cittadinoinformato.it

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

Il link informativo per il rilascio della firma digitale è il seguente :

C.U.R. CATALOGO UNICO REGIONALE. Guida pratica alla redazione on line dei percorsi formativi

FASI DA ESEGUIRE ON-LINE

Sistema di Rilevazioni Statistiche MANUALE UTENTE

SECONDA FASE: Compilazione della candidatura telematica

FASI DA ESEGUIRE ON-LINE

PROGETTO FABBISOGNI STANDARD GUIDA DI ACCESSO E COMPILAZIONE DEL QUESTIONARIO.

FASI DA ESEGUIRE ON-LINE

FASI DA ESEGUIRE ON-LINE

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Assessorato alla Sanità FIM. Flussi Informativi Ministeriali. Manuale Utente. Versione 1.0

Servizi e-business ACQUISTI IMPRESE MANUALE FORNITORE

Gestione della configurazione Input/Output PLC Cosa c'è di nuovo?

- Manuale Operatore -

GUIDA NUOVA FUNZIONE CARICO FLUSSI. Sommario. Carico Flussi pag. 2 Opzioni pag. 4 Sostituzioni pag. 5 Esiti pag. 7

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

La Back Office Console consente di costruire lo scheletro degli schema.

Ordina e filtra elenchi

RIPAM ANAC PER L ASSUNZIONE DI 35 UNITA DI PERSONALE A TEMPO INDETERMITATO

PIATTAFORMA RILEVATORE TURISTICO REGIONALE

Introduzione...2. Visualizzazione dei report standard...2. Creazione di report personalizzati (Salva query sui report)...4

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 10 - J2EE

MANUALE UTENTE. Portale Web Scambio sul posto GSE IMPRESE DI VENDITA. stato documento draft approvato consegnato

FASI DA ESEGUIRE ON-LINE

CREAZIONE DI UNA CARTELLA

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 10 - J2EE

FASI DA ESEGUIRE ON-LINE

FASI DA ESEGUIRE ON-LINE

GUIDA APPLICATIVA DICHIARAZIONE RLS INTERMEDIARIO

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View

Servizi di e-business Eni Gestore Anagrafica Portale Ordini Partner EGL

Manuale Operativo. Release 1.1

Manuale d uso per la raccolta: Qualità commerciale servizio di distribuzione gas naturale

Lato client: vuol dire che le operazioni programmate vengono svolte e visualizzate direttamente sul computer dell'utente collegato

Basi di Dati II. Introduzione al corso

LINEE GUIDA PER OPERATORI ECONOMICI. Iscrizione / Rinnovo Albo Fornitori

Analizzatori Lessicali con JLex. Giuseppe Morelli

FASI DA ESEGUIRE ON-LINE

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web T A.A Esercitazione 1 URI, HTTP, HTML, CSS

PRESIDENZA DEL CONSIGLIO DEI MINISTRI SCUOLA NAZIONALE DELL AMMINISTRAZIONE

REGIONE SARDEGNA CONCORSO UNICO PER L ASSUNZIONE DI 20 DIRIGENTI A TEMPO INDETERMINATO

GUIDA PER LA COMPILAZIONE DELLA DOMANDA ONLINE

FASI DA ESEGUIRE ON-LINE

Servizi di e-business Eni

FASI DA ESEGUIRE ON-LINE

Sistema Informativo per gli Enti Cooperativi Guida per gli Ispettori Versione del (gg.mm.aa) Redatto da Approvato da Motivo della revisione

PEARSON ITALIA ORACLE ISTORE Manuale Utenti

Laboratorio di Basi di Dati e Web

Sistema di Supporto alle Decisoni nella Valutazione del Rischio delle Piante Geneticamente Modificate Manuale d uso

Servizi e-business ACQUISTI A CATALOGO MANUALE FORNITORE

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

CREAZIONE BUSTA CON IMPORTAZIONE FASCICOLO DA LIVE!... 2 CREAZIONE MANUALE DELLA BUSTA... 12

Transcript:

Alma Mater Studiorum Università di Bologna Scuola di Ingegneria Tecnologie Web T A.A. 2018 2019 Esercitazione 4 Servlet e Java Server Pages Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica: L.04.Servlet+JSP.pdf Versione elettronica: L.04.Servlet+JSP-2p.pdf

Java Server Pages (JSP) Piccolo riepilogo Agenda Altro esempio più articolato di esercizio servlet, combinato con pagine JSP già pronte Java Server Pages (JSP) Importazione e modifica di un progetto di esempio class-path a tempo di compilazione ed esecuzione deployment ed esecuzione descrittore web.xml interazione con l'applicazione servlet e mantenimento dello stato Per approfondire ulteriori esempi Esercitazione 04 2

Pagine JSP: piccolo riepilogo Pagine HTML con estensione.jsp che includono codice Java trasformate dal Servlet Container in classi Java che estendono javax.http.httpservlet in Tomcat ciò avviene attraverso una particolare Servlet mappata sulle risorse *.jsp, detta JspServlet Attraverso l'esecuzione di codice Java, il Web server permette di ottenere contenuto HTML generato dinamicamente side-effect quali esecuzione di logica di business complessa, scritture su database, ecc... L'insieme dei blocchi di codice Java all'interno di una pagina JSP contenuti in JSP scriptlet deve costituire un insieme di istruzioni ben formato possibile apertura e chiusura di parentesi graffe in blocchi distinti di codice Java, separati da codice HTML effetto simile a quello ottenibile attraverso un linguaggio di scripting interpretato......in realtà istruzioni compilate lato server, prima della loro esecuzione Esercitazione 04 3

Ciclo di vita e costrutti principali Direttive <%@ %> o <jsp:directive.name attribute /> proprietà generali della pagina, importazione di nomi di classe, uso della sessione, ecc... processate a tempo di compilazione della JSP in Servlet Espressioni <%=... %> o <jsp:expression> java expression </jsp:expression> trasposizione del risultato della valutazione di espressioni Java direttamente nel codice HTML prodotto dalla pagina n.b.: permettono la valutazione di espressioni (che restituiscono un risultato), non di istruzioni (quindi niente ';' finale) Scriptlet <%... %> o <jsp:scriptlet> java instructions </jsp:scriptlet> codice Java la cui valutazione procede insieme all'elaborazione del contenuto della pagina JSP al fine di produrre l'html finale......ma la cui compilazione avviene ben prima di questo momento (in caso di fallimento, non è possibile mostrare alcun risultato parziale) Dichiarazioni <%!... %> o <jsp:declaration> java definitions </jsp:declaration> definizione di variabili e metodi che potranno poi essere usati all'interno di scriptlet ed espressioni Esercitazione 04 4

Ulteriori costrutti Azioni <jsp:nomeazione attributiazione /> permettono di effettuare operazioni a tempo di esecuzione della richiesta usebean: istanzia un oggetto conforme alle convenzioni JavaBean e lo rende disponibile al codice che segue tramite un preciso identificativo e un preciso scope di validità getproperty: restituisce in forma di oggetto la property indicata setproperty: imposta il valore della property indicata include: include a request-time (non a compile-time, come le direttive) il contenuto di un file nel sorgente della JSP valutato dal server forward: cede la gestione della richiesta a un altra risorsa plugin: genera il contenuto necessario per scaricare un plug-in Java Oggetti 'embedded' o 'built-in': risorse immediatamente utilizzabili nel codice della pagina JSP senza dover creare istanze page: proprietà e caratteristiche della vista corrente out: flusso di output su cui riversare l'html request: richiesta HTTP ricevuta, suoi attributi e parametri response: risposta HTTP da produrre e sue proprietà session: stato dell'utente mantenuto lato server associato alla richiesta corrente... Esercitazione 04 5

Ancora servlet, integrate con JSP Gestione inventario di negozio (04a_TecWeb.zip) Si parta da un applicazione Web esistente basata su pagine JSP già realizzate: pagina gestionecliente.jsp visualizza merce attualmente selezionata dal cliente che un commesso sta servendo permette di aggiungere nuovi oggetti all insieme della merce selezionata; vendita al cliente è conclusa quando commesso preme pulsante concludi: oggetti selezionati vengono considerati effettivamente venduti e commesso può iniziare a servire un altro cliente. Ciascuna vendita è relativa a uno specifico giorno e a un insieme di prodotti (identificativo prodotto, quantità venduta e prezzo unitario) pagina statistiche.jsp permette di effettuare analisi sulle vendite effettuate (già concluse), al fine di calcolare ricavo complessivo in un intervallo temporale Esercitazione 04 6

Ancora servlet, integrate con JSP La pagina statistiche.jsp in realtà si avvale di una Servlet (completamente da realizzare) per effettuare il calcolo; Servlet dovrà restituire il risultato alla pagina statistiche.jsp che si occuperà della presentazione all utente Servlet deve ricevere range temporale (giorno iniziale e finale, estremi compresi) e, opzionalmente, codice numerico dell oggetto di interesse per il calcolo del ricavo se tale codice è omesso, calcolo ricavo viene effettuato su tutti gli oggetti in inventario (nota: quando la servlet imposta tramite setattribute il risultato, assicurarsi che questo sia di tipo float, come richiesto dalla pagina statistiche.jsp predisposta) Si noti che: ciascun commesso deve poter effettuare le proprie ricerche statistiche, considerando le vendite effettivamente concluse da parte di tutti i commessi risultato ultima ricerca effettuata da un commesso (insieme ai criteri di ricerca) deve essere visualizzato ogniqualvolta quel commesso ritorna alla pagina statistiche.jsp (quindi senza supporto della Servlet) Esercitazione 04 7

Primo vero e proprio esercizio su JSP Il file 04b_TecWeb.zip contiene lo scheletro di un progetto Eclipse Ant-based basato sull'uso di pagine JSP contiene già tutti i descrittori necessari a essere riconosciuto e configurato correttamente Importare il progetto come visto nelle precedenti esercitazioni: File Import General Existing Projects into Workspace Next Select archive file Attraverso i target Ant, compilare, creare «pacchetto» e pubblicare sul server l'applicazione Web 'AS IS' e avviare Tomcat ricordarsi di modificare opportunamente il file environment.properties Esercitazione 04 8

Applicazione Web 04b_TecWeb Accedendo all'applicazione Web tramite... http://localhost:8080/04b_tecweb... Servlet Container seleziona automaticamente la risorsa corrispondente alla pagina index.jsp per servire la richiesta A differenza della scorsa esercitazione, tuttavia...... la pagina JSP presenta un messaggio di attesa...... ma comanda una redirezione non al browser dell'utente, ma al proprio Servlet Container, senza restituire alcuna risposta all'utente Ovviamente questo non è l effetto desiderato CORREGGERE! Esercitazione 04 9

Il gioco dei forward Seguite il gioco dei forward data la complessità che un'applicazione Web può assumere, capita spesso di suddividere la logica necessaria a servire una richiesta su più componenti filtri per aprire e chiudere transazioni, servlet per accedere al database, pagine JSP per produrre la vista di risposta, si migliora la manutenibilità e si evita di replicare parti di codice comuni Qui però occorre sistemare... redirect iniziale, affinché avvenga tramite un ordine dato al browser, non al server: modificare index.jsp tramite l'uso di <meta http-equiv="..."... > mapping della classe Servlet a cui viene inoltrata la gestione della richiesta: correggere piccolo errore in web.xml passaggio del parametro di inizializzazione richiesto da tale servlet: completare opportunamente web.xml Dopodiché occorre ri-eseguire il deploy (Ant) le modifiche ai descrittori XML (web.xml nel nostro caso) e al codice Java necessitano che il progetto venga ripacchettizzato e ripubblicato sul server attendere che Tomcat riconosca la modifica e comandi la ripartenza dell'applicazione Esercitazione 04 10

Negozio online: home.jsp Se siete arrivati fin qui, esplorate la struttura della pagina home.jsp nell'ide, per capire come è stato generato HTML finale con Firebug, per capire come è strutturato HTML finale Aspetti interessanti da osservare parti comuni a tutte le altre pagine incluse mediante frammenti JSP esterni ogni pagina è in grado di modificare il colore di sfondo della tab ad essa corrispondente mediante l'analisi dell'url richiesto (vedi menu.jsp) i soliti giochi con i CSS Benvenuti nel negozio online! home.jsp come pagina di benvenuto catalogue.jsp per gestire il catalogo della merce in vendita cart.jsp per gestire il carrello di un cliente checkout.jsp per terminare l'acquisto Esercitazione 04 11

Gestione del catalogo: catalogue.jsp Pagina per gestire il catalogo degli articoli in vendita molto più complessa e completa della pagina di benvenuto realizzata per mezzo di un bean con scope di applicazione: gli articoli e le corrispondenti quantità disponibili sono concetti unici, uguali per tutti gli utenti del negozio Direttive errori, sessione, bean utilizzati, import di classi Java Dichiarazioni metodi richiamati nel seguito, per aggiungere/rimuovere oggetti HTML, scriptlet ed espressioni analisi dei parametri della richiesta per decidere cosa fare layout a due colonne (tramite attributo float) inserimento di nuovi articoli visualizzazione del contenuto attuale del catalogo ogni richiesta per catalogue.jsp causa una nuova visualizzazione della pagina Prendetevi un po' di tempo per analizzare il funzionamento (domande?) Esercitazione 04 12

Gestione del carrello: cart.jsp Pagina per gestire il carrello degli articoli scelti dall'utente/cliente tale selezione è diversa da cliente a cliente: servirà quindi un bean con scope di sessione Ricalcando la struttura di catalogue.jsp, riuscite a realizzarla voi? sulla sinistra iterate sugli articoli nel catalogo per ogni riga introducete un comando per inviare una richiesta di aggiunta al carrello nella pagina analizzate i parametri della richiesta per capire come gestirla incapsulate i metodi di utilità dentro le dichiarazioni sulla destra mostrate il contenuto corrente del carrello (ogni nuova richiesta determina l'aggiornamento della pagina) Esercitazione 04 13

Gestione del checkout: checkout.jsp Pagina per concludere l'ordine decrementare le quantità nel catalogo salvare la selezione dell'utente dove? nel database! Come imparerete a fare tra qualche lezione... Esercitazione 04 14

Per approfondire... Tomcat fornisce out-of-the-box alcuni esempi relativi all'utilizzo delle JSP (e anche Servlet), molto utili come riferimento accessibili a partire da http://localhost:8080/examples funzionamento ed estratti del codice sorgente il codice sorgente completo è comunque disponibile su file system, nella directory di deployment che corrisponde al contesto examples Esercitazione 04 15