Java Server Pages & Programmazione Server-Side

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Java Server Pages & Programmazione Server-Side"

Transcript

1 Java Server Pages & Programmazione Server-Side

2 Programmazione Server Side Un applicazione è in esecuzione su una macchina remota piuttosto che esecuzione locale. L applicazione può ricevere le connessioni da parte dei client (Browser Web). L applicazione elabora le richieste (HTTP) ed invia delle risposte ai client (HTML). Il servizio è offerto da Application Server (e.g: Tomcat).

3 Java Server Pages E uno strumento derivato da Java, che utilizzeremo come linguaggio autonomo. E la risposta di Sun alla tecnologia ASP di Microsoft. Una pagina JSP può essere scritta tramite un semplice editor di testo, o con strumenti più complessi (e.g: Eclipse). Tomcat si occupa di tutto il lavoro necessario all utilizzo della pagina (compilazione). E impossibile parlare di JSP senza conoscere un poco Java.

4 Java Linguaggio strettamente ad oggetti. Linguaggio fortemente tipizzato. Ogni oggetto Java può avere campi (variabili) e metodi (funzioni). Si usa la notazione nomeoggetto.nomemetodo() Lo standard utilizza la notazione camelcase.

5 Java Campi Oggetti Metodi Classi Costanti nome, nomecampo, nomedelcampo nome, nomeoggetto.nomemetodo(parametro1, parametro2 ),.nomemetodo(), nome() NomeClasse NOME, NOME_COSTANTE

6 Java (Sintassi) Dichiarazione di variabili (tipi primitivi) int a; int a = 5; boolean acceso = false;

7 Java (Sintassi) Dichiarazione di variabili (puntatori a oggetti) TipoOggetto obj; // puntatore ad oggetto TipoOggetto obj = new TipoOggetto(...); TipoOggetto2 obj2 = new TipoOggetto2(...); char c = obj.metodo(...); // metodo ritorna un char int a = obj2.campo; // campo è di tipo int

8 Gli array Java (Sintassi) I vettori sono di tipi di dato omogeneo: int a[]; // a è un puntatore ad array di interi int b[] = new int[10]; // b punta ad un array esistente TipoOggetto c = new TipoOggetto[5]; // c punta ad un array di 5 puntatori ad oggetti

9 Java (Sintassi) int a[]; a[0] = 5; // ERRORE! int b[] = new int[10]; b[0] = 2; // OK TipoOggetto c[] = new TipoOggetto[5]; c[0].metodo(...); // ERRORE! c[0] = new TipoOggetto(...); // OK c[0].metodo(...); // OK

10 Java (Sintassi) Gli array devono essere composti da un solo tipo di elementi. Sono possibili array di array (di lunghezza diversa): int a[][]; a = new int[10][]; a[0] = new int[7]; a[1] = new int[12]; La lunghezza si ottiene con lengh.

11 Java (Sintassi) a.length 10 a[0].length 7 a[1].length 12 a[2].length ERRORE!

12 Java (Sintassi) Uso e significato di null. Quando un puntatore non è stato inizializzato, esso è equivalente ad uno speciale tipo primitivo chiamato null. L'uso di null è necessario per: Eseguire test di confronto. Distruggere oggetti. Inizializzare esplicitamente i puntatori.

13 Uso e significato di null. int a[];... if (a==null) { } a = new int[10]; Java (Sintassi) a[0] = 5; // non incorriamo in errori qui

14 Uso e significato di null. Java (Sintassi) TipoOggetto a = new TipoOggetto();... a = null; Il puntatore a ora non referenzia più l'oggetto di classe TipoOggetto. La memoria viene automaticamente liberata dall'ambiente Java (nessun bisogno di operazione di free come in C) a meno che altri puntatori non referenzino lo stesso oggetto (Garbage Collector).

15 Java (Sintassi) Uso e significato di null. TipoOggetto a = new TipoOggetto(); TipoOggetto b = a;... a = null; L'oggetto continua ad esistere perché esiste ancora un riferimento ad esso. if (a==null)... // Vera if (b==null)... // Falsa

16 Java (Sintassi) Uso e significato di new. L'operatore new ha la funzione di creare un nuovo oggetto o un array del tipo opportuno. Per gli array, vale la sintassi vista precedentemente. Per gli oggetti, deve essere richiamato un metodo particolare chiamato costruttore. Possono esistere più tipi di costruttore per ogni classe: String str1 = new String( Hello world! ); String str2 = new String( Hello world!, UTF-8 ); String str3 = new String(bArr); // barr di tipo char[]

17 Costrutto condizionale if (condizione) comando; if (condizione) { } comando1; comando2;... Java (Sintassi) La condizione deve essere (o ritornare) un valore boolean (tipo primitivo Java).

18 Java (Sintassi) Costrutto condizionale (esempi) if (obj.getvalore()) comando; // getvalore DEVE ritornare un booleano! if (a>25) { }... if (b==false) comando; // equivalente a if (!b)

19 Java (Sintassi) Costrutto condizionale (serie) if (condizione1) {... } else if (condizione2) {... }... else {... }

20 Ciclo while while (condizione) {... } Java (Sintassi) while (true) {... } // loop infinito Prosegue finché la condizione è vera

21 Ciclo for Java (Sintassi) for (inizilizzazioni;condizione;incrementi) operazione; for (int i=0;i<20;i++) operazione; for (;a>25;) {... break; } // equivalente ad un costrutto if L'operatore break interrompe il ciclo e riporta l'esecuzione alla prima riga successiva.

22 Ciclo for Java (Sintassi) for (;true;) {... } // equivalente al costrutto while infinito Esiste anche l'operatore continue, che termina la corrente esecuzione del ciclo e fa così ripetere condizione e incrementi: for (int i=0;i<1000;i++) { } if (i % 2!=0) continue; operazione; // Eseguita solo per i numeri pari

23 Java (Package) Java possiede un grande numero di pacchetti per i più svariati compiti. La suddivisione di questi oggetti è fatta in librerie chiamate package. L'importazione di un package viene fatta tramite una serie di comandi import posti all'inizio del file. import java.util.*; // Tutte le classi in java.util E' possibile importare solo una classe appartenente ad un package, oppure l'intero contenuto del package. La differenza non è nell'efficenza (vengono esplicitamente importare solo le classi effettivamente utilizzate), ma solo nella chiarezza del codice: import java.util.vector; // Solo Vector in java.util

24 Java (Package) I package possono essere costruiti e suddivisi come una serie di sottopackage creando una gerarchia ad albero. Importare tutte le classi di un package (import nome.*) non vuol dire importare anche tutte le classi dei possibili sottopackage. import java.util.*; // Tutte le classi in java.util import java.util.zip.zipfile; // classe ZipFile in java.util.zip

25 Gerarchia degli oggetti in Java Programmando in Java bisogna tenere sempre presente uno dei principi della programmazione ad oggetti chiamato ereditarietà. Tutti gli oggetti in Java estendono la classe nativa Object, oppure estendono altre classi che a loro volta estendono Object. Es: La classe Integer (che gestisce i numeri interi in formato di oggetti) estende la classe Number che a sua volta estende Object. La classe Float a sua volta estende Number.

26 Gerarchia degli oggetti in Java Questo vuol dire che ovunque sia richiesto un certo tipo di dato, possiamo sempre utilizzare un tipo che sia estensione del tipo richiesto. Ovunque è richiesto un tipo Object, vuol dire che è possibile utilizzare un qualunque oggetto Java.

27 Java (Alcuni oggetti utili) Oggetti per la connessione a database. Oggetti String. Vector e Hashtable. Classi wrapper.

28 Oggetti in java.sql Connection connessione tra l ambiente Java e il database. ottenuto da un oggetto Connection. Statement Possiede metodi per eseguire query SQL sul database. PreparedStatement Possiede metodi per eseguire query SQL preparate. ResultSet Se l esecuzione SQL ritorna risultati (e.g: SELECT), questi vengono memorizzati in un oggetto ResultSet.

29 Oggetti String In Java le stringhe sono sempre trattate come oggetti (gli array di caratteri non sono stringhe!). Istanziare oggetti String: Forma canonica str = new String( Hello World! ); Usata solo per fare copie di stringhe. Forma breve str = Hello World! ; Se str è un oggetto, allora avrà dei metodi: str.touppercase() HELLO WORLD! str.charat(2) l // Singolo apice per i caratteri

30 Oggetti String Concatenazione di stringhe: operatore +. str+ \nciao Mondo ; Hello World! Ciao Mondo Funziona solo tra stringhe? No! str+ \n +7; Hello World! 7

31 Oggetti String str = Numero +7; // Numero 7 str = Numero +7+1; // Numero 71!!!ATTENZIONE!!! str = Numero +(7+1); // Numero 8 Ogni operazione tra stringhe ritorna sempre una nuova stringa: str + persa ; // str non viene modificata! La nuova stringa creata non è stata assegnata e quindi viene persa... Da ricordare bene Gli oggetti String sono immutabili

32 Vector & Hashtable Sono classi del package java.util e condividono alcune caratteristiche e potenzialità. La classe Vector è una versione ad oggetti degli array, di cui vengono superati alcuni limiti. La dimensione iniziale può essere superata, permettendo la memorizzazione di una quantità di oggetti che può essere da principio sconosciuta. L'oggetto Vector aumenta automaticamente la capienza se necessario. Può contenere oggetti di tipo Object, quindi un qualsiasi oggetto Java; il tipo degli elementi contenuti in un Vector non deve essere per forza omogeneo. Possiede metodi per inserire, estrarre, scansire...

33 Vector Vector v = new Vector(10); v.add( Stringa 1 ); // alla posizione 0 v.add( Stringa 2 ); // alla posizione 1 v.add(new TipoOggetto(), 1); // alla posizione 1 Con l'ultima operazione la seconda stringa viene spostata a destra per fare posto al nuovo oggetto. String str = (String)(v.get(0)); // Ottengo Stringa 1 Così come i Vector ospitano tipi di dato Object, così essi ritornano solo Object. Per trasformare l'oggetto nel tipo originale, occorre eseguire una conversione, un'operazione di casting.

34 Procedura di cast In Java l'operazione di cast può essere eseguita solo tra tipi compatibili, ossia percorrendo verso il basso la gerarchia delle classi. Il cast di un oggetto di tipo B in un oggetto di tipo A... A var1 = (B)var2;...è possibile solo se B è un discendente di A. Il cast non esiste solo per gli oggetti: long l = l; int a = (int)l;

35 Hashtable Gli Hashtable sono oggetti che memorizza i dati secondo i principi delle tabelle hash, associando univocamente coppie di chiavi e valori, dove le chiavi non sono necessariamente numeri ma anche stringhe e altri oggetti. Hashtable hash = new Hashtable(); hash.put( chiave1, Ciao ); hash.put( chiave2,new TipoOggetto()); hash.put( chiave1, Mondo ); L'ultima operazione in questo caso sovrascrive la prima stringa inserita. String str = (String)hash.get( chiave1 ); Infatti str sarà uguale a Mondo.

36 Scorrere Vector & Hashtable Gli oggetti Vector potrebbero essere analizzati elemento per elemento allo stesso modo degli array, ma spesso si preferisce un altro modo: java.util.enumeration e; // Così non devo fare import for (e = v.elements() ; e.hasmoreelements() ;) { Object o = e.nextelement();... // Faccio qualcosa con o } Questo modo è praticamente obbligatorio per gli elementi memorizzati in un hashtable.

37 Classi wrapper Tornando ai Vector, essi presentano il limite di poter memorizzare un qualsiasi tipo di oggetto Java, ma cosa succede se il dato che vogliamo memorizzare non è un oggetto? Vector v = new Vector(); v.add(5); // ERRORE! Le classi wrapper si occupano di questo problema, e di altri. Ne esiste una per ogni tipo di dato primitivo di Java: Integer, Float, Double, Boolean, Character, Long... Il loro scopo è principalmente quello di fornire un guscio al tipo primitivo che rappresentano, in modo tale da poter essere utilizzato dove è richiesto un oggetto.

38 Vector v = new Vector(); Integer i = new Integer(5); v.add(i); // OK int a = i.intvalue(); long b = i.longvalue(); Classi wrapper

39 Classi wrapper In più raggruppano informazioni e funzionalità generali, utili per lavorare e gestire i tipi primitivi. Es: qual'è il massimo valore intero rappresentabile? int massimo = Integer.MAX_VALUE; Alle classi wrapper sono lasciate le operazioni di conversione e trasformazione (le atoi e itoa del C...): Integer i = new Integer(5); String st = i.tostring(); // Conversione in stringa... int val = Integer.parseInt( 105 ); //... e da stringa

40 Notazione utile Come il C, Java offre la notazione breve per il costrutto IF- THEN-ELSE, particolarmente utile in Java (estremamente leggibile utilizzata con stringhe): // Forma breve String str = Il valore letto è +(parametro<5? minore di 5 : maggiore/uguale a 5 ); // Forza canonica String str = Il valore letto è ; if (parametro<5) str+= minore di 5 ; else maggiore/uguale a 5 ;

41 JSP

42 Costruire pagine JSP Le pagine JSP sono (praticamente) pagine HTML. In ogni momento è possibile smettere di inserire codice HTML e iniziare la scrittura di codice Java. Il codice Java verrà eseguito dal server alla richiesta della pagina, e non verrà ritornato al client.

43 Costruire pagine JSP page language="java"%> <HTML> <HEAD> </HEAD> <BODY> <H1>Hello World!</H1> Ora eseguirò una moltiplicazione: <% int a = 7 * 3; %> </BODY> </HTML> HELLO WORLD Ora eseguirò una moltiplicazione:

44 Costruire pagine JSP page language="java"%> <HTML> <HEAD> </HEAD> <BODY> <H1>Hello World!</H1> Ora eseguirò una moltiplicazione: <% int a= 7 * 3; out.println( <BR> +a); %> </BODY> </HTML> HELLO WORLD Ora eseguirò una moltiplicazione: 21

45 Costruire pagine JSP L oggetto out è uno degli oggetti predefiniti nelle pagine JSP, collegato al flusso di output che verrà inviato ai browser. E possibile inserire dati nel flusso di output in 2 modi: Uso diretto di out.xxx() in uno scriptlet Java. Uso delle espressioni JSP.

46 Costruire pagine JSP page language="java"%> <% int risultato; molto codice Java %> <HTML> <BODY> <H1>Hello World!</H1> Ora eseguirò una complessa operazione: ALTRO CODICE HTML Il risultato dopo tutte le operazioni effettuate è <%=risultato%> </BODY> </HTML>

47 Costruire pagine JSP Perché usare le espressioni JSP piuttosto che gli scriptlet? Nessun motivo se non pulizia del codice. E buona norma raggruppare il più possibile il codice Java al di fuori del contesto HTML, e le espressioni aiutano in questo. Le espressioni si inseriscono meglio nelle parti HTML, piuttosto che aprire e chiudere uno scriptlet.

48 Componenti di una JSP Gli scriptlet <% // codice Java %> Le espressioni <%=espressione Java%> Le direttive parametro1=valore1 parametro2=valore2 %> Le dichiarazioni <%! Dichiarazione %>

49 Dichiarazioni JSP <%! int fattoriale(int a) { if (a==0) return 1; if (a>2) return a*fattoriale(a-1); return a; } %>

50 Direttive JSP La direttiva page è già stata vista. E' molto utile anche la direttiva include che permette di richiamare in un punto qualsiasi della pagina un'altra pagina JSP. include file="urlpagina" %> Questo evita la replicazione di codice e permette l'inclusione di pagine contenenti librerie di funzioni ottenute con le dichiarazioni, o la ripetizioni di blocchi di codice (anche statico) tra pagine diverse.

51 Mischiare HTML e Java L application server si occupa di trasformare tutto il contenuto di una pagina JSP (parti HTML e Java) in codice Java. <BODY> <TABLE> <TR> out.println( <BODY>\n + <TABLE>\n + <TR>\n + );

52 Mischiare HTML e Java Esempio. <% %> <% %> if (parametro==1) { <H3>Tabella del parametro 1</H3> <TABLE> </TABLE> } else if (parametro==2) { <H3>Tabella del parametro 1</H3> <TABLE> </TABLE> if (parametro==1) { out.println( <H3>Tabella del parametro 1</H3>\n + <TABLE>\n + + </TABLE>\n ); } else if (parametro==2) { out.println( <H3>Tabella del parametro 1</H3>\n + <TABLE>\n + + </TABLE>\n );

53 Alcuni oggetti Predefiniti Oggetti disponibili ad ogni pagina JSP. Oggetto out. Oggetto request. E collegato alla richiesta eseguita dal client. Possiede metodi per estrarre ulteriori informazioni quali i cookie, i parametri passati. E possibile ottenere i cookie impostati nel client tramite il metodo Cookie[] getcookies(); Cookie è un altro oggetto standard del linguaggio Java. Ha un metodo per ottenere il nome del cookie (getname) e il valore associato (getvalue). Request è molto utilizzato per ottenere informazioni sulle scelte del client. String getparameter(string parametername);

54 Alcuni oggetti Predefiniti Il metodo permette di ottenere i parametri passati dal client all invio della pagina (o tramite parametri appesi all URL, o via campi in un form HTML). Esempio? page language="java"%> <!-- File form.jsp --> <HTML> <BODY> <FORM NAME= myform ACTION= form.jsp > <INPUT TYPE= text NAME= nome VALUE= <%=request.getparameter( nome )%> ><BR> <INPUT TYPE= text NAME= cognome VALUE= <%=request.getparameter( cognome )%> ><BR> <INPUT TYPE= submit VALUE= Salva > </FORM> </BODY> <HTML>

55 Breve parentesi sui cookie I cookie sono piccoli file di testo, limitati in numero e dimensione. Possono essere associati ad un url Web (e.g: oppure ad un percorso interno a questi (e.g: Possono avere una scadenza (dopo la quale vengono cancellati) o durare indefinitivamente. Vengono utilizzati per memorizzare nel client informazioni sull'utente ma la loro locazione li rende un posto non sicuro per memorizzare i dati (nessun dato sensibile come password in chiaro dell'utente) ma un ottimo posto per informazioni di minore importanza (preferenze varie dell'applicazione). I cookie vengono inviati al server (o al percorso interno del server) ad ogni richiesta HTTP effettuata, senza che l'utente debba fare nulla di più. I cookie permettono quindi di ricordare al server alcune scelte del client, sebbene HTTP sia un protocollo stateless.

56 Alcuni oggetti Predefiniti Oggetto response. E collegato alla risposta che verrà inviata al client e permette di gestire l invio di nuovi cookie. void addcookie(cookie cookie); L oggetto response gestisce anche le redirezioni (redirect), ossia può forzare il caricamento di un altra pagina web. void sendredirect(string location); Quando viene utilizzata un azione di redirect?

57 Alcuni oggetti Predefiniti <!-- File form.html --> <HTML> <HEAD><TITLE>Form di inserimento nel database</title> </HEAD> <BODY> <FORM NAME= myform ACTION= insertdb.jsp > <INPUT TYPE= text NAME= nome ><BR> <INPUT TYPE= text NAME= cognome ><BR> <INPUT TYPE= password NAME= pwd ><BR> <INPUT TYPE= submit VALUE= Invia dati > </FORM> </BODY> <HTML> page language="java"%> <% // file InserDB.jsp Codice per inserimento dei dati nel database if (hainserito) // esecuzione corretta, ripeto da capo response.sendredirect( form.html ); else // ho avuto problemi, pagina d errore response.sendredirect( errore.html ); %>

58 Alcuni oggetti Predefiniti Oggetto session. E una struttura dati memorizzata sul server. Ne viene costruita una per ogni client esistente. E il posto migliore per memorizzare in modo sicuro alcune informazioni del client che non è conveniente inserire nei cookie. Si usano fondamentalmente 2 metodi: Object getattribute(string name); Ottiene un oggetto qualsiasi dalla sessione, o null se non vi era inserito. void setattribute(string name, Object value); Salva nella sessione l oggetto passato. Come avviene l'associazione tra la sessione lato server e il client (ricordando che HTTP è un protocollo stateless?). Con un cookie! JSESSIONID=4779FF6307AF6216ACA84F2E2BCA2461

59 Alcuni oggetti Predefiniti page language="java"%> <% // CODICE DA INSERIRE IN OGNI PAGINA CHE RICHIEDE AUTENTICAZIONE String aut = (String)session.getValue( autenticato ); if (aut==null!aut.equals( true )) // no! response.sendredirect( login.html ); return; %> page language="java"%> <%! boolean controllo(string id, String pass) { // Codice necessario a controllare l autenticazione } %> <% // CODICE CHE CONTROLLA L AUTENTICAZIONE String userid = request.getparameter( userid ); String pwd = request.getparameter( password ); boolean autenticato=controllo(userid, pwd); if (autenticato) // può accedere al portale session.setvalue( autenticato, true ); else // errore nei dati inseriti, riprova response.sendredirect( login.html ); %>

60 Alcuni oggetti Predefiniti Oggetto application. E una struttura dati memorizzata sul server, molto simile all'oggetto session. La differenza è però sostanziale in quanto è una struttura unica per ogni applicatione esistente sull'application server. E una struttura dati utile per memorizzare informazioni collegate ad ogni client (numero di accessi, risorseo comuni...) e come session è sicura.

61 Riguardo al debug Tutto il flusso di output dell esecuzione di una pagina JSP viene inserito in un contensto HTML, il che rende a volte difficoltoso trovare gli errori tramite stampe di informazioni di debug. E sempre possibile eseguire codice Java che scriva del testo senza ricorrere all oggetto out. Java solitamente scrive a schermo con istruzioni che assumono questa forma: System.out.println( debug ); Durante l esecuzione di pagine JSP, dove viene inserito questo testo, mancando un output video? Nel file catalina.out.

62 Java e Connessioni JDBC Un intero package (libreria) Java si occupa delle comunicazioni con i database. L importazione dei package nelle pagine JSP avviene all interno della direttiva page: page language= java import="java.sql.*" %> Ogni database che supporti Java, offre un driver Odbc che permette al linguaggio di interfacciarsi con il database. Il supporto alla connesione al database ci è dato direttamente dall'uso di un connection pool in Tomcat.

63 Java e Connessioni JDBC L instanza di Connection che apre la connessione al database può essere ottenuto solo dopo aver caricato il driver opportuno (lavoro svolto per noi da Tomcat, in modo trasparente). Per ottenere un oggetto Connection da Tomcat, eseguiremo una serie di istruzione in ogni pagina JSP che necessiti della connessione. page language="java" import="java.sql.*, javax.sql.*, javax.naming.*"%> <% Connection connection; Context initcontext = new InitialContext(); Context envcontext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/ConnTmxy"); connection = ds.getconnection(); %>

64 Java e Connessioni JDBC L oggetto Statement è uno degli oggetti ricavabili da Connection e si occupa delle query semplici : Statement statement = connection.createstatement(); Permette di eseguire delle operazioni SQL sul database. Queste sono principalmente suddivise in due tipi di query: Le query che non ritornano risultati (e.g: INSERT, DELETE, UPDATE) e quelle che invece ritornano set di righe come risultati (e.g: SELECT). Query del primo tipo: statement.executeupdate( UPDATE user SET nome = Pippo );

65 Java e Connessioni JDBC Query del secondo tipo: ResultSet rs = statement.executequery( SELECT nome FROM user ORDER BY nome ); Gli oggetti ResultSet rappresentano l insieme di n (0 o più) righe ottenute in risposta ad una SELECT SQL. I risultati vengono analizzati una riga alla volta ed esiste quindi il metodo per passare alla riga successiva: rs.next(); Questo metodo ritorna un booleano che sarà true se vi sono ancora risultati da leggere, false altrimenti. Una volta posizionati sopra ad una riga, si possono leggere i dati

66 Java e Connessioni JDBC String name = rs.getstring( nome ); int id = rs.getint( id ); boolean iscritto = rs.getboolean( iscritto ); Questi sono alcuni esempi di come possono essere estratte le informazioni nelle colonne dal ResultSet. Una campo può essere letto infinite volte, prima del lancio del prossimo metodo next. Il metodo next da lanciato almeno una volta (posizione iniziale è beforefirst).

67 Java e Connessioni JDBC page language="java import= java.sql.* %> HTML <%... // instanzio la connessione // Colonna da estrarre String colonna = request.getparameter( colonna ); Statement st = conn.createstatement(); ResultSet rs = st.executequery( SELECT +colonna+ FROM user ); out.println( <H1>Leggo dalla colonna +colonna+ :</H1> ); while (rs.next()) out.println(rs.getstring(colonna)+ <BR> ); conn.close(); %>

68 Statement e PreparedStatement Sono entrambi estratti da un'istanza di Connection. Statement è più semplice ed è perfetto per un utilizzo semplice del database (inserimento di dati di facile gestione come stringhe e numeri). Necessita di scrivere correttamente la query SQL in base al tipo dei dati inseriti (mascherare le stringhe!) e non è possibile gestire dati binari. Nel caso si debba lavorare con dati binari (il sorgente di un'immagine salvata nel database? Un file PDF?), è necessario l'uso di PreparedStatement.

69 PreparedStatement String SQL = INSERT INTO mytable VALUES(?,?,?) ; PreparedStatement ps = connection.preparestatement(sql); ps.setint(1,33); ps.setstring(2, Bla bla bla... ); ps.setstring(3, ); ps.execute() A seconda del metodo setxx usato, possiamo disinteressarci della gestione dei dati. Non dobbiamo controllare le stringhe, non dobbiamo pregestire gli stream binari...

70 Lavorare con dati binari Come devo gestire l'invio di un form con dati binari? <form action= salva.jsp enctype="multipart/form data"> <input type= text name= titolo > <input type= file name= sorgente_pdf > </form> Se voglio inviare dati binari devo impostare la corretta codifica per il form. Il problema sta tutto nella gestione dei dati una volta che l'invio è stato eseguito... tutti i dati arrivano nel nuovo formato e non sono più gestibili con dei semplici request.getparameter.

71 Lavorare con dati binari Viene fornito un package Java di supporto (upload). page language="java" import="java.sql.*, java.io.bytearrayinputstream" %> include file="binarydata.jsp" %> <%... String nome = getparam("nome"); byte allegatopdf[] = getbytes("allegato"); ps.setstring(1,nome); bytearray = new ByteArrayInputStream(allegatoPDF); ps.setbinarystream(2,bytearray,allegatopdf.length); ps.execute(); %>

72 Riferimenti Tomcat 5 Documentazione: MySql Documentazione: Java2SE Documentazione (standard Java): Java2EE 1.4 Documentazione (JSP & Servlet): Eclipse Ambiente di sviluppo: Lomboz Plugin JSP per Eclipse:

Laboratorio di reti II: Gestione di database lato server

Laboratorio 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

Dettagli

Laboratorio di reti II: Java Server Pages

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

Dettagli

Programmazione Java Avanzata

Programmazione 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]

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: 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

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS 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

Dettagli

JDBC. A. Bechini 2004. Accesso a DataD con Java

JDBC. 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

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC 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

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione Interfacce DBMS in breve Corso di BD1 Ripasso comandi applicazione JDBC Manipolazione estensioni OR in JDBC Interfacce per DBMS Problema: Far accedere un applicazione ad una base di dati Soluzione: Librerie

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC 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

Dettagli

Laboratorio di Sistemi Fondamenti di JDBC (parte1) Java. Fondamenti di JDBC

Laboratorio 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

Dettagli

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti

Dettagli

Esercitazione su JDBC

Esercitazione 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

Dettagli

JDBC: 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. 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

Dettagli

ASP: DOMANDE E RISPOSTE (Q&A)

ASP: DOMANDE E RISPOSTE (Q&A) Autore: Classe: Nicola Ceccon QUINTA INFORMATICA (5IA) Anno scolastico: 2003/2004 Scuola: Itis Euganeo ASP: DOMANDE E RISPOSTE (Q&A) Dispensa La dispensa presenta i contenuti fondamentali di ASP nella

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO 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

Dettagli

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

Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Il Web, HTML e Java Corso di Laurea in Ingegneria Informatica Progetto S.C.E.L.T.E. Università di Bologna Facoltà di Ingegneria Bologna, 08/02/2010 Outline Da applicazioni concentrate a distribuite Modello

Dettagli

Caricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement

Caricamento 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

Dettagli

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Non 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

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

Introduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO

Introduzione. 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

Dettagli

PHP. Indice. PHP: Hypertext Preprocessor. Introduzione Sintassi Fondamentale Tipi Variabili Costanti Operatori Strutture di controllo

PHP. Indice. PHP: Hypertext Preprocessor. Introduzione Sintassi Fondamentale Tipi Variabili Costanti Operatori Strutture di controllo PHP PHP: Hypertext Preprocessor Indice Introduzione Sintassi Fondamentale Tipi Variabili Costanti Operatori Strutture di controllo Funzioni Form Cookie Sessione File 1 Introduzione PHP è un linguaggio

Dettagli

www.mtcube.com Manuale di ASP

www.mtcube.com Manuale di ASP Manuale di ASP Sommario degli argomenti Che cosa sono le Active Server Pages... 3 Struttura, creazione ed esecuzione della pagina Asp... 3 Variabili e tipi di dati... 4 Numero Intero... 4 Numeri in virgola

Dettagli

Java: la libreria delle classi

Java: 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

Dettagli

Tecnologia e Applicazioni Internet 2011/12

Tecnologia 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

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

RenderCAD S.r.l. Formazione

RenderCAD S.r.l. Formazione Corso Descrizione La durata di questo corso è complessivamente di ore 150 di cui 85 ore di teoria, 35 ore di pratica e 30 ore di stage in azienda. Nel nostro territorio esiste una richiesta di tale figura,

Dettagli

JDBC. Dispense per il corso di Ingegneria del Web

JDBC. 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:

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 11. PHP - Complementi Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica Applicata

Dettagli

PROVA FINALE Ingegneria del software

PROVA 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

Dettagli

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

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

Dettagli

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

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

Dettagli

19. LA PROGRAMMAZIONE LATO SERVER

19. 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

Il linguaggio PHP. Parte I Introduzione. Paolo Milazzo

Il linguaggio PHP. Parte I Introduzione. Paolo Milazzo Il linguaggio PHP Parte I Introduzione Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it A.A. 2010/2011 Paolo Milazzo (Università di Pisa)

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni Uso dei data bases con PHP Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal

Dettagli

Setup Tomcat. Installare Java SDK * (http://java.sun.com/j2se/1.4.2/download.html) ad es. in c:\programmi\j2sdk1.4.2_08

Setup Tomcat. Installare Java SDK * (http://java.sun.com/j2se/1.4.2/download.html) ad es. in c:\programmi\j2sdk1.4.2_08 Setup Tomcat Installare Java SDK * (http://java.sun.com/j2se/1.4.2/download.html) ad es. in c:\programmi\j2sdk1.4.2_08 Impostare la variabile d'ambiente JAVA_HOME (e.g. JAVA_HOME=c:\programmi\j2sdk1.4.2_08)

Dettagli

Laboratorio di reti II: PHP

Laboratorio di reti II: PHP Laboratorio di reti II: PHP Stefano Brocchi brocchi@dsi.unifi.it 2 marzo, 2009 Stefano Brocchi Laboratorio di reti II: PHP 2 marzo, 2009 1 / 55 Il PHP Il PHP è un linguaggio di scripting che si può inserire

Dettagli

Corso di Informatica Modulo T3 B2 - Database in rete

Corso 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

Dettagli

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

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

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

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

Dettagli

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server)

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server) MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.b Interazione con un database (MySQL Server) Goy - a.a. 2009/2010 Programmazione Web 1 Informazione persistente Se vogliamo tener traccia

Dettagli

Scheda 15 Accedere ai DataBase con JDBC

Scheda 15 Accedere ai DataBase con JDBC Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Esercitazione 8. Basi di dati e web

Esercitazione 8. Basi di dati e web Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una

Dettagli

Tecnologie e Programmazione Web

Tecnologie e Programmazione Web Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete

Dettagli

PHP e Structured Query Language

PHP e Structured Query Language Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)

Dettagli

Tipi di Dato Ricorsivi

Tipi di Dato Ricorsivi Tipi di Dato Ricorsivi Luca Abeni September 2, 2015 1 Tipi di Dato Vari linguaggi di programmazione permettono all utente di definire nuovi tipi di dato definendo per ogni nuovo tipo l insieme dei suoi

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Accesso Web a Data Base

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

Dettagli

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione 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

Dettagli

Basi di Dati Esercitazione JDBC. Giugno 2007

Basi 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,

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

Impostazione ambiente di lavoro. Stefano Marchetti

Impostazione ambiente di lavoro. Stefano Marchetti Impostazione ambiente di lavoro Stefano Marchetti Software installato sul server di consegna Tomcat 5.5.23 - JSP e servlet container http://jakarta.apache.org/tomcat/tomcat-5.0-doc MySQL 5.0.40 - database

Dettagli

A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access

A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access A. Veneziani - Classe V Abacus - Elementi di elaborazione Web con supporto ai DB basati su ASP e Access Prologo Parlando di tecnologie Web legate a Microsoft è naturale integrare le funzioni di ASP 1 con

Dettagli

PHP. Per poter interagire con i dati che si trovano sul server remoto occorrono strumenti server-side.

PHP. Per poter interagire con i dati che si trovano sul server remoto occorrono strumenti server-side. PHP Il linguaggio HTML e i linguaggi di scripting come Javascript impongono alcune limitazioni alle applicazioni che si possono realizzare : per esempio non è possibile costruire un sito Web che consenta

Dettagli

Applicazione client-server in PHP con database MySQL

Applicazione client-server in PHP con database MySQL Applicazione client-server in PHP con database MySQL Emanuele Scapin 1 1 Liceo Statale F.Corradini, via Milano 1, 36016 Thiene 30/05/2012 1 Premessa Dopo la trattazione di argomenti teorici di progettazione

Dettagli

JavaServer Pages: Introduzione

JavaServer Pages: Introduzione JavaServer Pages: Introduzione Gianluca Moro gianluca.moro@unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna Sistemi reali in JSP!! ofoto.com: stampa e gestisce foto

Dettagli

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database

PHP 5. PHP ed i database. Database e tabelle. Struttura di un DB relazionale. Accesso a database PHP ed i database PHP 5 Accesso a database PHP funziona con molti database relazionale che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

INTRODUZIONE INTRODUZIONE JAVA JAVA

INTRODUZIONE INTRODUZIONE JAVA JAVA INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti

Dettagli

PHP. 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 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à

Dettagli

L interfaccia a riga di comando di MySql

L interfaccia a riga di comando di MySql L interfaccia a riga di comando di MySql Una volta completata la procedura di installazione possiamo finalmente testare le funzionalità di MySQL. Sia che ci si trovi in ambiente Linux che Windows, l'interfaccia

Dettagli

Architetture Web I Server Web e gli Standard della Comunicazione

Architetture Web I Server Web e gli Standard della Comunicazione Architetture Web I Server Web e gli Standard della Comunicazione Alessandro Martinelli alessandro.martinelli@unipv.it 1 Aprile 2014 Architetture Web I Server Web e gli Standard della Comunicazione Il Server

Dettagli

Laboratorio di Basi di Dati e Web

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

Dettagli

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28 Indice 25 184 Introduzione XI Capitolo 1 Impostazione dell ambiente di sviluppo 2 1.1 Introduzione ai siti Web dinamici 2 1.2 Impostazione dell ambiente di sviluppo 4 1.3 Scaricamento di Apache 6 1.4 Installazione

Dettagli

Applicazione ASP di esempio

Applicazione ASP di esempio Applicazione ASP di esempio Database in rete Prof. Claudio Maccherani Un server web è un programma che gira su un computer sempre collegato ad Internet e che mette a disposizione file, pagine e servizi.

Dettagli

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: http:// sdfonline.unimc.it/info/modulo.jsp;

Esempio 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

Dettagli

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Java 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

Dettagli

SQL e applicazioni. Capitolo 8. SQL e linguaggi di programmazione. Applicazioni ed SQL: architettura. Una difficoltà importante.

SQL e applicazioni. Capitolo 8. SQL e linguaggi di programmazione. Applicazioni ed SQL: architettura. Una difficoltà importante. SQL e applicazioni Capitolo 8 Applicazioni tradizionali In applicazioni complesse, l utente non vuole eseguire comandi SQL, ma programmi, con poche scelte SQL non basta, sono necessarie altre funzionalità,

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Accesso a Database con JDBC

Accesso a Database con JDBC 1 Sommario Accesso a Database con JDBC Introduzione architettura generale di riferimento flusso tipico delle applicazioni ODBC/JDBC ODBC architettura il flusso generale di un applicazione ODBC JDBC architettura

Dettagli

Corso di Web Programming

Corso di Web Programming Corso di Web Programming 8. PHP Parte I Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea in Informatica Applicata A.A. 2010/2011

Dettagli

JDBC per l accesso Java a DB. Tito Flagella tito@link.it

JDBC 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

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Dominio applicativo. Progettazione. v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures

Dominio applicativo. Progettazione. v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures Dominio applicativo (Capitolo 6) v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures Basi di dati 1 Docente Claudia Amari 1 Progettazione PROGETTAZIONE

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

Sviluppo di applicazioni per basi di dati

Sviluppo di applicazioni per basi di dati Sviluppo di applicazioni per basi di dati 1 Sviluppo di applicazioni per basi di dati Quattro parti: Gestione dati Business rules (vincoli di integrità e dati derivati) Logica applicativa Interfaccia utente

Dettagli

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB

Accesso a basi di dati con ASP. Algoritmo per visualizzare un DB Accesso a basi di dati con ASP 1 Algoritmo per visualizzare un DB 1. creare una connessione tra lo script ASP e il database 2. Costruire una QUERY in linguaggio SQL che opera sul database 3. Recuperare

Dettagli

Un client su arduino invia i dati acquisiti ad un database

Un client su arduino invia i dati acquisiti ad un database Un client su arduino invia i dati acquisiti ad un database PROBLEMA Si vogliono inviare, periodicamente, i dati acquisiti da alcuni sensori ad un database presente su di un server. Arduino con shield Ethernet

Dettagli

Introduzione al linguaggio PHP. Matteo Manzali INFN CNAF - Università degli Studi di Ferrara

Introduzione al linguaggio PHP. Matteo Manzali INFN CNAF - Università degli Studi di Ferrara Introduzione al linguaggio PHP Matteo Manzali INFN CNAF - Università degli Studi di Ferrara Introduzione a PHP PHP è un linguaggio di programmazione general-purpose che viene utilizzato in larga parte

Dettagli

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Scaletta. 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

Dettagli

Le tecnologie software Internet

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

Dettagli

PHP 5. Accesso a database

PHP 5. Accesso a database PHP 5 Accesso a database PHP ed i database PHP funziona con molti database relazionali che includono: Oracle Access Postgres SQL Server MySQL Useremo MySQL poiché è semplice da usare, gratuito e molto

Dettagli

Le tecnologie software Internet

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

Dettagli

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

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

Dettagli

Nozioni di base sull utilizzo di PHP e di MySQL

Nozioni di base sull utilizzo di PHP e di MySQL Nozioni di base sull utilizzo di PHP e di MySQL Che cos è PHP? Mi sento in dovere prima di iniziare ad illustrare le nozioni di base di PHP introdurre dicendo PHP che cos è in sostanza; fino a qualche

Dettagli

Laboratorio di reti II: Servlet

Laboratorio di reti II: Servlet Laboratorio di reti II: Servlet Stefano Brocchi brocchi@dsi.unifi.it 16 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Servlet 16 marzo, 2009 1 / 34 Le servlet Una servlet è una classe Java eseguita

Dettagli

JDBC: Java e database.

JDBC: Java e database. JDBC: Java e database. Introduzione all architettura e esempi di utilizzo 1.0 INTRODUZIONE ALL ARCHITETTURA JDBC è (anche se non ufficialmente riconosciuto da Sun) l acronimo per Java DataBase Connectivity.

Dettagli

PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com

PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com PYTHON Inviare dati con i form A cura di Silvio Bonechi [sabandini_at_tiscali_dot_it] per http://www.pctrio.com 10.07.2006 Ver. 1.0 In questo articolo vedremo come gestire con un FORM l invio di dati ad

Dettagli

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari Algoritmi e Strutture Dati Tipo di dato astratto e Strutture dati elementari 1 Argomenti della lezione Tipi di dato astratto Strutture dati elementari Liste o Implementazione di liste in Java Stack Code

Dettagli

FileMaker 12. Guida ODBC e JDBC

FileMaker 12. Guida ODBC e JDBC FileMaker 12 Guida ODBC e JDBC 2004 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker, Inc.

Dettagli

Java e PL/SQL. Simona Rotolo

Java e PL/SQL. Simona Rotolo Java e PL/SQL Simona Rotolo 2 Con l'uscita di Oracle 8i è possibile costruire componenti software che accedono ai dati Oracle utilizzando in modo congiunto i linguaggi PL/Sql e Java. In tal modo è possibile

Dettagli

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere

bool mysql_select_db([string database_name [,resource link_identifier]]) Connessione ad un server MySQL vuole conettere Connessione ad un server MySQL resource mysql_connect ([string server [, string username [, string password [, bool new_link [, int client_flags]]]]]) server nome o indirizzo del server username nome utente

Dettagli