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

Documenti analoghi
Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 10 - J2EE 25/05/2015

JUG Ancona Italy. Andrea Del Bene. Jug Marche

Progetto B. Utenti. Di conseguenza si potranno avere solo utenti di questi tipi

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

Laboratorio di Basi di Dati e Web

testo Saveris Web Access Software Istruzioni per l'uso

Laboratorio di Basi di Dati

Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.

Programmazione server-side: Java Servlet

Laboratorio di Basi di Dati

Framework di Middleware. per Architetture Enterprise

Manuale Utente CMMG Corso Medici Medicina Generale

Guida all utilizzo di Campaign Builder

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

Programmazione Java Avanzata

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E.

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web L-A A.A Esercitazione 08 DAO e Hibernate

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

Progetto Jug4Tenda. WORK IN PROGRESS di Andrea Del Bene

Tecnologie di Sviluppo per il Web

Breve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

PG5 Starter Training Applicazione File System Daniel Ernst EN Stefano Peracchi IT

Corso Online. We Train Italy

Manuale Sito Videotrend

Come usare la piattaforma StartUp

Note_Batch_Application 04/02/2011

Procedura operativa per la gestione della funzione di formazione classi prime

GUIDA ALLA COMPILAZIONE DEL TEST DI ORIENTAMENTO pre-immatricolazione

SWIM v2 Design Document

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser.

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

Corso Analista Programmatore Java Corso Online Analista Programmatore Java

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Guida alla registrazione dal Portale

Corso analista programmatore Java. Corso analista programmatore Java Programma

GUIDA RAPIDA PER LA GESTIONE DELLE ADOZIONI LIBRI DI TESTO 2016/2017

INFORMATIVA SULL'USO DEI COOKIE

Lezione di Basi di Dati 1 18/11/ TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP

Manuale d uso DropSheep 4 imaio Gestione Pixmania-PRO Ver 1.1

PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -

REGISTRAZIONE ed ACCESSO AL PORTALE PER LA CONSULTAZIONE DELLE FATTURE DI GAS NATURALE E DI ENERGIA ELETTRICA

Come utilizzare i riferimenti assoluti e relativi in Microsoft Excel

Accreditamento al portale di Roma Capitale

Introduzione al linguaggio Java: Servlet e JSP

Manuale utente. Versione 6.9

Applicazione: GAS - Gestione AcceSsi

Sviluppo di una web-application per itinerari turistici in Spring MVC: autenticazione tramite social network

ARCHITETTURA FISICA DEL SISTEMA

Server-side Programming: Java servlets Parte II

Java Enterprise Edi.on. Gabriele Tolomei DAIS Università Ca Foscari Venezia

MANUALE OPERATIVO PORTALE DELLA FORMAZIONE

EJB Components. Leonardo Mariani Esercitazione di Sistemi Distribuiti. Oggetti Distribuiti

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

1 Applicazione J2EE sul SAP WAS con SAP NWDS

Strutture di accesso ai dati

Sommario. Oggetto: Istruzioni configurazione client VPN SSL per piattaforma Mac OSX Data: 25/01/2016 Versione: 1.0

XML e Windows Phone. Semplice tutorial per l'utilizzo di documenti e dati XML in un'app per Windows Phone.

Manutenzione periodica al PIANO DEI CONTI

Guida alla Registrazione Utenti

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione)

Framework. Impianti Informatici. Web application - tecnologie

JUG Ancona Italy Spring Framework

CONTROLLO PRESTITI E INVIO SOLLECITI TRAMITE SOL

NETSHOP: un centro commerciale virtuale

POSTALIZZAZIONE Manuale d'uso del modulo di postalizzazione di RipartoIG

SAP Manuale del firmatario DocuSign

TuaLista.it. Presentazione Festeggiato. Il bello delle liste regalo. Liste di nozze, compleanno, battesimo, comunione, cresima, laurea, ecc

Integrazione al Manuale Utente 1

Fattura Elettronica e Piattaforma Certificazione dei Crediti (PCC).

Implementazione di MVC. Gabriele Pellegrinetti

18/05/2016 MANUALE UTENTE

Istruzioni per la creazione e compilazione dei registri delle lezioni

1. ACCESSO AL REGISTRO DI CLASSE

Guida per il cacciatore


Soluzioni informatiche innovative MCNET DENUNCIA TELEMATICA. Manuale utente

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Corso Android Corso Online Sviluppo su Cellulari con Android

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:

ANAGRAFE NAZIONALE CREDITI FORMATIVI. Manuale utente

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/

Manuale utente Soggetto Promotore Erogatore Politiche Attive

PG5 Starter Training Applicazione Daniel Ernst EN Stefano Peracchi IT

Events: Track your favorite artists

Il tuo manuale d'uso. SONY ERICSSON W200I

AnthericaCMS. Gestisci in autonomia i contenuti del tuo sito-web

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica

Applicazione: SIPER Servizi In linea per il PERsonale

Tecnologie di Sviluppo per il Web

Ridimensionamento Immagini

Introduzione alle macchine a stati (non definitivo)

L architettura MVC (Model- View-Controller) Introduzione

INTRODUZIONE ALLE BASI DATI RELAZIONALI

LE GUIDE ORINGONE 02 - GUIDA ALL UTILIZZO DEL PORTALE BUY.ORINGONE.COM ORING ONE. Rev. 01/13

Università degli Studi di Udine. DLGS 196/03 Gestione delle credenziali di autenticazione informatica

Utilizzo della SAPGUI ed accesso al sistema SAPLight

Autodesk Map parte I digitalizzazione e importazione dati

Transcript:

Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione opzionale Spring MVC Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica: L.10.opt.SpringMVC.pdf Versione elettronica: L.10.opt.SpringMVC-2p.pdf Esercitazione opzionale su Spring-MVC 1

Modello Pesante vs. Modello Leggero Due aspetti ortogonali/indipendenti distinguono tra Modello Pesante e Leggero: costo di accesso ai componenti (il più rilevante) granularità moduli container (non sempre soddisfatto) Modello Pesante tutti gli accessi ai componenti all'interno del container vengono gestiti dal container inoltre il container offre le funzionalità in modo monolitico (modello all-or-nothing): non è possibile attivare separatamente le singole funzionalità di effettivo interesse Modello Leggero il container entra in gioco solo per fornire un riferimento al componente all'interno del container stesso (tipicamente tramite Dependency Injection); poi accesso diretto al componente, senza alcuna intermediazione da parte del container inoltre attivazione di funzionalità solo quando e se necessario (modello a sotto-componenti) JBoss tipico container pesante Tomcat in associazione a Spring per ottenere molte delle funzionalità offerte da JBoss ma con un approccio più leggero Esercitazione opzionale su Spring-MVC 2

DispatcherServlet è il componente principale di Spring-MVC, che funge da Front Controller interponendosi tra browser e business logic punto di accesso all'applicazione invoca opportunamente la parte di control relativa alla business logic seleziona la view da mostrare Model-View-Control e Spring Esercitazione opzionale su Spring-MVC 3

Browser DispatcherServlet 0) Intercetta le HTTP Request in ingresso che giungono al Web container 1) Cerca un controller che sappia gestire la richiesta 2) Invoca il controller ricevendo un model (l'output della business logic) e una view (come l'output deve essere visualizzato) 3, 4) Cerca ed invoca un View opportuno per creare l'http Response Noi dobbiamo implementare il Controller che accede alla business logic simile a quanto visto nel caso di MVC con JEE (CalculatorServlet), ma richiedendo di scrivere molto meno codice grazie a Spring 0) Request Response 5) Response Dispatcher Servlet 4) View Model 3) 1) Request 2) View Controller Request ModelAndView View Name Handler Mapping View Resolver Controller Esercitazione opzionale su Spring-MVC 4

Utilizzare Spring con Eclipse 1) Creare un Dynamic Web Project File New Other Web Dynamic Web Project 2) Inserire nella directory WEB-INF/lib le librerie Spring utilizzate; ad esempio, per Spring-MVC includere: commons-logging-1.1.1.jar org.springframework.asm-3.1.0.m1.jar org.springframework.beans-3.1.0.m1.jar org.springframework.context-3.1.0.m1.jar org.springframework.core-3.1.0.m1.jar org.springframework.expression-3.1.0.m1.jar org.springframework.web-3.1.0.m1.jar org.springframework.web.servlet-3.1.0.m1.jar Framework Spring completo (non necessario per questa esercitazione): http://www.springsource.org/download Esercitazione opzionale su Spring-MVC 5

Per cominciare Il file SpringMVC_TecWeb.zip contiene due progetti Eclipse Importare il progetto come visto nelle precedenti esercitazioni, senza esploderne l'archivio su file system (lo farà Eclipse) File Import General Existing Projects into Workspace Next Select archive file Due progetti Eclipse: opt_tecweb_springmvc_web: Dynamic Web Project per Servlet/JSP, risorse statiche, già configurato per Spring-MVC opt_tecweb_ejb: EJB Project per Session Bean ed Entity Bean Effettuare il deploy su JBoss (vedi esercitazione su J2EE) ed accedere all'applicazione: http://localhost:8080/tecwebspringmvc_web/ Esercitazione opzionale su Spring-MVC 6

Calcolatrice/Accumulatore Spring-MVC Rispetto a esercitazione su J2EE solo la Servlet è stata modificata (JSP ed EJB identici) Per supportare gli EJB è ancora necessario l'uso di JBoss; una soluzione completa avrebbe comportato l'uso di Spring anche per EJB (eventualmente lo vedrete in altri corsi di Laurea Magistrale ) Notate i molti file jar presenti in TecWeb_SpringMVC_Web/WEB-INF/lib, tutti necessari per supportare Spring-MVC Contenuto e Javadoc disponibile al link http://static.springsource.org/spring/docs/3.0.x/javadoc-api/ Esercitazione opzionale su Spring-MVC 7

DispatcherServlet e web.xml Innanzitutto è necessario specificare al Web Container tramite il file /WebContent/WEB-INF/web.xml che deve instradare le richieste a org.springframework.web.servlet.dispatcherservlet... <servlet> <servlet-name>calculatorspringmvc</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>calculatorspringmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>... L'url-pattern specificato qui sopra comporta l'instradamento di qualunque richiesta a DispatcherServlet Esercitazione opzionale su Spring-MVC 8

È necessario definire un mapping tra richieste HTTP ricevute da DispatcherServlet e Controller che accedono alla business logic a) Creare un file xml nella directory WEB-INF del progetto Dynamic Web il cui nome dipende da quanto specificato in <servlet-name> di DispatcherServlet (file web.xml) ad esempio, se <servlet-name>calculatorspringmvc</servlet-name>, allora il file xml sarà CalculatorSpringMVC-servlet.xml b) Specificare in questo file la classe che deve gestire le richieste in base all'url specificato, ad esempio <bean name="/calc*" class="it.unibo.tw.web.controller.calculatorcontroller"/> <bean name="/past*" class="it.unibo.tw.web.controller.calculatorcontroller"/> instrada tutte le richieste con url che inizia per calc o past alla classe CalculatorController Dependency Injection: specifichiamo il componente che funge da Controller all'interno del file xml di configurazione 1) Handler Mapping Esercitazione opzionale su Spring-MVC 9

Classe che accede alla business logic, l'unica che è necessario implementare Nel nostro esempio CalculatorController implementa l'interfaccia Controller, definendo il metodo public ModelAndView handlerequest(httpservletrequest request, HttpServletResponse response); a) invoca opportunamente i Session Bean (che implementano la business logic) in relazione ai parametri della HTTP Request b) restituisce un oggetto ModelAndView tramite cui specifica 1) i parametri da inserire nella risposta e 2) il nome della view successiva vedere package org.springframework.web.servlet.mvc per una lista completa di possibili Controller Confrontate CalculatorController con la classe CalculatorServlet vista in passato Dependency Injection: il Controller indica la View successiva tramite nome logico, senza alcun riferimento diretto alla risorsa che la implementa 2) Controller Esercitazione opzionale su Spring-MVC 10

È necessario specificare nel file CalculatorSpringMVC-servlet.xml come ottenere una View partendo dal View Name dichiarato nel Controller Nel nostro caso viene utilizzato un UrlBasedViewResolver che identifica la View partendo dal nome della View specificato nel Controller; ad esempio, View Name = calc View = /calc.jsp <bean name="viewresolver" class="org.springframework.web.servlet.view.urlbasedviewresolver"> <property name="viewclass" value="org.springframework.web.servlet.view.internalresourceview"/> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> vedere package org.springframework.web.servlet.view per una lista completa di possibili View Resolver Dependency Injection: nel file xml di configurazione specifichiamo il mapping tra nome logico di View e risorsa che implementa tale View 3) View Resolver Esercitazione opzionale su Spring-MVC 11

4) View Infine DispatcherServlet passa il Model creato alla View che a sua volta genera HTTPResponse finale, ovvero l'output da inviare al client nel nostro caso si tratta di calc.jsp e past.jsp, identiche alle JSP dell'esercitazione scorsa questa volta però i parametri utilizzati dalle JSP vengono passati come Model (vedi CalculatorController di questa esercitazione) e non come attributi (vedi CalculatorServlet vista in passato per EJB) Esercitazione opzionale su Spring-MVC 12