Liberamente adattato da Java dai fondamenti alla programmazione avanzata JS2E versione 1.5 di Karsten Samaschke, Apogeo editrice
|
|
- Ilario Scotti
- 6 anni fa
- Visualizzazioni
Transcript
1 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, Delete). Queste sono infatti le funzioni più frequentemente richieste quando si lavora con tabelle di dati. Prepariamo quindi un database di prova, guestbook_db, e una tabella di prova, chiamiamola guestbook, la cui struttura è la seguente: Seguono alcuni dati di esempio: Ecco come si presenta l'interfaccia web per la gestione dei record della tabella guestbook. Pag. 1/26
2 Se vogliamo aggiungere un record usiamo il link Nuovo; inseriamo dei dati (solo due campi per semplicità, non c'è inoltre nessun tipo di controllo di validità dei dati) e premiamo sul pulsante Inserisci: Se tutto è andato a buon fine, appare un messaggio di conferma: Pag. 2/26
3 Clicchiamo su uno dei link Modifica in corrispondenza della voce che vogliamo modificare: Se tutto è Ok, appare un messaggio di conferma: Pag. 3/26
4 In maniera analoga, possiamo cancellare un record, cliccando sul link Cancella; per semplicità abbiamo omesso qualsiasi richiesta di conferma (ma che possiamo inserire mediante del codice javascript); questo significa che la cancellazione è permanente: Nello scrivere il codice di accesso al database, usiamo il cosiddetto approccio DAO, un design pattern che si rivela molto utile nella pratica corrente. Esso consiste nella: definizione delle classi che devono rappresentare i dati messa a disposizione di un'interfaccia che offre metodi per accedere ai dati implementazione dell'interfaccia nelle classi concrete messa a disposizione di una classe Factory (Factory è il nome di un altro design pattern di cui parleremo in un prossimo articolo), mediante la quale creare un'istanza della classe concreta per la selezione dei dati Questo approccio offre diversi vantaggi: nell'applicazione lavorate soltanto con l'interfaccia DAO: l'implementazione concreta rimane nascosta. Ciò significa una manutenzione più facile poiché la classe di accesso ai dati concreti può essere modificata senza che il codice applicativo debba essere rivisto gli eventuali accessi al database sono mediati da una classe centrale. Se il modello dei dati cambia (database, file di testo, file XML ecc), l'adattamento riguarderà soltanto questa classe; le chiamate ai metodi non richiederanno modifiche Il codice proposto fa uso di 4 classi di supporto e di 7 pagine jsp. Le classi di supporto sono: 1. GuestbookEntry, che rappresenta una voce nella tabella guestbook di esempio 2. GuestbookDAO, l' interfaccia che definisce i metodi per l'accesso al database 3. MySQLGuestbookDAO, una implementazione concreta di GuestbookDAO 4. GuestbookDAOFactory, la classe Factory per la creazione di istanze di GuestbookDAO Tutto ciò che occorre per connettersi al database è concentrato in una sola istruzione: GuestbookDAO gb = GuestbookDAOFactory.getInstance(); mentre i metodi per la manipolazione dei dati sono forniti dai metodi add, update, delete e Pag. 4/26
5 retrieve come evidenziato nel frammento di codice seguente: // inserimento; supponiamo l'id del record sia 192 GuestbookDAO gb = GuestbookDAOFactory.getInstance(); GuestbookEntry entry = new GuestbookEntry(); entry.setmessage("ciao ciao"); entry.setsender("maurizio"); gb.add(entry); out.println("record aggiunto "); //modifica gb = GuestbookDAOFactory.getInstance(); entry.setid(195); entry.setmessage("ancora tu"); entry.setsender("ancora tu"); gb.update(entry); out.println("record modificato "); //cancellazione gb = GuestbookDAOFactory.getInstance(); entry.setid(195); gb.delete(entry); out.println("record cancellato "); Nell'applicativo di cui presentiamo di seguito i codici sorgenti, facciamo in modo, nel momento in cui l'utente richiede una pagina, di stabilire una connessione col database, di effettuare le elaborazioni e di chiudere la connessione. Purtroppo questo approccio può andar bene fino a un certo punto perchè le operazioni di apertura e di mantenimento della connessione sono, da un punto di vista computazionale, particolarmente gravose e richiedono un certo tempo che, per siti con traffico molto sostenuto come possono essere i siti di e-commerce, può essere molto prezioso. Si potrebbe pensare di ricorrere a variabili di sessione per il mantenimento della connessione; tuttavia anche questo approccio non è quello giusto in quanto l'utente poi si ritrova a consultare magari per lungo tempo i dati forniti dal server per cui le risorse allocate per il mantenimento della sessione in questo caso sono inutili. Una soluzione di compromesso consiste nell'usare un pool di connessioni che come dice il termine consiste nel raggruppare e trattare come una singola unità un insieme di connessioni le quali vengono allocate e poi rilasciate via via come descritto meglio in seguito. La cosa interessante è che occorre fare solo qualche leggera modifica all'applicativo perchè tutto continui a funzionare egregiamente. L'unico vincolo è che l'application server supporti JNDI, un servizio ormai ampiamente diffuso in tutti i moderni application server e servlet container, come Tomcat o Application Server 9 della Sun. Ecco il codice (parzialmente commentato) delle classi: GuestbookEntry.java package mypackage; import java.util.date; Pag. 5/26
6 * Rappresenta una voce nel guestbook public class GuestbookEntry { private private private private int id = 0; String message = ""; String sender; Date created = new Date(); public int getid() { return id; public void setid(int id) { this.id = id; public String getmessage() { return message; public void setmessage(string message) { this.message = message; public String getsender() { return sender; public void setsender(string sender) { this.sender = sender; public Date getcreated() { return created; public void setcreated(date created) { this.created = created; // fine classe GuestbookEntry GuestbookDAO.java package mypackage; import java.sql.sqlexception; * Definisce i metodi per l'accesso * al database guestbook public interface GuestbookDAO { * Recupera un array di record Pag. 6/26
7 public GuestbookEntry[] retrieve() throws SQLException; * Aggiunge un record al guestbook public int add(guestbookentry entry) throws SQLException; * Aggiorna un record al guestbook public int update(guestbookentry entry) throws SQLException; * Cancella un record dal guestbook public int delete(guestbookentry entry) throws SQLException; * Recupera un record con l'id specificato public GuestbookEntry getentry(int id) throws SQLException; // fine interfaccia GuestbookDAO MySQLGuestbookDAO.java package mypackage; import java.sql.*; import java.util.arraylist; import java.util.properties; import java.io.fileinputstream; import java.io.file; import java.io.filenotfoundexception; import java.io.ioexception; import javax.naming.namingexception; * Implementazione reale di GuestbookDAO public class MySQLGuestbookDAO implements GuestbookDAO { private Connection conn; public MySQLGuestbookDAO() throws ClassNotFoundException, SQLException, NamingException { try { String classname = "com.mysql.jdbc.driver"; String connstr = "jdbc:mysql://localhost:3306/guestbook_db?user=root&password="; Class.forName(className); conn = DriverManager.getConnection(connStr); catch (ClassNotFoundException e) { throw new ClassNotFoundException("Driver non trovati"); catch (SQLException e) { throw new SQLException("Errore! Impossibile stabilire una connessione col db"); // fine costruttore Pag. 7/26
8 * Recupera un elenco di record dal guestbook public GuestbookEntry[] retrieve() throws SQLException { ArrayList<GuestbookEntry> list = new ArrayList<GuestbookEntry>(); if(conn!= null) { try { PreparedStatement stmt = conn.preparestatement( "SELECT id, message, sender, messagedate FROM guestbook ORDER BY id"); ResultSet rs = stmt.executequery(); while(rs.next()) { int id = rs.getint(1); String message = rs.getstring(2); String sender = rs.getstring(3); java.util.date d = (java.util.date)rs.getobject(4); /* if(sender == null sender.length() == 0) { sender = "mittente ignoto"; GuestbookEntry entry = new GuestbookEntry(); entry.setcreated(d); entry.setid(id); entry.setmessage(message); entry.setsender(sender); list.add(entry); conn.close(); catch (SQLException e) { throw new SQLException("Errore: "+e.getmessage()); return list.toarray(new GuestbookEntry[0]); // fine metodo retrieve * Aggiunge un record al guestbook public int add(guestbookentry entry) throws SQLException { int result = 0; if(conn!= null) { try { PreparedStatement stmt = conn.preparestatement( "INSERT INTO guestbook (message, sender, messagedate) " + "VALUES (?,?,?)"); Pag. 8/26
9 stmt.setstring(1, entry.getmessage()); stmt.setstring(2, entry.getsender()); stmt.setobject(3, entry.getcreated()); result = stmt.executeupdate(); conn.close(); catch (SQLException e) { throw new SQLException("Errore: "+e.getmessage()); return result; //fine metodo add * Aggiorna un record del guestbook public int update(guestbookentry entry) throws SQLException { int result = 0; if(conn!= null) { try { PreparedStatement stmt = conn.preparestatement( "UPDATE guestbook SET message =?, sender =?, messagedate =? " + "WHERE id =?"); stmt.setstring(1, entry.getmessage()); stmt.setstring(2, entry.getsender()); stmt.setobject(3, entry.getcreated()); stmt.setint(4, entry.getid()); result = stmt.executeupdate(); conn.close(); catch (SQLException e) { throw new SQLException("Errore: "+e.getmessage()); return result; // fine metodo update * Cancella un record dal guestbook public int delete(guestbookentry entry) throws SQLException { int result = 0; if(conn!= null) { try { PreparedStatement stmt = conn.preparestatement( "DELETE FROM guestbook WHERE id =?"); stmt.setint(1, entry.getid()); Pag. 9/26
10 result = stmt.executeupdate(); conn.close(); catch (SQLException e) { throw new SQLException("Errore: "+e.getmessage()); return result; // fine metodo delete * Ottiene un record dal guestbook con l'id specificato public GuestbookEntry getentry(int id) throws SQLException { GuestbookEntry entry = null; if(conn!= null) { try { PreparedStatement stmt = conn.preparestatement( "SELECT * FROM guestbook WHERE id=?"); stmt.setint(1, id); ResultSet rs = stmt.executequery(); if (rs.next()) { entry = new GuestbookEntry(); int i = rs.getint(1); String message = rs.getstring(2); String sender = rs.getstring(3); java.util.date d = (java.util.date)rs.getobject(4); entry.setcreated(d); entry.setid(i); entry.setmessage(message); entry.setsender(sender); // non chiudiamo subito la connessione // potrebbe tornarci utile return entry; catch (SQLException e) { throw new SQLException("Errore: "+e.getmessage()); // fine if return entry; / fine metodo getentry // fine classe MySQLGuestbookDAO GuestbookDAOFactory.java package mypackage; import java.sql.sqlexception; Pag. 10/26
11 import javax.naming.namingexception; * Factory per la creazione di istanze di GuestbookDAO public class GuestbookDAOFactory { public static GuestbookDAO getinstance() throws ClassNotFoundException, SQLException, NamingException { return new MySQLGuestbookDAO(); Segue il codice delle pagine web: guestbookadd.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@page import="mypackage.*" %> <%@page errorpage="errore.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>jsp Page</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <h3>aggiungi</h3> <form name="frminserisci" method="post" action="<%=request.getrequesturi()%>"> Sender: <input type="text" name="txtsender" value="" /><br/> Message: <textarea name="txtmessage" cols="35" rows="5"></textarea><br/> <input type="submit" value="inserisci" name="btninserisci" /> </form> <% if (request.getparameter("btninserisci")!=null) { int result = 0; String message=request.getparameter("txtmessage"); String sender=request.getparameter("txtsender"); GuestbookDAO gb = GuestbookDAOFactory.getInstance(); // se uso una variabile di sessione potrei recuperare la connessione al database // direttamente dalla sessione //GuestbookDAO gb = (GuestbookDAO) session.getattribute("gb"); if (gb!=null) { GuestbookEntry entry = new GuestbookEntry(); entry.setmessage(message); Pag. 11/26
12 entry.setsender(sender); result = gb.add(entry); if (result!= 0) response.sendredirect("guestbookretrieve.jsp?message=record registrato correttamente"); else response.sendredirect("guestbookretrieve.jsp?message=impossibile registrare il record"); %> </body> </html> guestbookdelete.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@page import="mypackage.*" %> <%@page errorpage="errore.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>jsp Page</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <h3>modifica</h3> <% if (request.getparameter("id")!=null) { int result = 0; int id = Integer.parseInt(request.getParameter("id")); GuestbookDAO gb = GuestbookDAOFactory.getInstance(); //GuestbookDAO gb = (GuestbookDAO) session.getattribute("gb"); if (gb!=null) { GuestbookEntry entry = gb.getentry(id); if (entry!= null) { out.println("cancellazione record id="+entry.getid()+"<br/>"); result = gb.delete(entry); if (result!= 0) Pag. 12/26
13 response.sendredirect("guestbookretrieve.jsp?message=record cancellato correttamente"); else response.sendredirect("guestbookretrieve.jsp?message=impossibile cancellare il record"); else response.sendredirect("guestbookretrieve.jsp?message=record non trovato"); else response.sendredirect("guestbookretrieve.jsp"); %> </body> </html> guestbookretrieve.jsp contenttype="text/html"%> pageencoding="utf-8"%> import="mypackage.*" %> errorpage="errore.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>jsp Page</title> <link rel="stylesheet" type="text/css" href="css.css"> </head> <body> <h3></h3> <% /* * codice valido nel caso di una sessione if (session.getattribute("gb")==null) { gb = GuestbookDAOFactory.getInstance(); session.setattribute("gb",gb); session.setmaxinactiveinterval(-1); else { gb = (GuestbookDAO) session.getattribute("gb"); GuestbookDAO gb = GuestbookDAOFactory.getInstance(); GuestbookEntry[] entries = gb.retrieve(); if (request.getparameter("message")!=null) { String message=request.getparameter("message"); out.println("<span class='red'>"+message+"</span>"); Pag. 13/26
14 out.println("<table>"); out.println("<tr>"); out.println("<td>"); out.println("id"); out.println("</td>"); out.println("<td>"); out.println("sender"); out.println("</td>"); out.println("<td>"); out.println("message"); out.println("</td>"); out.println("<td>"); out.println("date"); out.println("</td>"); out.println("<td>"); out.println("modifica"); out.println("</td>"); out.println("<td>"); out.println("cancella"); out.println("</td>"); out.println("</tr>"); for(guestbookentry entry : entries) { out.println("<tr>"); out.println("<td>"); int id=entry.getid(); //out.println(id); out.println(entry.getid()); out.println("</td>"); out.println("<td>"); out.println(entry.getsender()); out.println("</td>"); out.println("<td>"); out.println(entry.getmessage()); out.println("</td>"); out.println("<td>"); out.println(entry.getcreated()); out.println("</td>"); out.println("<td>"); out.println("<a href=guestbookentry.jsp?id="+id+">modifica</a>"); out.println("</td>"); out.println("<td>"); out.println("<a href=guestbookdelete.jsp?id="+id+">cancella</a>"); Pag. 14/26
15 out.println("</td>"); out.println("</tr>"); out.println("</table><br/>"); out.println("<a href=guestbookadd.jsp>nuovo</a>"); %> </body> </html> guestbookupdate.jsp contenttype="text/html"%> pageencoding="utf-8"%> import="mypackage.*" %> errorpage="errore.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>jsp Page</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <h3>aggiornamento</h3> <% if (request.getparameter("btnaggiorna")!=null) { int result = 0; String message = request.getparameter("txtmessage"); String sender = request.getparameter("txtsender"); int id = Integer.parseInt(request.getParameter("id")); GuestbookDAO gb = GuestbookDAOFactory.getInstance(); //GuestbookDAO gb = (GuestbookDAO) session.getattribute("gb"); if (gb!=null) { GuestbookEntry entry = new GuestbookEntry(); entry.setid(id); entry.setmessage(message); entry.setsender(sender); result = gb.update(entry); Pag. 15/26
16 if (result!= 0) response.sendredirect("guestbookretrieve.jsp?message=record aggiornato correttamente"); else response.sendredirect("guestbookretrieve.jsp?message=impossibile aggiornare il record"); else response.sendredirect("guestbookretrieve.jsp"); %> </body> </html> guestbookentry.jsp contenttype="text/html"%> pageencoding="utf-8"%> import="mypackage.*" %> errorpage="errore.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>jsp Page</title> <link href="css.css" rel="stylesheet" type="text/css" /> </head> <body> <h3>modifica</h3> <% if (request.getparameter("id")!=null) { int id=integer.parseint(request.getparameter("id")); GuestbookDAO gb = GuestbookDAOFactory.getInstance(); //GuestbookDAO gb = (GuestbookDAO) session.getattribute("gb"); if (gb!=null) { GuestbookEntry entry = gb.getentry(id); if (entry!= null) { out.println("modifica record id="+entry.getid()+"<br/>"); %> /><br/> <form name="frmaggiorna" method="post" action="guestbookupdate.jsp"> Sender: <input type="text" name="txtsender" value="<%=entry.getsender() %>" Message: <textarea name="txtmessage" cols="35" rows="5"><%=entry.getmessage() %></textarea><br/> <input type="hidden" name="id" value="<%=entry.getid() %>" /> <input type="submit" value="aggiorna" name="btnaggiorna" /> Pag. 16/26
17 </form> <% else response.sendredirect("guestbookretrieve.jsp?message=record non esistente"); else response.sendredirect("guestbookretrieve.jsp"); %> </body> </html> errore.jsp contenttype="text/html"%> pageencoding="utf-8"%> iserrorpage="true" %> import="java.io.printwriter" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <% PrintWriter writer=new PrintWriter(out); %> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>pagina di errore</title> <style type="text/css"> <!-body,td,th { font-family: Trebuchet MS; font-size: 10pt; --> </style> </head> <body> <h2>gestione degli errori</h2> <p>si è verificato il seguente errore: <%=exception.getmessage()%></p> </body> </html> Pool di connessioni Con un pool di connessioni, vengono ottimizzate le operazioni di apertura e mantenimento delle connessioni perchè, ad esempio, una connessione chiusa non viene definitivamente eliminata dalla memoria del sistema ma restituita al pool e nel momento in cui è necessaria una nuova connessione, essa viene recuperata direttamente dal pool senza doverne allocare una nuova. Per poter usare i pool di connessioni, è necessario innanzitutto utilizzare JNDI. Per prima cosa, logghiamoci nella console amministrativa del nostro application server (per noi Sun Application Server 9). Pag. 17/26
18 Username di default admin e password adminadmin Pag. 18/26
19 Cerchiamo Resources nell'albero di navigazione di sinistra, quindi scegliamo JDBC > Connection Pools e costruiamo il pool di connessioni MySQLGuestBookPool con i seguenti dati Pag. 19/26
20 Pag. 20/26
21 Pag. 21/26
22 Stabiliamo i parametri fondamnetali di accesso al database e lasciamo tutti gli altri impostati per default (come il numero massimo di connessioni, il tempo di attesa massimo ecc). Facciamo il ping per assicurarci che il pool funzioni correttamente. Pag. 22/26
23 Successivamente, costruiamo un data source JDBC, assegnandogli un nome (JNDI name: nel nostro caso jdbc/guestbook) e associandolo al pool di connessioni MSQLGuestBookPool. Pag. 23/26
24 Occorre poi modificare il deployment descriptor (il file web.xml) in modo tale che contenga un riferimento alla nostra risorsa appena creata (in Netbeans conviene farlo tramite interfaccia grafica). Pag. 24/26
25 Il contenuto del file web.xml è quindi il seguente: <?xml version="1.0" encoding="utf-8"?> <web-app version="2.4" xmlns=" xmlns:xsi=" xsi:schemalocation=" <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file> index.jsp </welcome-file> </welcome-file-list> <resource-ref> <res-ref-name>jdbc/guestbook</res-ref-name> <res-type>javax.sql.datasource</res-type> <res-auth>container</res-auth> <res-sharing-scope>shareable</res-sharing-scope> </resource-ref> </web-app> Pag. 25/26
26 L'ultimo passo è modificare il codice relativo alla creazione della connessione (riportiamo solo il frammento utile), senza modificare in alcun modo il codice già scritto [costruttore MySQLGuestbookDAO()]: try { javax.naming.initialcontext ctx = new javax.naming.initialcontext(); javax.sql.datasource ds = (javax.sql.datasource) ctx.lookup("java:comp/env/jdbc/guestbook"); conn = ds.getconnection(); catch (NamingException e) { throw new NamingException(e.getMessage()); catch(sqlexception e) { throw new SQLException("Errore! Impossibile stabilire una connessione col db"); // fine try-catch al posto di: try { String classname = "com.mysql.jdbc.driver"; String connstr = "jdbc:mysql://localhost:3306/guestbook_db?user=root&password="; Class.forName(className); conn = DriverManager.getConnection(connStr); catch (ClassNotFoundException e) { throw new ClassNotFoundException("Driver non trovati"); catch (SQLException e) { throw new SQLException("Errore! Impossibile stabilire una connessione col db"); // fine try-catch Pag. 26/26
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
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)
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)
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
DettagliCaricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement
JDBC Programmazione in Ambienti Distribuiti V 1.4 Marco Torchiano 2006 Uso di JDBC Caricamento della classe driver Class.forName() Apertura della connessione DriverManager.getConnection() Creazione di
DettagliLaboratorio 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
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 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
DettagliCapitolo 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
DettagliUtilizzando per la connessione al database un driver di Tipo 1:
Basi di Dati Esercitazione JDBC 25 maggio 2005 Paolo Cappellari Esercizi Considerando il seguente schema: Fornitori (CodiceFornitore, Nome, Indirizzo, Citta) Prodotti (CodiceProdotto, Tipo, Marca, Modello)
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
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
DettagliUn 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.
DettagliNon si deve fare ALCUN riferimento alla parte specifica di JDBC.
Un applicazione per la quale sia fondamentale l indipendenza dal Database può essere scritta in Java usando le specifiche. (Package java.sql) Non devono essere usate chiamate specifiche del database: Si
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:
DettagliCorso 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,
DettagliLaboratorio 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
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
DettagliBasi di Dati Esercitazione JDBC. Giugno 2007
Basi di Dati Esercitazione JDBC Giugno 2007 Esercizi Considerando il seguente schema: Fornitori (CodiceFornitore, Nome, Indirizzo, Citta) Prodotti (CodiceProdotto, Tipo, Marca, Modello) Catalogo (CodiceFornitore,
DettagliTecnologia e Applicazioni Internet 2011/12
Tecnologia e Applicazioni Internet 2011/12 Lezione 4 - Persistenza Matteo Vaccari http://matteo.vaccari.name/ matteo.vaccari@uninsubria.it Perché usare un DB relazionale? Per l accesso concorrente ai dati
DettagliVerso 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
DettagliAtzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, JDBC e applicazioni 31/05/2004
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 Approfondimenti dal capitolo 5: JDBC e applicazioni 31/05/2004 Un esempio: package catenanegozi (Piccola parte di) sistema informativo
DettagliStateless 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
DettagliSQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)
1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm Dott.ssa Francesca A. Lisi dott.ssa Francesca A.
DettagliVerso 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
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
DettagliJDBC versione base. Le classi/interfacce principali di JDBC
JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice
DettagliLe 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
DettagliEsercitazione su JDBC
Esercitazione su JDBC Basi di Dati L Ingegneria dei Processi Gestionali (Ilaria Bartolini - Roberto Cabras) come usare SQL (1) Le istruzioni SQL possono essere eseguite interattivamente Ese JDBC 2 come
DettagliJDBC di base. Le classi/interfacce principali di JDBC
JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di
DettagliJDBC. 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
DettagliCORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity
CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso
DettagliAppunti della lezione di Database del 3/11/2016 (pomeriggio)
Appunti della lezione di Database del 3/11/2016 (pomeriggio) Studenti: Andrea Cuna Giuseppe Levantaci [ continuazione dell esercizio della lezione precedente] Creiamo un file excel e incolliamo (incolla
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
DettagliConnessione con MySQL
Connessione con MySQL Architettura Server-Side Eventuali parametri cookie sessioni Elaborazione SELECT... DATABASE Quando i dati sono molti e la persistenza deve andare altre la sessione o la durata
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
DettagliLaboratorio di Sistemi Fondamenti di JDBC (parte1) Java. Fondamenti di JDBC
Fondamenti di JDBC Concetto di driver Il dialogo fra applicazione e DBMS non è mai gestito direttamente ma passa in genere per un opportuno modulo software chiamato driver che agisce da interfaccia fra
DettagliJDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC
JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali
DettagliCreare 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
DettagliLaboratorio di Progettazione Web
PHP e MySQL (2) Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR - c.renso@isti.cnr.it Nelle pagine web, quando le tabelle sono molto complesse, può risultare utile suddividere la visualizzazione
DettagliCapitolo 5. Soluzione: Soluzione in C:
Capitolo 5 Esercizio 5.1 Realizzare una procedura in un linguaggio di programmazione di alto livello che tramite SQL Embedded elimina dalla tabella DIPARTIMENTO l'elemento che ha il nome che viene fornito
DettagliCORSO 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,
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Connessione al DB con PHP Anno accademico 2016-2017 Paolo Perlasca Parte di questi lucidi è tratta da una versione precedente di Marco Mesiti, Stefano Valtolina, Daniele Riboni
DettagliObiettivo della lezione
Obiettivo della lezione Lezione 17 Enterprise JavaBeans (5) Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Comprendere quanto
DettagliPRIMO 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
DettagliDBMS ed Applicazioni Motivazioni
DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla
DettagliAccesso 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 -
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
DettagliOgni ufficio è formato da 100 dipendenti, i quali hanno a loro volta 3 clienti ciascuno. Inoltre, ad ogni ufficio sono stati assegnati 4 fornitori.
Tecnologia delle Basi Dati Analisi del dbms Postgresql. Luigi Cestoni Prima Parte Descrizione del Database Abbiamo realizzato un database costituito da quattro tabelle: 1. dipendente( id,nome,cognome,eta,telefono,idufficio)
DettagliEsempio di architettura software
Esempio di architettura software Corso di Principi di Progettazione del Software, a.a. 2012/13 29 novembre 2016 Ing. Roberto Vergallo 1 Esempio di architettura software View (GUI) Action Listener Business
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
DettagliSpiegazioni esercizio Gestione Tabella con PHP e MySQL
Spiegazioni esercizio Gestione Tabella con PHP e MySQL foglio_di_stile.css (foglio di stile esterno) Questo file contiene: 1. la struttura generale delle quattro pagine web dinamiche: index.php, inserisci.php,
DettagliLaboratorio 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
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
Dettagliesempio hello world Dott. Doria Mauro
Hibernate esempio hello world Dott. Doria Mauro doriamauro@gmail.com Presentiamo un primo esempio che consente di gestire un messaggio di testo. Lo scopo è quello di storare il messaggio hello world sul
DettagliDomande utili alla preparazione dell orale di Informatica all Esame di Stato
Domande utili alla preparazione dell orale di Informatica all Esame di Stato 1.Al livello fisico un database si appoggia ai files per contenere i suoi dati? 2.Esistono altri modelli di organizzazione oltre
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 Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2016/2017
Laboratorio Progettazione Web PHP e MySQL Andrea Marchetti IIT-CNR 2016/2017 Architettura di una applicazione Web Browser Web HTTP Server Web Dati Presentation Application Storage PHP e DataBase Quando
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
Dettagli3.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................
DettagliJDBC. A. Bechini 2004. Accesso a DataD con Java
JDBC Accesso a DataD atabase ase con Java Utilizzo di DB da applicazioni esterne Un DB contiene e gestisce dati, importanti per varie operazioni supportate da applicazioni software Come può un applicazione
DettagliAlberi 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
DettagliD B M G Il linguaggio HTML
Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form @2011 Politecnico di Torino 1 Concetti
DettagliStruttura del compito d esame ed esempio
Struttura del compito d esame ed esempio 1 Struttura del compito Il compito d esame è tipicamente composto da 2 esercizi Esercizio sulla programmazione client-side (Javascript e Ajax) Esercizio sulla programmazione
DettagliProgrammazione 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
DettagliProgrammazione Java Avanzata
Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]
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
DettagliLaboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2014/2015
Laboratorio Progettazione Web PHP e MySQL Andrea Marchetti IIT-CNR 2014/2015 Architettura di una applicazione Web Browser Web HTTP Server Web Dati Presentation Application Storage PHP e DataBase Quando
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).
DettagliSTRUTTURE DATI: OLTRE GLI ARRAY LISTE
STRUTTURE DATI: OLTRE GLI ARRAY le strutture dati progettate per ospitare una collezione di elementi, sono variazioni di array Ma l'array ha dimensione fissa anche in Java determinata a priori, in linguaggi
DettagliLaboratorio di reti II: Gestione di database lato server
Laboratorio di reti II: Gestione di database lato server Stefano Brocchi brocchi@dsi.unifi.it 23 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Database 23 marzo, 2009 1 / 32 Uso di database lato
DettagliIl pattern FACTORY è un pattern di tipo Creazionale secondo la classificazione della GoF I pattern di tipo creazionali si occupano della costruzione
Il pattern Factory Il pattern FACTORY è un pattern di tipo Creazionale secondo la classificazione della GoF I pattern di tipo creazionali si occupano della costruzione degli oggetti e delle problematiche
DettagliPROVA FINALE Ingegneria del software
PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 4 Cos è JDBC 2 JDBC significa Java Database Connectivity Standard definito da Sun MicroSystems per connettere programmi
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
DettagliJDBC. Dispense per il corso di Ingegneria del Web
JDBC Dispense per il corso di Ingegneria del Web Revisione 05/11 Giuseppe Della Penna (giuseppe.dellapenna@di.univaq.it) Dipartimento di Informatica Università degli studi dell'aquila Java Database Connectivity:
DettagliEccezioni Precisazioni e approfondimenti
Eccezioni Precisazioni e approfondimenti Costruttore: il parametro String definisce il messaggio di errore associato all eccezione Metodi particolarmente significativi getmessage(): ritorna l istanza di
Dettagli@2011 Politecnico di Torino 1
Concetti di base Programmazione Web Il linguaggio HTML HTML consente di annotare un testo per contrassegnare le parti che lo compongono Le annotazioni sono realizzate tramite i "tag" Visualizzare documenti
DettagliJDBC per l accesso Java a DB. Tito Flagella tito@link.it
JDBC per l accesso Java a DB Tito Flagella tito@link.it JDBC fornisce una libreria standard per l accesso a database relazionali Non è un acronimo ufficiale ma è comunemente interpretato come Java DataBase
Dettagli1. (6 punti) Spiegare il significato, in modo dettagliato, del pezzo di codice seguente di una servlet:
Università degli Studi di Camerino Corso di Laurea in Informatica A.A. 2015/2016 Prova Scritta di Programmazione Web, 21 Febbraio 2017 VIII Appello Docenti: Francesco Tiezzi e Luca Tesei Nome e Cognome:
DettagliJava: la libreria delle classi
Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare
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
DettagliImplementazione Java di un ADT
Implementazione Java di un ADT Primo passo definire l'interfaccia (API) dell' ADT (l'api descrive i nomi dei metodi che l'adt supporta e come essi sono dichiarati e usati) Secondo passo scrivere il codice
DettagliGestione delle eccezioni in Java
Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire
Dettaglirevisione dicembre 2010
Servizio Prevenzione e Protezione GUIDA ALL INSERIMENTO ONLINE DEGLI ADDETTI E DEI PREPOSTI revisione dicembre 2010 note Accesso all applicativo Cliccare sulla voce Applicativo della sezione Sicurezza
DettagliLE PRIME ACTIVE SERVICE PAGE: oggetto REQUEST
LE PRIME ACTIVE SERVICE PAGE: oggetto REQUEST L'oggetto Request può essere considerato come l'esatto contrario dell'oggetto Response, infatti mentre quest'ultimo invia dati al browser, Request serve a
DettagliIntroduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO
8- Programmazione di una base di dati attraverso JDBC Introduzione ai differenti approcci - JDBC: Architettura e Programmazione Introduzione Nella pratica gli utenti finali accedono al contenuto di una
DettagliLaboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali
Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali Docente: Carlo Drioli 31 marzo 2015 Esempio I prova infracorso Esercizio 1 Si consideri un applicazione per la gestione di menu
DettagliUniversità di Bergamo Facoltà di Ingegneria. Applicazioni Internet B. Paolo Salvaneschi B6_4 V1.7. JSP parte D
Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B6_4 V1.7 JSP parte D Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito
DettagliPer poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione
MYSQL E PHP Per poter interagire con un database in rete mediante uno script php bisogna innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione MySQL_connect(nome del host, nome utente,
DettagliLaboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014
Laboratorio Progettazione Web PHP e MySQL Andrea Marchetti IIT-CNR 2013/2014 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation Application Storage PHP e DataBase Quando
DettagliInitiative. Ethernet-MPI convertitore e 6180XIO
OEM Initiative Ethernet-MPI convertitore e 6180XIO MM/MR Ver. 0 22/02/2008 Introduzione La richiesta è di poter collegare un registratore videografico in Ethernet con un PLC Siemens dotato di porta MPI.
DettagliImplementazione ADT: Alberi
Implementazione ADT: Alberi Livelli di astrazione 2001/2002 1 Esercitazione 5 (E6): alberi (tree) albero struttura dati fondamentale, soprattutto per le operazioni di ricerca tipi di albero con radice
DettagliStrutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05
Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica
DettagliEsempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
DettagliLaboratorio 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
DettagliGESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
DettagliLe JavaServer Pages - Lezione 6 L accesso ai Database
Le JavaServer Pages - Lezione 6 L accesso ai Database A cura di Giuseppe De Pietro (depietro_giuseppe@yahoo.it) Contenuti Al giorno d oggi la maggior parte degli applicativi Web, anche semplici, hanno
Dettagli