Laboratorio di sistemi MVC versione 2 Jsp (NetBeans)
|
|
- Fabiano Pozzi
- 8 anni fa
- Visualizzazioni
Transcript
1 Definizione Adattato da " 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. MVC2.pdf Pag. 1/15 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. MVC2.pdf Pag. 2/15 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. MVC2.pdf Pag. 3/15 Cozzetto
4 Proviamo a riscrivere l'applicativo GestioneBibliotecaWebApp2 (si veda il mio articolo nella sezione Java, Web Application, file crud_mysql.pdf; si scriva crud come parola chiave nella casella di ricerca). Per semplicità non inseriamo le classi Autore, Editore, Libro e DAO, mentre invece riportiamo il codice della classe Controller (la servlet che provvede a controllare il flusso di esecuzione) e il codice delle pagine jsp utilizzate. Per ulteriori dettagli, si scarichi il progetto allegato al corrente pdf (GestioneBibliotecaWebApp5.zip). Osserviamo, intanto, attraverso delle schermate, il comportamento dell'applicativo. Fig. 1 La prima schermata dell'applicativo Fig. 2 Tabella libri_tbl (database MySQL biblio_db) con i link per inserire, aggiornare e cancellare record MVC2.pdf Pag. 4/15 Cozzetto
5 Fig. 3 Inserimento di un libro Fig. 4 L'inserimento è riuscito MVC2.pdf Pag. 5/15 Cozzetto
6 Fig. 5 Aggiornamento del record Fig. 6 Aggiornamento riuscito MVC2.pdf Pag. 6/15 Cozzetto
7 Fig. 7 Cancellazione del record con titolo prova File Action.java /** * Action.java */ package it.mauriziocozzetto.classipkg; /** maurizio */ public enum Action { UPDATE, CONFIRM_UPDATE, DELETE, INSERT, CONFIRM_INSERT, VIEW; Codice della servlet (Controller.java) package it.mauriziocozzetto.classipkg; import java.io.ioexception; //import java.io.printwriter; import java.sql.sqlexception; import java.util.logging.level; import java.util.logging.logger; import javax.servlet.requestdispatcher; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; MVC2.pdf Pag. 7/15 Cozzetto
8 /** * maurizio */ public class Controller extends HttpServlet { // <editor-fold defaultstate="collapsed" desc="httpservlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>get</code> method. request servlet request response servlet response ServletException if a servlet-specific error occurs IOException if an I/O error occurs */ /** * Processes requests for both HTTP <code>get</code> and <code>post</code> methods. request servlet request response servlet response ServletException if a servlet-specific error occurs IOException if an I/O error occurs */ protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException { //response.setcontenttype("text/html;charset=utf-8"); //PrintWriter out = response.getwriter(); // l'oggetto out qua non si dovrebbe proprio usare // lo tengo per questioni di debugging // istanzio un oggetto DAO DAO dao = new DAO(); // apro la connessione col db dao.openconn(); // leggo l'azione // i valori previsti sono (inseriti in una struttura enum) // INSERT, UPDATE, DELETE, CONFIRM_UPDATE, CONFIRM_INSERT, VIEW String action = request.getparameter("action"); String isbn = null; Libro l = null; String titolo = null; int result = 0; switch(action.valueof(action)) { // se devo aggiornare case UPDATE: // leggo l'isbn isbn = request.getparameter("isbn"); // imposto l'attributo listalibri // trovo il libro con l'isbn specificato l = dao.trovalibro(isbn); MVC2.pdf Pag. 8/15 Cozzetto
9 // se non trovo il libro if (l==null) { String message="il libro con codice isbn "+isbn+" non esiste"; else { // imposto i due attributi request.setattribute("isbn", l.getisbn()); request.setattribute("titolo", l.gettitolo()); // vado alla pagina specificata gotopage("/modificalibro.jsp",request,response); // fine if l==null break; // se devo inserire case INSERT: gotopage("/inseriscilibro.jsp",request, response); break; // se confermo l'aggiornamento case CONFIRM_UPDATE: // leggo i 3 parametri del form di aggiornamento isbn = request.getparameter("isbntxt"); titolo = request.getparameter("titolotxt"); String isbnhdn = request.getparameter("isbnhdn"); // creo un libro con isbn, titolo // NB la routine di modifica nella classe DAO è stata semplificata l = new Libro(isbn, titolo); // modifico il libro l (il vecchio isbn è stato conservato in isbnhdn) result = dao.modificalibro(l,isbnhdn); // se la modifica ha avuto successo result > 0 if (result>0) { String message="modificato record, nuovo isbn "+isbn; else { String message="impossibile modificare record con isbn = "+isbnhdn; // fine if result >0 break; // se devo cancellare case DELETE: // leggo l'isbn isbn = request.getparameter("isbn"); // trovo il libro con l'isbn specificato l = dao.trovalibro(isbn); // se non esiste il libro con quell'isbn if (l==null) { String message="il libro con codice isbn "+isbn+" non esiste"; // se invece lo trovo lo cancello else { result = dao.cancellalibro(l); MVC2.pdf Pag. 9/15 Cozzetto
10 "+isbn; if (result>0) { // ricarico la lista dei libri // in questo modo non viene considerato il libro appena eliminato String message="cancellazione effettuata correttamente record con isbn = else { String message="impossibile cancellare il record"; // fine if result>0 // fine if l==null break; // se devo confermare l'inserimento case CONFIRM_INSERT: // lettura di isbn, titolo isbn = request.getparameter("isbntxt"); titolo = request.getparameter("titolotxt"); // noto l'isbn, trovo il libro l l = dao.trovalibro(isbn); // se non esiste il libro con chiave isbn posso inserirlo nel db if (l==null) { // creo il libro l = new Libro(isbn, titolo); // lo inserisco nel db result = dao.salvalibro(l); // se l'inserimento riesce result>0 if (result>0) { String message="inserimento effettuato record con isbn="+isbn; else { String message="impossibile registrare il record con isbn="+isbn; // fine if result>0 else { String message="record con isbn="+isbn+" gia' esistente"; // fine if==null break; // se devo visualizzare i dati della tabella libri case VIEW: // imposto l'attributo listalibri gotopage("/view.jsp",request, response); break; default: // nulla da fare break; // fine switch // chiusura dell'oggetto dao dao.closeconn(); // fine metodo processrequest MVC2.pdf Pag. 10/15 Cozzetto
11 @Override protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { try { processrequest(request, response); catch (ClassNotFoundException ex) { Logger.getLogger(Controller.class.getName()).log(Level.SEVERE, null, ex); catch (SQLException ex) { Logger.getLogger(Controller.class.getName()).log(Level.SEVERE, null, ex); /** * Handles the HTTP <code>post</code> method. request servlet request response servlet response ServletException if a servlet-specific error occurs IOException if an I/O error occurs protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { try { processrequest(request, response); catch (ClassNotFoundException ex) { Logger.getLogger(Controller.class.getName()).log(Level.SEVERE, null, ex); catch (SQLException ex) { Logger.getLogger(Controller.class.getName()).log(Level.SEVERE, null, ex); /** * Returns a short description of the servlet. a String containing servlet description public String getservletinfo() { return "Questa servlet fa da Controller nel paradigma MVC"; // </editor-fold> // serve per spostarsi sulla pagina specificata public void gotopage(string pagename, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { RequestDispatcher d = getservletcontext().getrequestdispatcher(pagename); d.forward(request, response); // fine servlet Controller MVC2.pdf Pag. 11/15 Cozzetto
12 File index.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>database biblio_db</title> <style type="text/css"> body,td,th { font-family: Verdana; font-size: 16px; </style> </head> <body> <h3>tabella Libri</h3> <p><a href='controller?action=view'>lista libri</a></p> </body> </html> File view.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@page errorpage = "gestioneerrori.jsp" %> <%@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>database biblio_db</title> <style type="text/css"> body,td,th { font-family: Verdana; font-size: 16px;.testoRosso { color: red; </style> </head> <body> <h3>tabella Libri</h3> MVC2.pdf Pag. 12/15 Cozzetto
13 <c:if test="${!empty param.message"> <span class="rosso"><c:out value="${param.message" /></span> <br/> </c:if> <p><a href="controller?action=insert">inserisci</a></p> <table border="1"> <tr> <th>isbn</th> <th>titolo</th> <th>modifica</th> <th>cancella</th> </tr> <c:foreach items="${listalibri" var="libro"> <tr> <td>${libro.isbn</td> <td>${libro.titolo</td> <td><a href="controller?action=update&isbn=${libro.isbn">modifica</a></td> <td><a href="controller?action=delete&isbn=${libro.isbn">cancella</a></td> </tr> </c:foreach> </table> </body> </html> File inseriscilibro.jsp contenttype="text/html"%> pageencoding="utf-8"%> errorpage = "gestioneerrori.jsp"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html"> <title>inserimento</title> <style type="text/css"> body,td,th { font-family: Verdana; font-size: 16px; border: 0px;.testoRosso { color: red; </style> </head> <body> <h3>inserimento</h3> MVC2.pdf Pag. 13/15 Cozzetto
14 <form id="provafrm" method="get" action="controller" > <input type="hidden" name="action" value="confirm_insert"/> Isbn <input type="text" name="isbntxt" value="" size="30"/> <span class="testorosso">*</span><br/> Titolo <input type="text" name="titolotxt" value="" size="30" /> <span class="testorosso">*</span> <br/> <input type="submit" name="inviabtn" value="invia"/><br/> <p><span class="testorosso">* Dati obbligatori</span></p> </form> </body> </html> File modificalibro.jsp contenttype="text/html"%> pageencoding="utf-8"%> errorpage = "gestioneerrori.jsp" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>modifica</title> <style type="text/css"> body,td,th { font-family: Verdana; font-size: 16px; border: 0px;.testoRosso { color: red; </style> </head> <body> <h3>modifica</h3> <form id="provafrm" method="get" action="controller" > <input type="hidden" name="action" value="confirm_update"/> Isbn <input type="text" name="isbntxt" value="${isbn" size="30" /> <span class="testorosso">*</span><br/> Titolo <input type="text" name="titolotxt" value="${titolo" size="30" /> <span class="testorosso">*</span><br/> <input type="hidden" name="isbnhdn" value="${isbn"/> <input type="submit" name="inviabtn" value="invia"/><br/> <p> <span class="testorosso">* Dati obbligatori</span></p> </form> </body> </html> MVC2.pdf Pag. 14/15 Cozzetto
15 File gestioneerrori.jsp contenttype="text/html"%> pageencoding="utf-8"%> iserrorpage = "true" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>gestione errori</title> <style type="text/css"> body,td,th { font-family: Trebuchet MS; font-size: 16px; </style> </head> <body> <h3>gestione errori</h3> Siamo spiacenti, si è verificato un errore durante l'esecuzione:<br/> <%= exception.getmessage()%> </body> </html> MVC2.pdf Pag. 15/15 Cozzetto
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...................................................
DettagliTrasformare 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
DettagliLaboratorio 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
DettagliLaboratorio di sistemi MVC Jsp [NetBeans]
Estratto da "http://it.wikipedia.org/wiki/model-view-controller" Definizione Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllore) è il nome di un design pattern fondamentale
DettagliLaboratorio 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
DettagliLaboratorio 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
Dettagli1 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
DettagliProgetto 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
DettagliBasi 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
DettagliLaboratorio di sistemi Web Application in Php5 Php
Applicazioni web con Xampp, Php5 e NetBeans 6.5 (Windows) Vogliamo ora riscrivere a titolo di prova un'applicazione web precedentemente scritta in Java (si legga l'articolo all'indirizzo http://www.mauriziocozzetto.net/pdf/dao_mysql.pdf).
DettagliArchitettura 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
DettagliLaboratorio 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
DettagliLaboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE
Programmare in Php con Xampp e NetBeans IDE NetBeans è un IDE ben noto ai programmatori Java. Con esso si possono infatti costruire applicazioni desktop professionali dotate di interfaccia grafica, applicazioni
DettagliImplementazione di MVC. Gabriele Pellegrinetti
Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il
DettagliArchitetture 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
DettagliSiti 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
DettagliLaboratorio 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
DettagliArchitettura 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
DettagliProgrammazione 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
DettagliTomcat & 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
DettagliSERVLET & 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
DettagliGestire 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
DettagliL 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,
DettagliFlavio De Paoli depaoli@disco.unimib.it
Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato
DettagliLaboratorio 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
DettagliTecnologie 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<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>jsp Page</title> </head> <body>
itext è una libreria (ottimizzata per l uso in java) per generare pdf al volo ideata da Bruno Lowagie e Paolo Soares. Per poter sviluppare un applicazione con NetBeans, dobbiamo intanto scaricare il file
DettagliEsercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012
Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici
DettagliLaboratorio 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
DettagliTener 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.
DettagliLaboratorio 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
DettagliLet's start! File > New Project > Ruby > Ruby on Rails Application (events)
La nuova versione di Netbeans 6 consente di lavorare con Ruby On Rails, un potente e nuovissimo framework per lo sviluppo e la prototipazione di applicazioni web, che fa uso del design-pattern MVC (Model-View-Controller,
DettagliIntroduzione 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
DettagliLaboratorio 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)
DettagliCORSO 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
DettagliLaboratorio 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
DettagliJava Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet
Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML
DettagliMODEL-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
DettagliNote 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
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliEsempio di esecuzione di una pagina JSP: Il client chiede la pagina: http:// sdfonline.unimc.it/info/modulo.jsp;
JAVA SERVER PAGES Una pagina JSP (Java Server Pages), richiesta da un utente (client), viene eseguita dal server web nella propria memoria; generalmente il prodotto dell elaborazione è una pagina html
DettagliApplicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi
Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java
DettagliSvantaggi 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
DettagliSoluzione 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
DettagliGenLApp Generazione Lista di Applicazioni. Design Patterns. Classi Essenziali. Modellazione Dati. Progettazione della Linea di Prodotti
Progettazione della Linea di Prodotti GenLApp Generazione Lista di Applicazioni Progettazione della Linea di Prodotti Classi Essenziali Responsabilità sui 3 Livelli Architetturali Descrizione delle Responsabilità
DettagliI 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
DettagliPROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo
PROGETTAZIONE E SVILUPPO DI UN SIMULATORE ECONOMICO FISCALE Relatore: Studente: Paolo Merialdo Valerio Barbagallo Sommario il problema: gestione e ottimizzazione del bilancio piattaforma J2EE e framework
DettagliIntroduzione. 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.
DettagliJ2EE (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:
DettagliLaboratorio 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
Dettagli19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
Dettagli- La formattazione con foglio di stile esterno: Come realizzare e collegare un file con codice di stile ad una pagina web.
I fogli di stile. Argomenti trattati: - La formattazione con foglio di stile interno: Come dichiarare lo stile di una pagina web all'interno del suo codice. - Ereditarietà e selettori contestuali: Come
DettagliLezione 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
DettagliUna metodologia di progettazione di applicazioni web centrate sui dati
Una metodologia di progettazione di applicazioni web centrate sui dati 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 1 / 2 0 1 2 Progettazione logica di un sito web centrato sui dati Si
DettagliSWIM v2 Design Document
PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback
DettagliLaboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014
Laboratorio Progettazione Web PHP e FORMs HTML Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Struttura Applicazioni Web Browser Web HTTP Server Web API Dati Presentation Application Storage
Dettagli1 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
DettagliLaboratorio 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)
DettagliEsercizi di JavaScript
Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio
DettagliScaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»
Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti
DettagliSiti interattivi e dinamici. in poche pagine
Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata
DettagliIntroduzione JDBC interfaccia java.sql driver caricare i driver
J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene
DettagliIl Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework.
tesi di laurea Il Pattern MVC nei Framework di sviluppo per applicazioni Web. Analisi e comparazione di SPRING MVC Framework e ASP.NET MVC Framework. Anno Accademico 2008/2009 relatore Ch.mo prof. Porfirio
DettagliL ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo
Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,
DettagliLezione III: Oggetti ASP e interazione tramite form HTML
Lezione III: Oggetti ASP e interazione tramite form HTML La terza lezione, come le precedenti, ha avuto una durata di due ore, di cui una in aula e l altra in laboratorio, si è tenuta alla presenza della
DettagliMOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY
MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY 1 Sommario 1. INTRODUZIONE... 3 2. GET METAIO... 4 2.1. PREREQUISITI... 4 2.2. INTALLAZIONE... 4 2.3. PROGETTI ESEMPLIFICATIVI... 4 3. USARE
DettagliAlma 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:
DettagliAlma 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:
DettagliOggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA
Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata
DettagliBreve introduzione curata da Alessandro Benedetti. Struts2-Introduzione e breve guida
Breve introduzione curata da Alessandro Benedetti Struts2-Introduzione e breve guida 22-11- 2008 1 Struts 2 Costruisci,attiva e mantieni! Apache Struts 2 è un framework elegante ed estensibile per creare
DettagliProgetto: Servizio location based per la ricerca di punti di interesse
Mauro Gentile Matr. 701870 Progetto: Servizio location based per la ricerca di punti di interesse Il progetto consiste nello sviluppo di un servizio che fornisce informazioni relative a punti di interesse
DettagliArchitetture Software
Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo
DettagliMarco Faella Il paradigma Model-View-Controller. Il pattern Strategy.
Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. 10 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com
DettagliAlma 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:
DettagliPROGRAMMA CORSO Analista Programmatore JAVA - ORACLE
PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori
DettagliProgetto di Basi di Dati e Multimidia Laboratorio Struttura dell applicazione web
Progetto di Basi di Dati e Multimidia Labtorio Struttura dell applicazione web 1 Introduzione La progettazione è stata sviluppata basandosi sul modello MVC-2 Server Centric. I moduli creati si possono
DettagliServlet 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
DettagliComponenti Web: client-side e server-side
Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente
DettagliTest di unità con JUnit4
Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso
DettagliLaboratorio 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
DettagliLaboratorio 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
DettagliPHP: Professional Hypertext Preprocessor
PHP: Professional Hypertext Preprocessor Corso di Base Lezione 4 Dal Form al PHP Docente Prof. Antonio Curci 1 Capitolo 4 Dal Form al PHP Una prima forma di interattività sul web è costituita dall uso
DettagliBDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D
BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare
DettagliChat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.
Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto
DettagliAjax è il nome nuovo introdotto dal web 2.0, ma non si tratta di un nuovo linguaggio di. Javascript and XML
Ajax Ajax è il nome nuovo introdotto dal web 2.0, ma non si tratta di un nuovo linguaggio di programmazione, piuttosto di una tecnica: Asynchronous Javascript and XML Ajax Il Javascript è una vecchia conoscenza
DettagliPHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN
PHP E MYSQL CREAZIONE DI UN NUOVO DATABASE DAL PHPMYADMIN Il metodo migliore per creare nuovi DB è quello di usare l interfaccia del PHPMYADMIN (che viene installata automaticamente con il pacchetto easy
DettagliRealizzare il layout di un sito web senza utilizzare frame e tabelle
Realizzare il layout di un sito web senza utilizzare frame e tabelle Questa guida descrive in maniera semplice e essenziale i passi necessari alla realizzazione di una pagina web strutturata in maniera
DettagliCorso di Informatica Modulo T3 B2 - Database in rete
Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual
DettagliServlet 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
DettagliTest in automatico di programmi Android
tesi di laurea Test in automatico di programmi Android Anno Accademico 2012/2013 relatore Ch.mo prof. Porfirio Tramontana candidato Andrea Macera Matr. 534002556 Scopo della tesi Creare una web application
DettagliCapitolo 4 Pianificazione e Sviluppo di Web Part
Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,
DettagliPHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas
PHP A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas Copyright Istituto Italiano Edizioni Atlas Programmazione lato server PHP è un linguaggio che estende le funzionalità
DettagliLe 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,
DettagliAl giorno d oggi, i sistemi per la gestione di database
Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,
DettagliRealizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
DettagliLe 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
DettagliLe L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1
Lezione di Visual Basic Prof.ssa Paola Goi 1 VISUAL BASIC E un ambiente di programmazione che permette una programmazione: VISUALE AD EVENTI Per creare programmi applicativi nel sistema operativo Windows.
DettagliLinguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java
DettagliSequenza alternativa degli eventi: Variazione di prezzo superiore al 20% per almeno un articolo.
Corso di Ingegneria del software - Seconda prova di verifica in itinere, 17 dicembre 2008 C, Montangero, L. Semini Dipartimento di Informatica, Università di Pisa a.a. 2008/09 La prova si svolge a libri
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Dettagli