Laboratorio di sistemi MVC Jsp [NetBeans]

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laboratorio di sistemi MVC Jsp [NetBeans]"

Transcript

1 Estratto da " Definizione Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllore) è il nome di un design pattern fondamentale nello sviluppo di interfacce grafiche di sistemi software object-oriented. Originariamente impiegato dal linguaggio Smalltalk, il pattern è stato esplicitamente o implicitamente sposato da numerose tecnologie moderne, come framework basati su Java (Swing, JSF e Structs) su Objective C o su.net. A causa della crescente diffusione di tecnologie basate su MVC nel contesto di framework o piattaforma middleware per applicazioni Web, l'espressione framework MVC o sistema MVC sta entrando nell'uso anche per indicare specificatamente questa categoria di sistemi (che comprende per esempio Struts, Spring e Tapestry). Soluzione La soluzione viene interpretata a modo proprio dagli implementatori, ma in linea generale è questa: l' applicazione deve separare i componenti software che implementano il modello delle funzionalità di business (Model), dai componenti che implementano la logica di presentazione (View) e la logica di controllo (Controller). Schema di funzionamento Model è il cuore dell'applicazione. Definisce i dati e le operazioni che possono essere eseguiti su essi. Fornisce delle funzioni per l'accesso e l'aggiornamento. Può inoltre avere la responsabilità di notificare ai componenti della View eventuali aggiornamenti verificatisi in seguito a richieste del Controller, al fine di permettere alle View di presentare agli occhi degli utenti dati sempre aggiornati. View è l'interfaccia grafica (GUI) con cui l'utente interagisce. Il Controller ha la responsabilità di trasformare le interazioni dell'utente della View in azioni eseguite dal Model. Ma il Controller non rappresenta un semplice "ponte" tra View e Model. Realizzando la mappatura tra input dell'utente e processi eseguiti dal Model, il Controller implementa la logica di controllo dell'applicazione. MVC.pdf Pag. 1/11 Cozzetto

2 Design Pattern Nell'ingegneria del software, un design pattern può essere definito "una soluzione progettuale generale a un problema ricorrente". Esso non è una libreria o un componente di software riusabile, quanto una descrizione o un modello da applicare per risolvere un problema che può presentarsi in diverse situazioni durante la progettazione e lo sviluppo del software. La differenza tra un algoritmo e un design pattern è che il primo risolve problemi computazionali, mentre il secondo è legato agli aspetti progettuali del software. Framework Nella produzione del software, il framework è definito come una struttura di supporto dove un software può essere organizzato e progettato. Un framework include il programma di gestione, le librerie di codice, un linguaggio di scripting e altro materiale in grado di aiutare gli sviluppatori a unire tutti i vari materiali prodotti per fornire il software finale. Il framework è sviluppato con l'intento di facilitare la produzione di software, permettendo ai programmatori di concentrarsi sulla qualità del codice e pensando meno a dettagli minori come il linking fra le varie risorse. JSP Model 1 Architecture Nel Modello 1, le richieste del client vengono indirizzate verso pagine JSP, le quali devono provvedere a svolgere tutto il lavoro necessario (creare JavaBean, recuperare i dati da un database ecc) e controllare il flusso dell applicazione. Questa architettura si adatta a semplici applicazioni. Presenta infatti degli svantaggi che ne limitano l uso nelle applicazioni complesse. Primo, essa richiede di incorporare all interno delle JSP la cosiddetta business logic rappresentata in genere da codice java. Questo crea problemi ai web designer che di solito non sono a loro agio con la programmazione server side. Secondo, questo approccio non favorisce il riutilizzo dei componenti dell applicazione. Per esempio il codice scritto in una JSP per autenticare un utente non potrebbe essere riutilizzato in altre pagine. MVC.pdf Pag. 2/11 Cozzetto

3 JSP Model 2 Architecture L architettura JSP Model 2 conosciuta anche come architettura MVC tiene rigorosamente separati il livello della presentazione (View), il livello della logica di controllo (Controller) e lo stato dell applicazione rappresentato dai dati (Model). Nel Modello 2, il controllo del flusso (o flusso dell applicazione) è incorporato in un altro modulo chiamato Controller. Il Controller (di solito una servlet) riceve tutte le richieste dell applicazione ed è responsabile di intraprendere le azioni appropriate in risposta ad ogni richiesta. Una volta ottenuti i dati, richiama la vista appropriata, di solito una pagina JSP (livello di presentazione ). Il Model, rappresentato ad esempio da JavaBean, Business Object e Database, mantiene lo stato dell applicazione. Di solito, esso copre il livello di business e il livello dati dell applicazione. Il compito della View invece è quello di recuperare l informazione fornita dal Controller e dal Model e presentarla all utente. La View pertanto non dovrebbe alterare lo stato del Model o intraprendere qualsiasi genere di elaborazione. Il grosso vantaggio di questo modello è la facilità della manutenzione che risulta dalla separazione delle responsabilità. Il Controller presenta un singolo punto d ingresso nell applicazione (questo rende l applicazione più sicura). Inoltre i componenti software prodotti possono essere riutilizzati e questo aiuta i web designer a lavorare solo col livello di presentazione dal momento che le JSP non richiedono alcuna complessa business logic. In questo modo si risolvono i problemi evidenziati nel modello 1. MVC.pdf Pag. 3/11 Cozzetto

4 L esempio (liberamente adattato da JBoss At Work A practical Guide di Scott Davis e Tom Marrs) Realizziamo un semplice esempio nel quale facciamo uso del Modello 2. I ruolo del Controller è svolto dalla servlet ControllerServlet.java. Il ruolo della View è svolto dalle JSP index.jsp e carlist.jsp. Il ruolo del Model è svolto dal JavaBean CarBean e dalla classe CarDAO (Business Object) che provvede a recuperare i dati da un database MySQL. ControllerServlet.java / ControllerServlet.java Created on 27 agosto 2006, 6.34 package it.mauriziocozzetto; import java.io.; import java.net.; import javax.servlet.; import javax.servlet.http.; import java.util.list; import java.util.arraylist; public class ControllerServlet extends HttpServlet { / Processes requests for both HTTP <code>get</code> and <code>post</code> request servlet response servlet response private static final String ACTION_KEY = "action"; private static final String VIEW_CAR_LIST_ACTION = "viewcarlist"; private static final String ERROR_KEY = "errormessage"; private static final String ERROR_PAGE="/error.jsp"; MVC.pdf Pag. 4/11 Cozzetto

5 protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String actionname = request.getparameter(action_key); String destinationpage = ERROR_PAGE; // perform action if(actionname.equals(view_car_list_action)) { ArrayList carlist = new ArrayList(); // Business Object CarDAO cardao = new CarDAO(); request.setattribute("carlist", cardao.findall()); destinationpage = "/carlist.jsp"; else if (actionname.equals("")) { String errormessage = "action è la stringa nulla."; request.setattribute(error_key, errormessage); else { String errormessage = "[" + actionname + "] non è un'azione valida."; request.setattribute(error_key, errormessage); gotopage(destinationpage,request,response); // <editor-fold defaultstate="collapsed" desc="httpservlet methods. Click on the + sign on the left to edit the code."> / Handles the HTTP <code>get</code> request servlet response servlet response protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, response); / Handles the HTTP <code>post</code> request servlet response servlet response protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, response); / Returns a short description of the servlet. public String getservletinfo() { return "Controller"; MVC.pdf Pag. 5/11 Cozzetto

6 public void gotopage(string pagename, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { RequestDispatcher d = getservletcontext().getrequestdispatcher(pagename); d.forward(request, response); // </editor-fold> index.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>car List</title> <link rel="stylesheet" type="text/css" href="default.css"> </head> <body> <h2>car List</h2> <a href="controllerservlet?action=viewcarlist">vedi inventario</a> </body> </html> default.css body,td,th { font-family: Trebuchet MS; font-size: 10pt; table { border-style: solid; border-color: #aaa; border-width: 1px; th { color: #fff; background-color: #92aa88; border-style: solid; border-color: #aaa; border-width: 1px; font-weight: bold; text-align: left; MVC.pdf Pag. 6/11 Cozzetto

7 td { color: #000; background-color: #fff; border-style: solid; border-color: #92aa88; border-width: 1px; text-align: left; padding: 2px;.model-year { text-align: right; carlist.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@taglib uri=" prefix="c"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>car List Page</title> <link rel="stylesheet" type="text/css" href="default.css"> </head> <body> <h2>car List</h2> <table> <tr> <th>marca</th> <th>modello</th> <th class="model-year">anno</th> </tr> <c:foreach items='${carlist' var='car'> <tr> <td>${car.make</td> <td>${car.model</td> <td class="model-year">${car.modelyear</td> </tr> </c:foreach> </table> </body> </html> MVC.pdf Pag. 7/11 Cozzetto

8 error.jsp contenttype="text/html"%> pageencoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>pagina di errore</title> <link rel="stylesheet" type="text/css" href="default.css"> </head> <body> <h2>gestione degli errori</h2> <p>c'è stato un errore: ${errormessage</p> <p><a href="index.jsp">torna alla pagina principale</a></p> </body> </html> carbean.java / CarBean.java Created on 27 agosto 2006, 6.25 package it.mauriziocozzetto; import java.util.arraylist; admin public class CarBean implements java.io.serializable { private String make; private String model; private String modelyear; public CarBean() { // costruttore di default public CarBean(String make, String model, String modelyear) { this.make = make; this.model = model; this.modelyear = modelyear; MVC.pdf Pag. 8/11 Cozzetto

9 public String getmake( ) { return make; public void setmake(string make) { this.make = make; public String getmodel( ) { return model; public void setmodel(string model) { this.model = model; public String getmodelyear( ) { return modelyear; public void setmodelyear(string modelyear) { this.modelyear = modelyear; // fine JavaBean cardao.java / CarDAO.java Created on 27 agosto 2006, 7.24 package it.mauriziocozzetto; import java.util.arraylist; import java.sql.; admin public class CarDAO { private ArrayList carlist; / Creates a new instance of CarDAO public CarDAO() { carlist = new ArrayList(); MVC.pdf Pag. 9/11 Cozzetto

10 / dati costanti per il solo scopo di debugging carlist.add(new CarBean("Toyota", "Camry", "2005")); carlist.add(new CarBean("Toyota", "Corolla", "1999")); carlist.add(new CarBean("Ford", "Explorer", "2005")); Connection conn=null; Statement st=null; String sql; ResultSet rs=null; try { Class.forName("com.mysql.jdbc.Driver"); catch (ClassNotFoundException e) { System.out.println("Errore: "+e.getmessage()); return; try { conn=drivermanager.getconnection("jdbc:mysql://localhost:3306/cars?user=root&password="); st=conn.createstatement(); sql="select FROM car_tbl"; rs=st.executequery(sql); while (rs.next()) { carlist.add(new CarBean( rs.getstring("make"), rs.getstring("model"), rs.getstring("model_year") )); rs.close(); st.close(); conn.close(); catch (SQLException se) { System.out.println("Errore: "+se.getmessage()); public ArrayList findall( ) { return carlist; MVC.pdf Pag. 10/11 Cozzetto

11 I dati contenuti nel database cars (tabella car_tbl) La pagina index.jsp L inventario delle automobili MVC.pdf Pag. 11/11 Cozzetto

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

Laboratorio di sistemi Autenticazione utente mediante scriplet Jsp [NetBeans]

Laboratorio di sistemi Autenticazione utente mediante scriplet Jsp [NetBeans] Figura 1 - La pagina input_user.jsp appena caricata Figura 2 - Lascio vuoti entrambi i campi o immetto un solo valore Figura 3 - Immetto dei valori che non esistono nel database autent_utente_scriplet.pdf

Dettagli

Laboratorio di sistemi Information hiding Jsp [Java]

Laboratorio di sistemi Information hiding Jsp [Java] Vogliamo realizzare una pagina web che ci consenta di filtrare i record della tabella books del database MySQL shop. Fig. 1 Tabella books, database MySQL shop Il filtro viene scritto direttamente dall'utente

Dettagli

Laboratorio di Sistemi Accesso a un database MySQL NetBeans [Jsp]

Laboratorio di Sistemi Accesso a un database MySQL NetBeans [Jsp] Figura 1 Vogliamo realizzare una pagina web simile alla precedente: i dati si trovano nel db MySQL simpsons_db all'interno della tabella simpsons_tbl simpsons_mysql.pdf Pag. 1/12 Cozzetto Figura 2 - La

Dettagli

Laboratorio di Sistemi Accesso a un database Jsp [NetBeans]

Laboratorio di Sistemi Accesso a un database Jsp [NetBeans] Modifichiamo l applicativo ListaSupereroiWebApp in modo che i dati dei supereroi non vengano caricati staticamente mediante delle istruzioni di assegnamento ma dinamicamente leggendo i record della tabella

Dettagli

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

Laboratorio di Sistemi CRUD con MySQL JSP (Java)

Laboratorio di Sistemi CRUD con MySQL JSP (Java) Il problema Vogliamo realizzare un applicativo web che consenta di inserire, modificare e cancellare i record della tabella libri_tbl (database MySQL biblio_db). In questi casi, parliamo di applicativo

Dettagli

Laboratorio di Sistemi Prototipo applicazione Biblioteca Jsp [Java]

Laboratorio di Sistemi Prototipo applicazione Biblioteca Jsp [Java] Vogliamo progettare un prototipo di applicazione web che consenta ad un utente di ottenere, selezionando l'autore da una casella combinata, l'elenco dei libri scritti da quell'autore, come nelle figure

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

Model-View- Controller

Model-View- Controller Model-View- Controller A. FERRARI MVC Il Model-View-Controller è un pattern architetturale molto diffuso nello sviluppo di sistemi software, in particolare nell'ambito della programmazione orientata agli

Dettagli

Laboratorio di sistemi ArrayList e file sequenziali Jsp [NetBeans]

Laboratorio di sistemi ArrayList e file sequenziali Jsp [NetBeans] Sul sito della casa editrice DC Comics (http://www.dccomics.com), fino a poco tempo fa, erano disponibili le schede dei personaggi più noti al grande pubblico (adesso le schede sono state sostituite da

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

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

Laboratorio di sistemi Fortune Java/Jsp

Laboratorio di sistemi Fortune Java/Jsp Ricordiamo che in Ubuntu il comando fortune impartito da shell produce una frase umoristica, un anedotto o una frase bizzarra ecc. Si può installare e localizzare nella lingua italiana mediante il comando

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

Laboratorio di sistemi JSTL e database Jsp [NetBeans]

Laboratorio di sistemi JSTL e database Jsp [NetBeans] Elenco dei film ottenuti usando la libreria JSTL 1.1 elenco_film_jstl.pdf Pag. 1/18 Cozzetto Inserisco i dati di un film. Prima dell'inserimento i dati vengono confrontati con quelli della tabella film_tbl

Dettagli

Introduzione al Model-View-Controller (MVC)

Introduzione al Model-View-Controller (MVC) Introduzione al Model-View-Controller (MVC) Maurizio Cozzetto 9 Luglio 2009 Indice 1 Model-View-Controller 1 1.1 Definizione.................................................. 1 1.2 Soluzione...................................................

Dettagli

Introduzione. Applicazione web con Java. servlet

Introduzione. Applicazione web con Java. servlet Introduzione Un applicazioe web è un applicazione client/server a cui è possibile accedere mediante un browser, ed è costituita da un insieme di pagine web generate in risposta alle richieste degli utenti.

Dettagli

Prova scritta del 13 luglio 2010

Prova scritta del 13 luglio 2010 Matricola: Cognome: Nome: Insegnamento: LAB Basi di dati LAB Basi di dati e web Basi di dati e web 4 CFU Laboratorio di Basi di dati (Laboratorio di Basi di dati e Web) Prova scritta del 13 luglio 2010

Dettagli

Laboratorio di Sistemi DAO JSP (Java)

Laboratorio di Sistemi DAO JSP (Java) Il problema Vogliamo progettare una piccola web application che ci consenta di ottenere, scegliendo un autore da una combo box, l'elenco dei libri scritti da quell'autore (è un esempio già trattato in

Dettagli

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java]

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java] Per la comprensione del presente articolo, occorre aver assimilato i concetti esposti nell'articolo Prototipo autenticazione utente (file autenticazione_2.pdf). (Tratto da Wikipedia, l'enciclopedia libera)

Dettagli

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java]

Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java] Per la comprensione del presente articolo, occorre aver assimilato i concetti esposti nell'articolo Prototipo autenticazione utente (file autenticazione_2.pdf). (Tratto da Wikipedia, l'enciclopedia libera)

Dettagli

Laboratorio di sistemi Tag personalizzati Jsp [NetBeans] Sezione A

Laboratorio di sistemi Tag personalizzati Jsp [NetBeans] Sezione A Sezione A In NetBeans creiamo una applicazione web nel solito modo, confermando tutte le impostazioni proposte senza alcuna variazione. Per costruire una libreria di tag personalizzata, costruiamo innanzitutto

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

Laboratorio di Sistemi Serializzazione JSP (Java)

Laboratorio di Sistemi Serializzazione JSP (Java) Il problema Vogliamo realizzare un prototipo di applicazione web che visualizzi l'elenco degli album relativi ad un certo artista e, per ogni album, l'elenco dei brani in esso contenuti. Per farlo sfruttiamo

Dettagli

Il sito della MultisalaOz [ dispone di un archivio dei film già proiettati.

Il sito della MultisalaOz [  dispone di un archivio dei film già proiettati. Il sito della MultisalaOz [http://www.multisalaoz.it] dispone di un archivio dei film già proiettati. In questa figura, potete osservare un sito clone. L utente, selezionando una lettera dell alfabeto

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

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

Laboratorio di sistemi SELECT e checkbox Jsp [Java]

Laboratorio di sistemi SELECT e checkbox Jsp [Java] Fig. 1 - Vogliamo visualizzare book_id, autore e titolo dalla tabella books del database shop Fig. 2 - Tabella books select_checkbox.pdf Pag. 1/5 Cozzetto Fig. 3 - Abbiamo due record in output File index_1.jsp

Dettagli

Liberamente adattato da Java dai fondamenti alla programmazione avanzata JS2E versione 1.5 di Karsten Samaschke, Apogeo editrice

Liberamente adattato da Java dai fondamenti alla programmazione avanzata JS2E versione 1.5 di Karsten Samaschke, Apogeo editrice Liberamente adattato da Java dai fondamenti alla programmazione avanzata JS2E versione 1.5 di Karsten Samaschke, Apogeo editrice Vogliamo realizzare un'applicazione di tipo CRUD (Create, Read, Update,

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

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

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

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

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

Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi Introduzione a Java Server Pages (JSP) (estratto) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi 1 JSP (Java Server Pages) È la tecnologia Java per lo sviluppo di applicazioni

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

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

Tito Flagella - Introduzione alla programmazione di Servlet

Tito Flagella - Introduzione alla programmazione di Servlet Introduzione alla programmazione di Servlet Caratteristiche di base Estensioni del server scritte in Java utilizzando la Servlet API La Servlet API è diventata un estensione standard di Java, dalla versione

Dettagli

Laboratorio di sistemi Pacchetti PEAR: DB e HTML_Template_IT Php

Laboratorio di sistemi Pacchetti PEAR: DB e HTML_Template_IT Php Uno dei problemi che si deve affrontare nel progetto delle pagine web è quello della commistione tra parte grafica (che si colloca al livello di presentazione) e il codice (che si colloca al livello della

Dettagli

Introduzione alle JSP

Introduzione alle JSP Introduzione alle JSP Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Java Server Page JSP Riferimenti http://java.sun.com/products/jsp http://www.coreservlets.com http://www.html.it/jsp Le JSPs

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

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

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE Altri Componenti versione 3.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

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

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

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa JDBC Paolo Atzeni 11 marzo 2002 Progettazione di applicazioni, una premessa Il paradigma a tre livelli (three-tier) JDBC: la API per far interagire applicazioni Java con basi di dati marzo 2002 P. Atzeni,

Dettagli

Creare un portale personalizzato

Creare un portale personalizzato 1 Creare un portale personalizzato Passi da seguire 1) Aprire la pagina: http://www.term-minator.it/modello.html 2) Scaricare modello : 2) Aprire il file modello con blocco note : 1 2 3) Modificare il

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

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

Dettagli

Serialization. Persistenza dei dati quando l applicazione non è running: salvataggio della struttura interna di un oggetto. E un problema ricorsivo!

Serialization. Persistenza dei dati quando l applicazione non è running: salvataggio della struttura interna di un oggetto. E un problema ricorsivo! Java Serialization Il problema della persistenza Persistenza dei dati quando l applicazione non è running: salvataggio della struttura interna di un oggetto. E un problema ricorsivo! Serializzazione: trasformazione

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

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

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

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

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

Siti web centrati sui dati Architettura MVC-2: JSP

Siti web centrati sui dati Architettura MVC-2: JSP Siti web centrati sui dati Architettura MVC-2: JSP Alberto Belussi anno accademico 2006/2007 JSP Una pagina JSP è uno schema di pagina Web dove le parti statiche sono scritte in HTML e le parti dinamiche

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

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

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

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

Model View Controller

Model View Controller Model View Controller in breve Design Patterns Una scelta cruciale, programmando OO, è decidere quali classi definire e che responsabilità abbiano. I Design Pattern (schemi progettuali, pattern è usato

Dettagli

Laboratorio di Sistemi Prototipo autenticazione utente Jsp [Java]

Laboratorio di Sistemi Prototipo autenticazione utente Jsp [Java] Vogliamo realizzare un prototipo di applicativo web che consenta a un gruppo di utenti di autenticarsi. In prima istanza, carichiamo in memoria tutti gli utenti ammessi ad accedere al sistema, in seconda

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

Calcolatrice in Java: esempi di DP

Calcolatrice in Java: esempi di DP Calcolatrice in Java: esempi di DP In questo articolo vedremo come realizzare una piccola calcolatrice in Java, che ci permetterà di mettere in evidenza alcuni design pattern molto utili quando si programma.

Dettagli

Introduzione. Elementi di Informatica. Standard. Struttura dei TAG - 1. Annidamento e Indentazione. Struttura dei TAG - 2

Introduzione. Elementi di Informatica. Standard. Struttura dei TAG - 1. Annidamento e Indentazione. Struttura dei TAG - 2 Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica HTML e CSS D. Gubiani HTML è l acronimo di HyperText Markup Language che tradotto

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

Laboratorio di Sistemi Fondamenti di JDBC (parte2) Java. Implementare l'ereditarietà nel modello Relazionale

Laboratorio di Sistemi Fondamenti di JDBC (parte2) Java. Implementare l'ereditarietà nel modello Relazionale Implementare l'ereditarietà nel modello Relazionale Fig. 1 Un semplice diagramma di classe Consideriamo il diagramma di classe della Fig. 1 (per esercizio, implementate questo diagramma UML in Java, non

Dettagli

Antonio d Acierno 13/01/2006

Antonio d Acierno 13/01/2006 Introduzione alle Servlet Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Servlet Alternativa Java ai CGI-BIN Classi java che estendono le funzionalità di un server Web generando dinamicamente

Dettagli

Istruzioni per la creazione delle pagine Contratto e Scheda

Istruzioni per la creazione delle pagine Contratto e Scheda Istruzioni per la creazione delle pagine Contratto e Scheda Indice 1 Introduzione 3 2 Strumenti di aiuto per la creazione delle pagine 3 3 Inserimento codice HTML creato esternamente 5 2 1 INTRODUZIONE

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

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

Ciclo di vita di una Servlet

Ciclo di vita di una Servlet Ciclo di vita di una Servlet Non caricata. Prima richiesta: Caricata: il file.class viene caricato in memoria centrale. Inizializzata: viene eseguito il metodo init(). In servizio: risponde alle richieste

Dettagli

Servlet e JDBC. Programmazione in Rete e Laboratorio

Servlet e JDBC. Programmazione in Rete e Laboratorio 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 baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Laboratorio di Basi di Dati/ Basi di dati per Bioinformatica

Laboratorio di Basi di Dati/ Basi di dati per Bioinformatica Laboratorio di Basi di Dati/ Basi di dati per Bioinformatica Docenti: Alberto Belussi e Carlo Combi Lezione 9 Architettura Model-View-Controller (MVC)! Adottando l'architettura MVC e la tecnologia Servlet-JSP,

Dettagli

Java Servlet. Corso di Applicazioni Telematiche. A.A Lezione n.10 Prof. Roberto Canonico

Java Servlet. Corso di Applicazioni Telematiche. A.A Lezione n.10 Prof. Roberto Canonico Java Servlet Corso di Applicazioni Telematiche A.A. 2005-06 Lezione n.10 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos è una Servlet? Una Servlet è un componente

Dettagli

Introduzione a JDBC. si inviano comandi SQL; si recuperano i risultati dei comandi.

Introduzione a JDBC. si inviano comandi SQL; si recuperano i risultati dei comandi. Introduzione a JDBC JDBC (Java Database Connectivity) è la parte delle API di J2SE che fornisce le primitive per la connessione a basi di dati relazionali: si inviano comandi SQL; si recuperano i risultati

Dettagli

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

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. 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 baldoni@di.unito.it http://www.di.unito.it/~baldoni/didattica

Dettagli

Model View Controller (MVC)

Model View Controller (MVC) - MVC - ACTION - DECORATOR Model View Controller (MVC) I pattern descrivono un problema, una soluzione e le possibili conseguenze della soluzione adottata; sono strettamente correlati alla programmazione

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

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

Visualizzazione ordini in MyShopDB

Visualizzazione ordini in MyShopDB Visualizzazione ordini in MyShopDB Risolviamo gli esercizi della lezione scorsa, scrivendo una pagina ordini.jsp che visualizzi le intestazioni di ogni ordine (numero d ordine, data, nome, cognome, indirizzo,

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

Verso l architettura MVC-2 i JavaBeans

Verso l architettura MVC-2 i JavaBeans Verso l architettura MVC-2 i JavaBeans 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 Limiti dell approccio PROGRAMMA UNICO Il programma unico (servlet) svolge tre tipi di

Dettagli

Struttura Layout Monolitico Fisso con Menu Orizzontale

Struttura Layout Monolitico Fisso con Menu Orizzontale Struttura Layout Monolitico Fisso con Menu Orizzontale BODY Body { margin: 0px; padding:0; font-family: arial,sans-serif; font-size: 76%; text-align: center; background-color: #FC3; background-image: url();

Dettagli

JDBC: breve riepilogo (1)

JDBC: breve riepilogo (1) Laboratorio di Basi di Dati / Basi di Dati per Bioinformaticai Docenti: Alberto Belussi e Carlo Combi Lezione 7 JDBC: breve riepilogo (1) L interfaccia JDBC è contenuta nei package java.sql e javax.sql.

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

Basi di dati - Laboratorio

Basi di dati - Laboratorio Basi di dati - Laboratorio Corso di Laurea in Bioinformatica Docente: Barbara Oliboni Lezione 7 Contenuto della lezione Java DataBase Connectivity (JDBC) Principali classi JDBC Operazioni di base di JDBC

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

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

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

Laboratorio di Basi di Dati e Web. Docente: Alberto Belussi

Laboratorio di Basi di Dati e Web. Docente: Alberto Belussi Laboratorio di Basi di Dati e Web Docente: Alberto Belussi Lezione 7 JDBC: breve riepilogo (1) L interfaccia JDBC è contenuta nei package java.sql e javax.sql. Le classi più utilizzate sono: Connection:

Dettagli

Laboratorio di Basi di Dati. Docenti: Alberto Belussi Lezione 7

Laboratorio di Basi di Dati. Docenti: Alberto Belussi Lezione 7 Laboratorio di Basi di Dati Docenti: Alberto Belussi Lezione 7 JDBC: breve riepilogo (1) L interfaccia JDBC è contenuta nei package java.sql e javax.sql. Le classi più utilizzate sono: Connection: collegamento

Dettagli

Stateless Session Bean

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

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

MyShopDB = MyShop + MySQL

MyShopDB = MyShop + MySQL MyShopDB = MyShop + MySQL Adattiamo l applicazione MyShop in modo da poter utilizzare un database come fonte di dati, invece dei soliti file testuali. I nuovi sorgenti si trovano nel file MyShopDB.zip

Dettagli