Java EE 4. Laboratorio di Ingegneria del software. Andrea Bei

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Java EE 4. Laboratorio di Ingegneria del software. Andrea Bei"

Transcript

1 Java EE 4 Laboratorio di Ingegneria del software Andrea Bei

2 Java EE Pattern Web Tier Model 1 e Model 2 (MVC) Front Controller Service To Worker Business Tier Data Access Object (Integration Tier) Business Delegate Service Locator Risorse Understanding JavaServer Pages Model 2 architecture Core J2EE Pattern J2EE Pattern Catalog

3 Model 1 (*) (*) I JavaBean possono interfacciarsi al DB direttamente o mediante oggetti DAO (scelta migliore) Architettura Model 1: Le pagine JSP processano le richieste, creano e usano JavaBean per elaborare le risposte La logica di business è incapsulata nei JavaBean la presentazione è implementata dalle pagine JSP La separazione presentazione/logica di business non è netta: le chiamate ai metodi dei JavaBean sono effettuate all interno delle pagine JSP Ciò comporta che le pagine JSP sono poco manutenibili dai web designer ed è difficile distinguere nettamente le responsabilità tra web designer e developer E un modello adatto solo per applicazioni semplici

4 Model View Controller Il Pattern Model View Controller (MVC) prevede la progettazione dell applicazione in 3 componenti 1. Model: Logica Di Business 2. View: Logica di Presentazione 3. Controller: Logica di Controllo Il controller ha la responsabilità di Trasformare le interazioni dell'utente sulla View in azioni sul modello Selezionare le View richieste ( pagine nel caso di web application)

5 Model 2 (*) (*) I JavaBean possono interfacciarsi al DB direttamente o mediante oggetti DAO (scelta migliore) Architettura Model 2: E una implementazione di MVC Il Controller è una Servlet che esegue le seguenti azioni per ogni request Riceve la request e in base all azione codificata nella request Crea i bean contenenti i dati visualizzati dalla pagina JSP di destinazione e li inserisce in sessione o nell oggetto request (scelta migliore) (2) Decide la JSP a cui inoltrare la richiesta ed esegue il forward della request (inoltro) (3) La View è una JSP E responsabile di recuperare i bean creati dal controller (4), estrarne il contenuto creando dinamicamente la pagina Il Model è un JavaBean

6 Model 1: caso di studio libreria Architettura di tipo Model 1 Presentation, Application, Services Java Bean JSP,HTML Domain Data transfer object DAO Collection di Data transfer object Persistence DB

7 Model 1: caso di studio libreria Realizzazione caso d uso Inserimento Autore (Architettura) Presentation, Application, Services Autore Bean insautore.html insautore.jsp Domain Autore Libreria Persistence DB

8 Model 1: caso di studio libreria Dati inviati tramite un form. insautore.html <html> <head> <title>inserimento Autore</title> </head> <body> <form method="post" action= insautore.jsp"> <p>nome:<input type="text" name="nome" size="20"></p> <p>cognome: <input type="text" name="cognome" size="20"></p> <p>data di Nascita: <input type="text" name= data" size="20"></p> <p>luogo di Nascita: <input type="text" name= luogo" size="20"></p> <p><input type="submit" value="invia" name="b1"> </form> </body> </html>

9 Model 1: caso di studio libreria <html> <head> <title>inserisciautore</title> </head> page import= AutoreBean"%> <body> <%=request.getparameter("nome")%><br> <%=request.getparameter("cognome")%><br> <%=request.getparameter( data")%><br> <%=request.getparameter( luogo")%><br> <jsp:usebean id= autore" class= AutoreBean" scope="page"> <jsp:setproperty name= autore" property="nome value="<%=request.getparameter("nome")%>"/> <jsp:setproperty name= autore " property="cognome" value="<%=request.getparameter("cognome")%>"/> <jsp:setproperty name= autore " property= datadinascita" value="<%=request.getparameter(" datadinascita ")%>"/> <jsp:setproperty name= autore " property= luogodinascita" value="<%=request.getparameter(" luogodinascita ")%>"/> <% autore.inserisci(); %> </jsp:usebean> </body></html> insautore.jsp

10 Model 1: caso di studio libreria public class AutoreBean { private String nome; private String cognome; private String datadinascita; private String luogodinascita; AutoreBean.java public void setnome(string nome){ this.nome=nome; public String getnome(){ return nome; // altri metodi getter e setter per cognome, datadinascita, luogodinascita public void inserisci(){ Libreria libreria=new Libreria ( libreria, libreria, libreria ); Autore autoredto=new Autore(nome,cognome, datadinascita, luogodinascita); libreria.inserisciautore(autoredto);

11 Model 2: caso di studio libreria Realizzazione caso d uso Seleziona il genere (navigazione) Ricerca.html (1) request GET action=listageneri public class ricerca extends HttpServlet { private processrequest(...,...) { Servlet ricerca Impl. processrequest SelezioneGenere.jsp public void doget(..,..) { processrequest(...,...) public void dopost(..,..) { processrequest(...,...) SelezioneLibro.jsp

12 Model 2: caso di studio libreria <html> Ricerca.html <head> <title>ricerca</title> </head> <body> <p align="center"><font SIZE="+3" COLOR="#800000" FACE="Tahoma"><b>Seleziona il tipo di ricerca</b></font> <table BORDER="0" align="center"> <tr><td> <a href=" </td></tr> <tr><td> <a href=" </td></tr> <tr><td> <a href=" action=listatitoli">titolo</a> </td></tr> </table></p> </body> </html>

13 Model 2: caso di studio libreria import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import Libreria; Servlet ricerca public class ricerca extends HttpServlet { Libreria l; public void init(servletconfig config) throws ServletException { l=new Libreria("libreria","libreria","libreria"); super.init(config);

14 Model 2: caso di studio libreria protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, java.io.ioexception { String page; String action = request.getparameter("action"); if (action.equals( listageneri ) { // (1) // vengono recuerati i dati e resi disponibile alla JSP Collection listageneri = l.getlistageneri(); request.setattribute(" listageneri ", listageneri ); Servlet ricerca // si decide la JSP a cui forwardare la richiesta page= SelezioneGenere.jsp ; //(2) //. Il codice relativo alle altre action sarà descritte in seguito dispatch(request, response, page); protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, java.io.ioexception { processrequest(request, response); protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, java.io.ioexception { processrequest(request, response); protected void dispatch(httpservletrequest request, HttpServletResponse response, String page) throws javax.servlet.servletexception, java.io.ioexception { RequestDispatcher dispatcher = getservletcontext().getrequestdispatcher(page); dispatcher.forward(request, response);

15 Model 2: caso di studio libreria page session ="true" %> <html> <title>selezione Nome</title> <body><p align="center"> <font SIZE="+3" COLOR="#800000" FACE="Tahoma"> <b>seleziona il genere</b></font></p> <% Collection c= (Collection) request.getattribute("listageneri"); %> <form method="post" action="/servlet/libreria/ricerca"> <input type="hidden" name="action" value= listalibri"> <center> <select name="genere" size="1"> <% Iterator i=c.iterator(); while (i.hasnext()) { String genere = (String) i.next(); %> <option value="<%=genere%>"><%=genere%></option> <% %> </select> <input type="submit" value="invia" name="b1"></center>" </form> </html> SelezioneGenere.jsp

16 Model 2: caso di studio libreria Servlet ricerca protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, java.io.ioexception { String page; String action = request.getparameter("action"); if (action.equals( listageneri ) { //(1) // vengono recuerati i dati e resi disponibile alla JSP Collection listageneri = l.getlistageneri(); request.setattribute(" listageneri ", listageneri ); // si decide la JSP a cui forwardare la richiesta page= SelezioneGenere.jsp ; //(2) if (action.equals( listalibri ) { //(3) // vengono recuerati i dati e resi disponibile alla JSP Collection listalibri = l.getlistalibri(); request.setattribute(" listalibri ", listalibri ); // si decide la JSP a cui forwardare la richiesta page= SelezioneLibro.jsp ; //(4) //. codice relativo ad altre Action dispatch(request, response, page);

17 Model 2: caso di studio libreria page session ="true" %> <html> <title>seleziona Libro</title> <body><p align="center"> <font SIZE="+3" COLOR="#800000" FACE="Tahoma"> <b>seleziona il Libro</b></font></p> <% Collection c= (Collection) request.getattribute("listalibri"); %> <form method="post" action="/servlet/libreria/ricerca"> <input type="hidden" name="action" value= schedalibro"> <center> <select name= libro" size="1"> <% Iterator i=c.iterator(); while (i.hasnext()) { String libro = (String) i.next(); %> <option value="<%=libro%>"><%=libro%></option> <% %> </select> <input type="submit" value="invia" name="b1"></center>" </form> </html> SelezioneLibro.jsp

18 Front Controller Contesto La gestione delle richieste dello strato di presentazione può essere centralizzata (una sola servlet) o decentralizzata (più servlet) Problema l sistema può avere un punto di accesso centralizzato per supportare: Servizi tecnici (autenticazione, autorizzazione, logging, tracciamento della navigazione dell utente, ) Il recupero dei dati La gestione delle viste e della navigazione Se non si ha un accesso centralizzato: Ogni View fornisce i propri servizi tecnici (codice duplicato) La logica di navigazione è lasciata alle View. Non si supporta High Coesion perché le View dovrebbero essere responsabili solo della presentazione Forze Sono necessari dei servizi tecnici centralizzati Esistono molte View che possono essere create con la stessa logica di business La logica dei servizi tecnici e della navigazione è complessa

19 Front Controller Soluzione: si usi un controller come punto iniziale di accesso per la gestione di richieste. Il controller gestisce le richieste Invocando i servizi tecnici Delegando i processi di business Gestendo la scelta della View opportuna (logica di navigazione) Gestendo gli errori Gestendo la strategia di creazione dei contenuti (DAO, EJB,..)

20 Front Controller public class EmployeeController extends HttpServlet { public void init(servletconfig config) throws ServletException { super.init(config); protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, java.io.ioexception { String page; /*preleva le configurazioni di sistema es: pagina di errore **/ ApplicationResources resource = ApplicationResources.getInstance(); try { // Un oggetto helper preleva il valore dei parametri RequestHelper helper = new RequestHelper(request); Command cmdhelper= helper.getcommand(); page = cmdhelper.execute(request, response); // viene eseguita l azione catch (Exception e) {page = resource.geterrorpage(e); dispatch(request, response, page); // inoltra la richiesta alla View

21 Front Controller protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, java.io.ioexception { processrequest(request, response); protected void dopost(httpservletrequest request,httpservletresponse response) throws ServletException, java.io.ioexception { processrequest(request, response); protected void dispatch(httpservletrequest request,httpservletresponse response,string page) throws javax.servlet.servletexception, java.io.ioexception { RequestDispatcher dispatcher = getservletcontext().getrequestdispatcher(page); dispatcher.forward(request, response);

22 Front Controller Strategia Command e Controller Basato sul Command Pattern [GoF] Suggerisce di fornire una interfaccia comune ai componenti helper (*) Supporta Protected Variation rispetto all aggiunta o modificare dei componenti helper non ha impatto sul controller E un approccio valido per tutti i tipi di client (non solo Web) Facilita la creazione di comandi composti (Composite [Gof]) Il termine Action ed il termine Command sono usati spesso come sinonimi (*) COMPONENTI HELPER Sono Pure Fabrication di supporto ( Helper ) In questo caso il supporto è fornito al controller per individuare il comando/azione da eseguire in base ai parametri della request

23 Front Controller Strategia Command e Controller protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, java.io.ioexception { String resultpage; try { RequestHelper helper = new RequestHelper(request); /** il getcommand() internamente usa un factory per recuperare i command objects come segue: Command command = CommandFactory.create(request.getParameter("op")); **/ Command command = helper.getcommand(); // delega la richiesta ad un helper di tipo command object resultpage = command.execute(request, response); catch (Exception e){resultpage = ApplicationResources.getInstance(). geterrorpage(e); dispatch(request, response, resultpage);

24 Service To Worker Contesto Il sistema controlla il flusso di esecuzione ed accede ai dati di business con cui crea dinamicamente le viste Problema La combinazione dei problemi di Front Controller e View Helper Forze Si eseguono le fasi di Autenticazione e Autorizzazione per ogni richiesta Il codice delle Scriptlet nelle View deve essere minimizzato La logica di business deve essere incapsulata in componenti Il flusso di controllo è complesso La logica di gestione delle viste e della navigazione è complessa Soluzione Si creino un controller e un dispatcher combinati con View ed Helper Il controller delega a classi Helper il recupero di dati dallo strato di business Il dispatcher è responsabile per la gestione delle View e la navigazione e può essere incapsulato direttamente nel controller o in un altraclasse

25 Service To Worker autenticazione, autorizzazione, recupero dei contenuti, validazione dell input, navigazione, dispatch View (statica o dinamica)

26 Service To Worker Strategia dispatcher nel controller Quando la logica di dispatching non è complessa (es: è statica) è possibile inserirla direttamente nel controller

27 Data Access Object Contesto I componenti di accesso ai dati variano a seconda della fonte dati (RDBMS, Flat File, ODBMS, ) Problema I componenti di accesso ai dati sono dipendenti dalla tecnologie delle sorgenti di dati: JDBC (per DB relazionali) EJB (per applicazioni Business 2 Businss) Web Services Quando la sorgente dei dati cambia tali componenti devono essere cambiati per gestire il nuovo tipo di sorgente Forze Tutti i casi in cui è necessario supportare Protected Variations rispetto alla sorgent dei dati Soluzione Usare un Data Access Object (DAO) per astrarre ed incapsulare la logica di accesso alla sorgente dei dati. Il DAO gestisce la connessione con la sorgente dei dati e ottiene e memorizza I dati

28 Data Access Object BusinessObject E un qualsiasi Client che richiede dati al DAO

29 Data Access Object

30 Data Access Object Strategia DAO Factory Quando la tecnologia usata per la persistenza non cambia è possibile usare un solo factory per tutti i DAO necessari alla applicazione

31 Data Access Object Strategia DAO Factory Quando la tecnologia usata per la persistenza cambiaè possibile usare il Pattern Abstract Factory (Gof)

32 Data Access Object Esempio (DAO Factory)

33 Data Access Object Esempio (DAO Abstract Factory)

34 Data Access Object Esempio (DAO Abstract Factory) public abstract class DAOFactory { public static final int CLOUDSCAPE = 1; public static final int ORACLE = 2; public static final int SYBASE = 3; // Un metodo per ogni DAO public abstract CustomerDAO getcustomerdao(); public abstract AccountDAO getaccountdao(); public abstract OrderDAO getorderdao();... public static DAOFactory getdaofactory(int whichfactory) { switch (whichfactory) { case CLOUDSCAPE: return new CloudscapeDAOFactory(); case ORACLE : return new OracleDAOFactory(); case SYBASE : return new SybaseDAOFactory(); default :

35 Data Access Object Esempio (DAO Abstract Factory) public class CloudscapeDAOFactory extends DAOFactory { public static final String DRIVER= "COM.cloudscape.core.RmiJdbcDriver"; public static final String DBURL jdbc:cloudscape:rmi://localhost:1099/j2eedb"; public static Connection createconnection() { // Qui ci va il codice di creazione della connection public CustomerDAO getcustomerdao() { return new CloudscapeCustomerDAO(); public AccountDAO getaccountdao() { return new CloudscapeAccountDAO(); public OrderDAO getorderdao() { return new CloudscapeOrderDAO();...

36 Data Access Object Esempio (DAO Abstract Factory) public interface CustomerDAO { public int insertcustomer(...); public boolean deletecustomer(...); public Customer findcustomer(...); public boolean updatecustomer(...); public RowSet selectcustomersrs(...); public Collection selectcustomersto(...);...

37 Data Access Object Esempio (DAO Abstract Factory) public class CloudscapeCustomerDAO implements CustomerDAO { public CloudscapeCustomerDAO() { // initialization public int insertcustomer(...) { // implementazione public boolean deletecustomer(...) { // implementazione public Customer findcustomer(...) { public Collection selectcustomersto(...) { // Implementazione: ritorna una Collection di DTO...

38 Data Access Object Esempio (DAO Abstract Factory) public class Customer implements java.io.serializable { int CustomerNumber; String name; String streetaddress; String city;... // metodi getter e setter......

39 Data Access Object Esempio (DAO Abstract Factory) // creo il DAO Factory DAOFactory cloudscapefactory = DAOFactory.getDAOFactory(DAOFactory.DAOCLOUDSCAPE); // Creo un DAO CustomerDAO custdao = cloudscapefactory.getcustomerdao(); // creo un nuovo customer int newcustno = custdao.insertcustomer(...); // cerco un customer. Mi viene restituito un DTO Customer cust = custdao.findcustomer(...); cust.setaddress(...); // modifico il DTO cust.set (...); // aggiorno le informazioni custdao.updatecustomer(cust); // cancello un customer... custdao.deletecustomer(...);

40 Business Delegate Contesto Un sistema prevede l invocazione di servizi I client devono gestire la complessità dell accesso ai servizi Problema Se i componenti dello strato di presentazione invocano direttamente i servizi di business distribuiti Forze I componenti dello strato di presentazione sono fragili rispetto ai cambiamenti dell implementazione dei servizi di business Potrebbe esserci un basso livello di performance per mancanza di caching I componenti dello strato di presentazione devono accedere a servizi di business Le API dei servizi di business potrebbero cambiare con l evoluzione dei requisiti E opportuno implementare dei meccanismi di caching per ridurre il traffico di rete tra i client ed i servizi di business

41 Business Delegate Soluzione Usare un Business Delegate per ridurre l accoppiamento tra strato di presentazione e i servizi di business. Il Business Delegate nasconde i dettagli di implementazione di lookup e accesso di servizi di business Il LookupService può essere parte del BusinessDelegate o un Componente separato (come propone il Pattern Service Locator)

42 Business Delegate

43 Service Locator Contesto Necessità di incapsulare il lookup di servizi di business Problema Delocalizzare il servizio Disaccoppiare il client dal problema di recuperare un riferimento del servizio

44 Service Locator Soluzione Si usi un Service Locator per nascondere la complessità del lookup di oggetti service Più client possono riusare il Service Locator per ridurre la complessità, avere un unico punto di controllo e migliorare le performance con meccanismi di caching

45 Service Locator

Laboratorio di sistemi Prima Web Application JSP [Java]

Laboratorio di sistemi Prima Web Application JSP [Java] Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File

Dettagli

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti Programmazione Java Avanzata MVC Model, View,, Controller Ing. Gianluca Caminiti Uso di JSP: complessità crescente Invocare codice Java direttamente. Posizionare tutto il codice Java in una pagina JSP

Dettagli

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di

Dettagli

Introduzione alla programmazione Http lato server in Java

Introduzione alla programmazione Http lato server in Java Introduzione alla programmazione Http lato server in Java Tito Flagella Laboratorio Applicazioni Internet - Università di Pisa Slide API Java Titleper il Protocollo Http Programmazione Client java.net.url

Dettagli

PRIMO MODULO. DURATA: 80 ore CONTENUTI

PRIMO MODULO. DURATA: 80 ore CONTENUTI 0 PRIMO MODULO DURATA: 80 ore CONTENUTI 1. Introduzione alla programmazione a. Cosa è la programmazione strutturata b. Strutture dati c. Come si affronta una problematica da risolvere d. Quali sono i passi

Dettagli

1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org

1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org 1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org Applicazione J2EE sul SAP WAS con SAP NWDS. Il SAP Web Application Server fornisce un framework integrato per lo sviluppo e l

Dettagli

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION 0 DURATA 200 ore CONTENUTI Oracle PL/SQL Introduzione al PL/SQL Cenni su SQL con utilizzo di SQL*PLUS Configurazione ambiente Developer DB Classi,

Dettagli

Laboratorio di sistemi MVC versione 2 Jsp (NetBeans)

Laboratorio di sistemi MVC versione 2 Jsp (NetBeans) Definizione Adattato da "http://it.wikipedia.org/wiki/model-view-controller" Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllore) è il nome di un design pattern fondamentale

Dettagli

Soluzione 1: controller per la pagina di dettaglio delle categorie

Soluzione 1: controller per la pagina di dettaglio delle categorie Soluzione 1: controller per la pagina di dettaglio delle categorie @WebServlet("/category") public class CategoryDetailsServlet extends HttpServlet { public void doget( HttpServletRequest request, HttpServletResponse

Dettagli

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet

1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet 1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet: e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino e : estensioni del Java API permettono di scrivere

Dettagli

Corso di Applicazioni Telematiche

Corso di Applicazioni Telematiche Corso di Applicazioni Telematiche A.A. 2008-09 Lezione n.12 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Una Servlet è un componente software scritto in Java,

Dettagli

Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano

Java Enterprise Edition - JEE. Autore: Agostino Sorbara ITIS M. M. Milano Java Enterprise Edition - JEE Autore: Agostino Sorbara ITIS M. M. Milano Indice Introduzione 2 Il modello Client Server. 2 La piattaforma di sviluppo JEE... 3 Application Server... 3 Servlet. 4 JSP (Java

Dettagli

SERVLET & JSP DISPENSE

SERVLET & JSP DISPENSE SERVLET & JSP DISPENSE PROGRAMMAZIONE LATO SERVER Un server deve rispondere alle richieste del client e permettere di visualizzare le pagine Web. Questo compito è svolto da un software ben definito, il

Dettagli

Corso Programmazione Java Avanzato

Corso Programmazione Java Avanzato Corso Programmazione Java Avanzato Codice: ITJA0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle tecnologie impiegate per la realizzazione di applicazioni web basate sulla

Dettagli

Laboratorio di reti II: Java Server Pages

Laboratorio di reti II: Java Server Pages Laboratorio di reti II: Java Server Pages Stefano Brocchi brocchi@dsi.unifi.it 6 aprile, 2009 Stefano Brocchi Laboratorio di reti II: Java Server Pages 6 aprile, 2009 1 / 34 JSP - Java Server Pages Le

Dettagli

Programmazione server-side: Java Servlet

Programmazione server-side: Java Servlet Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos

Dettagli

Accesso Web a Data Base

Accesso Web a Data Base Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Accesso Web a Data Base Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei -

Dettagli

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) 1 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 2 0 1 2 / 2 0 1 3 JSP Una pagina JSP può essere vista come uno schema di pagina Web dove: le

Dettagli

Capitolo 7. Soluzione: <P align= center > Form di invio nome e cognome </P> <FORM action= nomecognome.exe method= post >

Capitolo 7. Soluzione: <P align= center > Form di invio nome e cognome </P> <FORM action= nomecognome.exe method= post > Capitolo 7 Esercizio 7.1 Commentare le caratteristiche di HTTP come protocollo client-server, evidenziando gli aspetti differenti rispetto ai protocolli client-server tradizionali. La caratteristica che

Dettagli

Framework di Middleware. per Architetture Enterprise

Framework di Middleware. per Architetture Enterprise Framework di Middleware per Architetture Enterprise Corso di Ingegneria del Software A.A.2011-2012 Un po di storia 1998: Sun Microsystem comprende l importanza del World Wide Web come possibile interfaccia

Dettagli

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

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 09 Riepilogo

Alma Mater Studiorum Università di Bologna. Scuola di Ingegneria e Architettura. Tecnologie Web T. Esercitazione 09 Riepilogo Alma Mater Studiorum Università di Bologna Scuola di Ingegneria e Architettura Tecnologie Web T Esercitazione 09 Riepilogo Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica:

Dettagli

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2

Architettura MVC-2 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Verso l architettura MVC-2 Architettura MVC-2 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell esecuzione, che rimane alla

Dettagli

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC Programma didattico Sviluppare Applicazioni Distribuite in ambiente Spring MVC Programma del corso 1.Progettazione e Sviluppo Database Relazionali Questa competenza permette di Progettare e Sviluppare

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Luca Cabibbo. Persistenza di oggetti

Luca Cabibbo. Persistenza di oggetti AP Analisi S Analisi e Progettazione del Software Persistenza di oggetti aprile 2004 1 Persistenza di oggetti Motivazioni e contenuti Contesto applicazioni sviluppate mediante le moderne tecniche di OOA/OOD/OOP

Dettagli

Architettura MVC-2. Alberto Belussi. Anno accademico 2006/2007

Architettura MVC-2. Alberto Belussi. Anno accademico 2006/2007 Architettura MVC-2 Alberto Belussi Anno accademico 2006/2007 Verso l architettura MVC-2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell esecuzione, che rimane alla servlet,

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web con Servlet e JSP: Concetti Avanzati G. Mecca mecca@unibas.it Università della Basilicata Applicazioni Web J2EE >> Sommario Concetti Avanzati Preliminari

Dettagli

Programmazione Java Avanzata PATTERN

Programmazione Java Avanzata PATTERN Programmazione Java Avanzata PATTERN Anno 2011/2012 Pattern Una soluzione progettuale generale a un problema ricorrente Elementi per il riuso di software ad oggetti Vantaggiosi e obbligatori da usare Pattern

Dettagli

MODEL-VIEW-CONTROLLER PROBLEMA

MODEL-VIEW-CONTROLLER PROBLEMA MODEL VIEW CONTROLLER DESIGN PATTERN MODEL-VIEW-CONTROLLER INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

Un contatore di accessi

Un contatore di accessi Un contatore di accessi Scriviamo una servlet che conta il numero di accessi e lo visualizza. Sfruttiamo il fatto che Tomcat, quando riceve la richiesta di una servlet, crea un istanza della classe corrispondente.

Dettagli

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

Lezione di Basi di Dati 1 18/11/2008 - TECNOLOGIE PER IL WEB: CGI - AJAX SERVLETS & JSP EVOLUZIONE DEL WEB: PAGINE STATICHE vs PAGINE DINAMICHE Il Web è nato a supporto dei fisici, perché potessero scambiare tra loro le informazioni inerenti le loro sperimentazioni. L HTTP è nato inizialmente

Dettagli

Le JavaServer Pages - Lezione 7 I JavaBean

Le JavaServer Pages - Lezione 7 I JavaBean Le JavaServer Pages - Lezione 7 I JavaBean A cura di Giuseppe De Pietro (depietro_giuseppe@yahoo.it) Contenuti Nelle lezioni precedenti abbiamo visto gli elementi principali delle Java Server Pages, come

Dettagli

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) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 JSP Una pagina JSP può essere vista come uno schema di pagina Web dove: le parti statiche sono scritte in

Dettagli

Gestire le sessioni con le Servlet

Gestire le sessioni con le Servlet PROGETTO Gestire le sessioni con le Servlet Con il termine sessione si intende un insieme di attività correlate, con una o alcune di queste che sono preliminari ad altre. Si pensi, per esempio, a un qualsiasi

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL)

Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Pag. 1/12 Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Prendiamo in esame un qualsiasi progetto NetBeans tra quelli studiati che fa uso di un database

Dettagli

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 2 0 1 2 / 2 0 1 3

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 2 0 1 2 / 2 0 1 3 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 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

Dettagli

Stateless Session Bean

Stateless Session Bean Stateless Session Bean 1 Esempio Stateless Session bean per il calcolo della somma di due numeri reali 2 Struttura del sistema calcolo della somma di due numeri reali Sum implementato con uno stateless

Dettagli

Introduzione a Java Servlet Technology

Introduzione a Java Servlet Technology Introduzione a Java Technology SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi Chi ha conosciuto quella forma del principio di ragione che apparisce nel tempo puro in quanto

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

scrivere window.alert(). 2 Nell esempio sarebbe scritto solo var hello, senza pertanto attribuire alla variabile hello alcun valore

scrivere window.alert(). 2 Nell esempio sarebbe scritto solo var hello, senza pertanto attribuire alla variabile hello alcun valore In genere il metodo alert() è usato per verificare il valore delle variabili durante la fase di correzione degli errori (debugging), fase che può essere svolta anche con l ausilio di appositi programmi

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04

Servlet API. Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet API Programmazione in Ambienti Distribuiti A.A. 2003-04 Servlet Interfaccia Java che modella il paradigma richiesta/elaborazione/risposta tipico delle applicazioni lato server Presuppone l esistenza

Dettagli

Ingegneria del Software Model View Controller

Ingegneria del Software Model View Controller Ingegneria del Software 1 07 - Model View Controller Martedì, Aprile 4, 2016 Claudio Menghi, Alessandro Rizzi April 5, 2017 1 Contents Ingegneria del Software 1 (Claudio Menghi, Alessandro Rizzi ): 07

Dettagli

Applicazioni web. Sommario. Parte 7 Java Server Pages. Applicazioni web - JSP. Alberto Ferrari 1 JSP. JavaBeans JSTL. Architettura e sintassi di base

Applicazioni web. Sommario. Parte 7 Java Server Pages. Applicazioni web - JSP. Alberto Ferrari 1 JSP. JavaBeans JSTL. Architettura e sintassi di base Applicazioni web Parte 7 Java Server Pages Alberto Ferrari 1 Sommario JSP JavaBeans JSTL Architettura e sintassi di base Concetti fondamentali Beans in pagine JSP Linguaggio di espressione Azioni principali

Dettagli

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

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni IIndice Capitolo 1 Da dove partiamo: pagine web statiche 1 1.1 Principi di base.............................. 1 1.1.1 Il paradigma client-server.................... 1 1.1.2 Ipertesto, multimedia, ipermedia................

Dettagli

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it

Applicazioni web. Parte 2 JSP. Michele Tomaiuolo tomamic@ce.unipr.it Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 2 JSP Michele Tomaiuolo tomamic@ce.unipr.it Sommario JSP: sintassi di

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Le tecnologie software Internet

Le tecnologie software Internet Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B B2_1 V1.7 Le tecnologie software Internet Standard aperti / Sun Java Il contenuto del documento è liberamente utilizzabile dagli studenti,

Dettagli

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

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View MVC View Controller! Si tratta di un pattern di progettazione introdotto originariamente con Smalltalk (1980 Xerox)! Si basa su astrazioni presenti in tutte le applicazioni dotate di interfaccia grafica!

Dettagli

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico JDBC Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JDBC JDBC (Java Database Connectivity) è una API Java per accedere ed elaborare dati in una sorgente dati (di solito un db

Dettagli

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi C1_1 V3.

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi C1_1 V3. Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE Paolo Salvaneschi C1_1 V3.4 Componenti Il contenuto del documento è liberamente utilizzabile

Dettagli

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2009-2010 Approccio

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Architettura Model-View-Controller (MVC)

Architettura Model-View-Controller (MVC) Laboratorio a o o di Basi di Dati e Web Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 8 Java Server Pages Java Server Pages è essenzialmente un modo più comodo per il programmatore dell applicazione web di scrivere una Servlet.

Dettagli

Osservazioni. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2005/06-1

Osservazioni. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2005/06-1 Osservazioni Nell esempio della precedente lezione del contatore di accessi persistente il nome del file in cui memorizzare il numero di hit ed il valore iniziale del contatore sono codificati direttamente

Dettagli

Le tecnologie software Internet

Le tecnologie software Internet Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B2_1 V1.7 Le tecnologie software Internet Standard aperti / Sun Java Il contenuto del documento è liberamente utilizzabile

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 9 Architettura Model-View-Controller (MVC) Adottando l'architettura MVC e la tecnologia Servlet-JSP, un'applicazione web può essere realizzata

Dettagli

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1 I file WAR WAR è una contrazione di Web ARchive. I file WAR consentono di archiviare un intera applicazione web in un unico file. Tomcat fornisce (tramite il Tomcat Manager) un interfaccia grafica per

Dettagli

Svantaggi delle servlet

Svantaggi delle servlet Svantaggi delle servlet Le servlet sono la tecnologia principale di J2EE per comunicare con i browser dei client. Tuttavia ci sono degli inconvenienti per gli sviluppatori di applicazioni web: le servlet

Dettagli

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati e Web Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 6 Servlet Servlet: classi java che estendono le funzionalità di un server Web generando dinamicamente le pagine Web. Riferimento: http://java.sun.com/products/servlets

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Laboratorio di Basi di dati

Laboratorio di Basi di dati Laboratorio di Basi di dati Docente: Alberto Belussi Lezione 6 Servlet Servlet: classi java che estendono le funzionalità di un server Web generando dinamicamente le pagine Web. Riferimento: http://www.oracle.com/technetwork/java/javaee/servlet/index.html

Dettagli

Note pratiche sullo sviluppo di servlet (I)

Note pratiche sullo sviluppo di servlet (I) Note pratiche sullo sviluppo di servlet (I) Nel caso in cui sulla macchina locale (PC in laboratorio/pc a casa/portatile) ci sia a disposizione un ambiente Java (con compilatore) e un editor/ambiente di

Dettagli

Laboratorio di Progettazione di Sistemi Software Design Patterns

Laboratorio di Progettazione di Sistemi Software Design Patterns TITLE Laboratorio di Progettazione di Sistemi Software Design Patterns Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Tipi di Design Patterns Creazionali Strutturali Comportamentali

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

SERVLET & JSP DISPENSE

SERVLET & JSP DISPENSE SERVLET & JSP DISPENSE PROGRAMMAZIONE LATO SERVER Un server deve rispondere alle richieste del client e permettere di visualizzare le pagine Web. Questo compito è svolto da un software ben definito, il

Dettagli

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

J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser. Il Pattern MVC J2EE (o JEE): Framework Java per lo sviluppo di applicazioni WEB Enterprise, che vivono in rete e che siano accessibili attraverso browser. Il famework Sun J2EE Component, Container e Connector:

Dettagli

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria

SOLUZIONE. Requisiti. Requisiti (cont.) Requisiti (cont.) Sapienza - Università di Roma Facoltà di Ingegneria Sapienza - Università di Roma Facoltà di Ingegneria Requisiti Corso di PROGETTAZIONE DEL SOFTWARE I (Corso di Laurea in Ingegneria Informatica) Prof. Giuseppe De Giacomo Canali A-L & M-Z A.A. 2006-07 Compito

Dettagli

Progetto di Gestione Documenti in Ambiente Web

Progetto di Gestione Documenti in Ambiente Web Progetto di Gestione Documenti in Ambiente Web Sessione Febbraio 2013 Marco Taddei 726523 Federico Valentini 726584 Il progetto SharesShop simula un portale web di una banca che mette a disposizione dei

Dettagli

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico

Java Server Pages. Corso di Applicazioni Telematiche. A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Java Server Pages Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Java Server Pages (JSP) Java Server

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client

Dettagli

Le conversazioni. Dott. Doria Mauro

Le conversazioni. Dott. Doria Mauro Hibernate Le conversazioni Dott. Doria Mauro doriamauro@gmail.com Introduzione alle conversazioni In una applicazione reale le operazioni sono organizzate in classi controller con le funzioni di business

Dettagli

Framework. Impianti Informatici. Web application - tecnologie

Framework. Impianti Informatici. Web application - tecnologie Framework Web application - tecnologie Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione

Dettagli

L architettura MVC (Model- View-Controller) Introduzione

L architettura MVC (Model- View-Controller) Introduzione L architettura MVC (Model- View-Controller) Introduzione Architettura MCV L architettura MVC è un insieme di regole per strutturare un sito-web dinamico. Queste regole complicano la struttura del sito,

Dettagli

Il problema è trovare un modo nel quale gli eventi dell oggetto di riferimento, siano comunicati a tutti gli altri interessati.

Il problema è trovare un modo nel quale gli eventi dell oggetto di riferimento, siano comunicati a tutti gli altri interessati. Observer 129 19. Observer (GoF pag. 293) 19.1. Descrizione Consente la definizione di associazioni di dipendenza di molti oggetti verso di uno, in modo che se quest ultimo cambia il suo stato, tutti gli

Dettagli

Architetture Web: un ripasso

Architetture Web: un ripasso Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede

Dettagli

Modelli e strumenti per la generazione automatica di codice

Modelli e strumenti per la generazione automatica di codice tesi di laurea Anno Accademico 2005-2006 relatore Ch.mo prof. Porfirio Tramontana candidato Valerio Lombardi Matr. 534/237 Contesto e Contributo Fusione tra il mondo della modellazione e della programmazione

Dettagli

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 00-PRIME PAGINE 2-07-2003 10:04 Pagina V Indice Prefazione XI PARTE PRIMA INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 1 Capitolo 1 Le ragioni di tanto interesse 3 1.1 Enterprise in J2EE 3 Definizione

Dettagli

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

Basi di Dati. JDBC - Esercitazione n. 4 Quaderno n. 4. Passi preliminari per lo svolgimento delle esercitazioni Basi di Dati JDBC - Esercitazione n. 4 Quaderno n. 4 La finalità di questa esercitazione è scrivere le parti mancanti di una semplice applicazione Java che utilizza JDBC per accedere ad una base di dati.

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Struttura dell Applicazione versione 2.4 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Alberi Binario in Java

Alberi Binario in Java Alberi Binario in Java Realizzare un albero binario di ricerca. L albero binario è di ricerca se esiste una relazione di ordinamento tra i valori dei nodi (valori comparabili). In particolare, dato un

Dettagli

Laboratorio di Basi di Dati e Multimedia

Laboratorio di Basi di Dati e Multimedia Laboratorio di Basi di Dati e Multimedia Laurea in Tecnologie dell Informazione: Multimedia Docente: Alessandra Di Pierro Email: dipierro@sci.univr.it Lezione 7 Java DataBase Connectivity JDBC consente

Dettagli

Chiamata delle funzioni JavaScript da un applet

Chiamata delle funzioni JavaScript da un applet Chiamata delle funzioni JavaScript da un applet Il codice Java delle applet può essere eseguito nei browser Web su cui è presente il Java Plug-in, un meccanismo che gestisce le interazioni tra i browser

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 10 Architettura Model-View-Controller (MVC) L'architettura MVC può essere applicata anche alla tecnologia PHP secondo diversi approcci. In questa

Dettagli

Errata Corrige di Manuale di Java 8

Errata Corrige di Manuale di Java 8 Errata Corrige di Manuale di Java 8 pag. 43 - par. 2.5.1 - primo riquadro che riporta linee di codice public class Punto { public Punto() //metodo costruttore { deve essere corretto come di seguito: public

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni

Tomcat & Servlet. Contenuti. Programmazione in Ambienti Distribuiti. Tomcat Applicazioni Web. Servlet JSP Uso delle sessioni Tomcat & Servlet Programmazione in Ambienti Distribuiti V 1.2 Marco Torchiano 2005 Contenuti Tomcat Applicazioni Web Struttura Sviluppo Deployment Servlet JSP Uso delle sessioni 1 Tomcat Tomcat è un contenitore

Dettagli

Esercitazione sui Design Pattern. lunedì 29 aprile 13

Esercitazione sui Design Pattern. lunedì 29 aprile 13 Esercitazione sui Design Pattern Pattern Creazionali Singleton Permette la creazione di una sola istanza della classe all interno dell applicazione Fornisce un metodo con cui ottenere l istanza Il costruttore

Dettagli

Ereditarietà (ultima)

Ereditarietà (ultima) Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...

Dettagli

Session tracking Session tracking HTTP: è stateless, cioè non permette di associare una sequenza di richieste ad un dato utente. Ciò vuol dire che, in generale, se un browser richiede una specifica pagina

Dettagli

La fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo

La fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo & Monica Scannapieco Anno Accademico 2003/04 LA FASE DI PROGETTO E

Dettagli

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

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria. Laurea Magistrale in Ingegneria Informatica Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Laurea Magistrale in Ingegneria Informatica Tesi di Laurea Sistema informativo per la gestione dei processi

Dettagli

Tener traccia del client

Tener traccia del client Tener traccia del client Raramente un applicazione web è costituita da una singola pagina (risorsa). E utile quindi tener traccia dei client che si collegano per rendere più semplice lo sviluppo dell applicazione.

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli