Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java]
|
|
- Fabiana Riccardi
- 8 anni fa
- Visualizzazioni
Transcript
1 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) Funzione MD5 L'MD5 (acronimo di Message Digest algorithm 5) è un algoritmo per la crittografia dei dati a senso unico realizzato da Ronald Rivest (nella foto) nel 1991 e standardizzato con la RFC Questo tipo di codifica prende in input una stringa di lunghezza arbitraria e ne produce in output un'altra a 128 bit (ovvero con lunghezza fissa di 32 valori esadecimali, indipendentemente dalla stringa di input) che può essere usata per calcolare la firma digitale dell'input. La codifica avviene molto velocemente e si presuppone che l'output (noto anche come "MD5 Checksum" o "MD5 Hash") restituito sia univoco (ovvero si ritiene che sia impossibile, o meglio, che sia altamente improbabile ottenere con due diverse stringhe in input una stessa firma digitale in output) e che non ci sia possibilità, se non per tentativi, di risalire alla stringa di input partendo dalla stringa di output (la gamma di possibili valori in output è pari a 16 alla 32esima potenza). Applicazione pratica dell'md5 La crittografia tramite algoritmo MD5 viene applicata in tutti i settori dell'informatica che lavorano con il supporto delle firme digitali o che comunque trattano dati sensibili. Ad esempio, viene utilizzata per controllare che uno scambio di dati sia avvenuto senza perdite, semplicemente attraverso il confronto della stringa prodotta dal file inviato con quella prodotta dal file ricevuto. Con lo stesso metodo si può verificare se il contenuto di un file è cambiato (funzione utilizzata dai motori di ricerca per capire se una pagina deve essere nuovamente indicizzata). È diffuso anche come supporto per l'autenticazione degli utenti attraverso i linguaggi di scripting Web server-side (PHP in particolare): durante la registrazione di un utente su un portale internet, la password scelta durante il processo verrà codificata tramite MD5 e la sua firma digitale verrà memorizzata nel database (o in qualsivoglia contenitore di dati). autenticazione_3.pdf Pag. 1/17 Cozzetto
2 Successivamente, durante il login la password immessa dall'utente subirà lo stesso trattamento e verrà confrontata con la copia in possesso del server, per avere la certezza dell'autenticità del login. (Fine testo tratto da Wikipedia) Esempio con Php E' facilissimo costruire un piccolo esempio di utilizzo della funzione md5 in Php (md5 è una funzione built-in del linguaggio). File md5.php <?php?> $a="pippo"; echo ($a."=".md5($a)); Collochiamo la pagina nella cartella htdocs di Xampp e digitiamo la url nel browser Otteniamo una sequenza di 32 valori esadecimali come previsto dalla definizione vista precedentemente. Esempio con Jsp In java, le cose sono leggermente più complesse. Scriviamo, come avviene normalmente con una qualsiasi applicazione java, prima di tutto una classe (che chiameremo MD5) e dotiamo questa classe di un metodo statico che chiameremo md5 (in minuscolo). Il metodo accetta come parametro di input una stringa e restituisce in output una nuova stringa che rappresenta l'impronta della stringa iniziale, in accordo autenticazione_3.pdf Pag. 2/17 Cozzetto
3 con la definizione. /* * MD5.java package it.itiscastelli.classi; import java.security.messagedigest; import java.security.nosuchalgorithmexception; * maurizio public class MD5 { public MD5() { public static String md5(string message) throws NoSuchAlgorithmException { // utilizziamo la classe MessageDigest del package java.security MessageDigest md; try { // getinstance vuole come argomento la costante MD5 che rappresenta // l'algoritmo md5 md = MessageDigest.getInstance("MD5"); catch (NoSuchAlgorithmException ex) { throw new NoSuchAlgorithmException("Errore. Non esiste un tale algoritmo."); // stringbuffer di appoggio StringBuffer sb = new StringBuffer(); // il metodo digest vuole come argomento un array di byte e restituisce un array // di byte byte[] messdig5 = md.digest(message.getbytes()); // trasformiamo l'array di byte in una stringa for( int i = 0 ; i < messdig5.length ; i++ ) { String tmpstr = "0"+Integer.toHexString( (0xff & messdig5[i])); sb.append(tmpstr.substring(tmpstr.length()-2)); // restituiamo la stringa ottenuta da sb return sb.tostring(); // fine metodo md5 // fine classe MD5 autenticazione_3.pdf Pag. 3/17 Cozzetto
4 Poi progettiamo una piccola web application (MD5WebApp) con la quale testare il metodo appena descritto. File index.jsp import="it.itiscastelli.classi.*" %> contenttype="text/html" pageencoding="iso "%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <title>prova MD5</title> <style> body, td, tr { font-family: Verdana, Arial, "Trebuchet MS"; font-size: 13px; </style> </head> <body> <h3>hello MD5!</h3> <% String messaggio = "pippo"; out.println( messaggio + "=" + MD5.md5(messaggio) ); %> </body> </html> autenticazione_3.pdf Pag. 4/17 Cozzetto
5 Come si può facilmente vedere, la stringa ottenuta è esattamente la stessa rispetto a quella ottenuta mediante Php. Database MySQL users_db Prepariamo ora un database MySQL users_db e la tabella users_tbl con la seguente struttura: Il campo id rappresenta la chiave primaria della nostra tabella (di tipo autoincrement). Il campo password riceverà le password criptate degli utenti mediante il metodo md5 come spiegato precedentemente. Per gestire più facilmente l'inserimento dei dati, utilizziamo il noto applicativo PhpMyAdmin che è dotato di una comoda interfaccia web. Prepariamo alcuni dati di prova sfruttando uno dei due applicativi (quello in Php o quello in Jsp) descritti precedentemente. La web application PasswordDBWebApp Il nostro sistema di autenticazione utente è costituito da 3 classi (Utente, DAO e MD5) e 3 ulteriori pagine web (in aggiunta a index.jsp), login.jsp, riservata.jsp, logout.jsp. NetBeans 5.5 Ricordatevi di scaricare i driver di MySQL se usate una versione meno recente della 6.1 di NetBeans. Se invece usate NetBeans 6.1 o NetBeans 6.5, allora i driver sono già inclusi in NetBeans e potete facilmente aggiungerli al progetto (tasto destro del mouse sul progetto > Proprietà > Librerie > MySQL Driver). Per coloro che disponessero invece di NetBeans 5.5, ecco la corretta procedura per aggiungere i driver java (noti come MySQL Connector/JDBC): dal link (oppure dal sito della Sun visto che l'azienda che produce MySQL è stata appena acquisita da Sun MicroSystem) scarichiamo il file.tar.gz o il file.zip, poi estraiamo solo il file mysql-connector-java bin.jar e copiamolo ora nella cartella lib (apriamo la cartella web, poi andiamo in WEB-INF e creiamo la cartella lib all'interno). E' tutto. autenticazione_3.pdf Pag. 5/17 Cozzetto
6 Ecco ora il codice del nostro applicativo: /* * DAO.java package it.itiscastelli.classi; import java.sql.connection; import java.sql.date; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.util.gregoriancalendar; * maurizio public class DAO implements java.io.serializable { private Connection conn; public DAO() throws ClassNotFoundException, SQLException { // // chiusura della connessione public void closeconn() throws SQLException { getconn().close(); // fine metodo closeconn() // caricamento dei driver e apertura della connessione al database public void openconn() throws ClassNotFoundException, SQLException { Class.forName("com.mysql.jdbc.Driver"); System.out.println("Driver caricati."); setconn(drivermanager.getconnection("jdbc:mysql://localhost:3306/users_db? user=root&password=")); System.out.println("Connessione stabilita."); // fine metodo openconn() public Utente cercautente(string username, String password) throws Exception, SQLException { Statement st = null; ResultSet rs = null; if (username.equals("") && password.equals("")) throw new Exception("Attenzione! Non puoi lasciare username e password vuoti."); autenticazione_3.pdf Pag. 6/17 Cozzetto
7 if (username.equals("")) throw new Exception("Attenzione! Non puoi lasciare il campo username vuoto."); if (password.equals("")) throw new Exception("Attenzione! Non puoi lasciare il campo password vuoto."); try { String sql="select * FROM users_tbl WHERE username='"+username+"' AND password='"+it.itiscastelli.classi.md5.md5(password)+"'"; st=conn.createstatement(); rs = st.executequery(sql); if (!rs.next()) { // record non trovato rs.close(); st.close(); //conn.close(); return null; else { // record individuato it.itiscastelli.classi.utente v = new it.itiscastelli.classi.utente(); v.setusername(rs.getstring("username")); v.setluogodinascita(rs.getstring("luogo_di_nascita")); Date datanascita = rs.getdate("data_di_nascita"); // trasformo la data di MySQL in un oggetto // di tipo GregorianCalendar GregorianCalendar data = new GregorianCalendar(); data.settime(datanascita); // imposto l'attributo data dell'oggetto v v.setdatadinascita(data); rs.close(); st.close(); //conn.close(); return v; // end if catch (SQLException e) { throw new SQLException("Impossibile eseguire la query o chiudere la connessione."); // fine try-catch // fine metodo autenticazione_3.pdf Pag. 7/17 Cozzetto
8 the conn public Connection getconn() { return conn; conn the conn to set public void setconn(connection conn) { this.conn = conn; // fine classe DAO /* * Utente.java package it.itiscastelli.classi; import java.util.gregoriancalendar; * maurizio public class Utente implements java.io.serializable { private int id; private String username; private String password; private String luogodinascita; private GregorianCalendar datadinascita; Creates a new instance of Utente public Utente() { // public Utente(String username, String password) { this.username=username; this.password=password; autenticazione_3.pdf Pag. 8/17 Cozzetto
9 the id public int getid() { return id; id the id to set public void setid(int id) { this.id = id; the username public String getusername() { return username; username the username to set public void setusername(string username) { this.username = username; the password public String getpassword() { return password; password the password to set public void setpassword(string password) { this.password = password; the luogodinascita public String getluogodinascita() { return luogodinascita; autenticazione_3.pdf Pag. 9/17 Cozzetto
10 luogodinascita the luogodinascita to set public void setluogodinascita(string luogodinascita) { this.luogodinascita = luogodinascita; the datadinascita public GregorianCalendar getdatadinascita() { return datadinascita; datadinascita the datadinascita to set public void setdatadinascita(gregoriancalendar datadinascita) { this.datadinascita = datadinascita; // fine classe Utente Riportiamo qui invece di seguito le pagine web: File index.jsp <%@page import="it.itiscastelli.classi.*" %> <%@page contenttype="text/html" pageencoding="iso "%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <title>prova MD5</title> <style> body, td, tr { font-family: Verdana, Arial, "Trebuchet MS"; font-size: 13px; </style> </head> <body> <h3>hello MD5!</h3> <% String messaggio = "pippo"; out.println( messaggio + "=" + MD5.md5(messaggio) ); %> </body></html> autenticazione_3.pdf Pag. 10/17 Cozzetto
11 File login.jsp contenttype="text/html" pageencoding="iso "%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso "> <title>pagina di login</title> <style> body, td, tr { font-family: Verdana, Arial, "Trebuchet MS"; font-size: 13px; </style> </head> <body> <h3>login utente</h3> <% // visualizza l'id di sessione per scopi di debugging out.println("<p>session ID: "+session.getid()+"</p>"); if (session.getattribute("utente")!=null) response.sendredirect("riservata.jsp"); %> <form name="provafrm" action="${request.requesturi" method="post" > <p>username <input type="text" name="usernametxt" value="$ {param.usernametxt" /><br/> Password <input type="password" name="passwordtxt" value="$ {param.passwordtxt" /><br/> <input type="submit" name="inviabtn" value="invia"/></p> </form> <% if (request.getparameter("inviabtn")!=null) { it.itiscastelli.classi.dao dao; try { dao=new it.itiscastelli.classi.dao(); dao.openconn(); catch(exception e) { out.println(e.getmessage()); return; String username = request.getparameter("usernametxt"); String password = request.getparameter("passwordtxt"); it.itiscastelli.classi.utente v=null; autenticazione_3.pdf Pag. 11/17 Cozzetto
12 try { v = dao.cercautente(username, password); catch (Exception e) { dao.closeconn(); out.println(e.getmessage()); return; if (v!=null) { session.setattribute("utente",v); response.sendredirect("riservata.jsp"); else { out.println("accesso non consentito. Per cortesia, riprova a inserire username e password."); response.setheader("refresh","5; login.jsp"); // fine if %> // chiudo la connessione dao.closeconn(); </body> </html> File riservata.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <%@page import="java.util.gregoriancalendar" %> <%@page import="java.util.calendar" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>pagina riservata</title> <style> body, td, tr { font-family: Verdana, Arial, "Trebuchet MS"; font-size: 13px; </style> </head> <body> <h3>accesso riservato</h3> <% // visualizza l'id di sessione per scopi di debugging out.println("<p>session ID: "+session.getid()+"</p>"); autenticazione_3.pdf Pag. 12/17 Cozzetto
13 // se l'attributo utente non esiste if (session.getattribute("utente")==null) { out.println("<p>pagina riservata. Non puoi accedere a queste informazioni.</p>"); out.println("<p>tra pochi secondi verrai rediretto verso la home page.</p>"); response.setheader("refresh","5; login.jsp"); else { it.itiscastelli.classi.utente v = (it.itiscastelli.classi.utente) session.getattribute("utente"); out.println("benvenuto "+v.getusername()+". Accesso consentito."); GregorianCalendar d = v.getdatadinascita(); int giorno = d.get(calendar.day_of_month); int mese = d.get(calendar.month)+1; int anno = d.get(calendar.year); String datanascita = giorno+"/"+mese+"/"+anno; out.println("sei nato il "+datanascita+ " a "+v.getluogodinascita()+"."); out.println("<p><a href='logout.jsp'>logout</a></p>"); %> </body> </html> File logout.jsp <%@page contenttype="text/html"%> <%@page pageencoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>pagina di logout</title> <style> body, td, tr { font-family: Verdana, Arial, "Trebuchet MS"; font-size: 13px; </style> </head> <body> <h3>pagina di logout</h3> <% // visualizza l'id di sessione per scopi di debugging out.println("<p>session ID: "+session.getid()+"</p>"); // se l'attributo della sessione esiste e non è nullo if (session.getattribute("utente")!=null) { it.itiscastelli.classi.utente v = (it.itiscastelli.classi.utente) session.getattribute("utente"); autenticazione_3.pdf Pag. 13/17 Cozzetto
14 out.println("grazie "+v.getusername()+" di aver usato l'applicativo."); session.removeattribute("utente"); session.invalidate(); out.println("<p>tra pochi secondi verrai rediretto verso la home page.</p>"); response.setheader("refresh","5; login.jsp"); else { response.sendredirect("login.jsp"); %> </body></html> Vediamo in azione il nostro applicativo: Fig. 1 Login con username e password errati autenticazione_3.pdf Pag. 14/17 Cozzetto
15 Fig. 2 Messaggio di errore: accesso non consentito Fig. 3 Dati corretti autenticazione_3.pdf Pag. 15/17 Cozzetto
16 Fig. 4 Accesso consentito Fig. 5 Logout dall'applicativo autenticazione_3.pdf Pag. 16/17 Cozzetto
17 Fig. 6 L'ID di sessione è cambiato autenticazione_3.pdf Pag. 17/17 Cozzetto
Laboratorio di Sistemi Autenticazione utente mediante MySQL Jsp [Java]
Per la comprensione del presente articolo, occorre aver assimilato i concetti esposti nell'articolo Prototipo autenticazione utente (file autenticazione_2.pdf). (Tratto da Wikipedia, l'enciclopedia libera)
DettagliLaboratorio di sistemi Autenticazione utente mediante scriplet Jsp [NetBeans]
Figura 1 - La pagina input_user.jsp appena caricata Figura 2 - Lascio vuoti entrambi i campi o immetto un solo valore Figura 3 - Immetto dei valori che non esistono nel database autent_utente_scriplet.pdf
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
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
Dettagli1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet
1 Gestione dell utente connesso in sessione con Java Server Pages, Java Beans, Servlet Controllo dell utente connesso al sito tramite JSP, Java Beans e Servlet. Ciò che ci proponiamo di fare è l accesso
DettagliLaboratorio di sistemi Information hiding Jsp [Java]
Vogliamo realizzare una pagina web che ci consenta di filtrare i record della tabella books del database MySQL shop. Fig. 1 Tabella books, database MySQL shop Il filtro viene scritto direttamente dall'utente
DettagliLaboratorio di sistemi Prima Web Application JSP [Java]
Vogliamo scrivere la nostra prima web application che legga da tastiera il nostro nome e fornisca un messaggio di saluto. Per costruire la nostra applicazione creiamo con NetBeans un nuovo progetto. File
DettagliLaboratorio di Sistemi 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 Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE
Programmare in Php con Xampp e NetBeans IDE NetBeans è un IDE ben noto ai programmatori Java. Con esso si possono infatti costruire applicazioni desktop professionali dotate di interfaccia grafica, applicazioni
DettagliLaboratorio di Sistemi Accesso a un database Jsp [NetBeans]
Modifichiamo l applicativo ListaSupereroiWebApp in modo che i dati dei supereroi non vengano caricati staticamente mediante delle istruzioni di assegnamento ma dinamicamente leggendo i record della tabella
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).
DettagliLaboratorio di Sistemi CRUD con MySQL JSP (Java)
Il problema Vogliamo realizzare un applicativo web che consenta di inserire, modificare e cancellare i record della tabella libri_tbl (database MySQL biblio_db). In questi casi, parliamo di applicativo
DettagliLaboratorio di Sistemi Accesso a un database MySQL NetBeans [Jsp]
Figura 1 Vogliamo realizzare una pagina web simile alla precedente: i dati si trovano nel db MySQL simpsons_db all'interno della tabella simpsons_tbl simpsons_mysql.pdf Pag. 1/12 Cozzetto Figura 2 - La
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
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
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
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
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
DettagliLaboratorio di Sistemi DAO JSP (Java)
Il problema Vogliamo progettare una piccola web application che ci consenta di ottenere, scegliendo un autore da una combo box, l'elenco dei libri scritti da quell'autore (è un esempio già trattato in
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
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
DettagliLavorare con MySQL Parte Seconda.
Lavorare con MySQL Parte Seconda. PHP, dalla versione 4.0, usufruisce difunzioni native per colloquiare con MySQL, senza appoggiarsi ad alcuna libreria o modulo esterno. In questa lezione verranno esaminate
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
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
DettagliLet's start! File > New Project > Ruby > Ruby on Rails Application (events)
La nuova versione di Netbeans 6 consente di lavorare con Ruby On Rails, un potente e nuovissimo framework per lo sviluppo e la prototipazione di applicazioni web, che fa uso del design-pattern MVC (Model-View-Controller,
DettagliPHP e MySQL. Scripting server-side per accesso a DB MySQL
PHP e MySQL Scripting server-side per accesso a DB MySQL Connessione a un DB MySQL Prima di accedere ai dati è necessario creare una connessione con il DB In PHP si utilizza la funzione mysql_connect,
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
Dettagli19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
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
DettagliCookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:
Cookie e Webstorage Un cookie (letteralmente biscotto) è un pacchetto di informazioni che viene salvato sul computer dell utente. In successive sessioni di collegamento a Internet (normalmente per un periodo
DettagliCorso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti
Corso di Sicurezza Informatica Sicurezza del software Ing. Gianluca Caminiti SQL Injection Sommario Premessa sul funzionamento dei siti dinamici SQL Injection: Overview Scenari di attacco: Errata gestione
DettagliLaboratorio di Sistemi Distribuiti Leonardo Mariani
Laboratorio di Sistemi Distribuiti Leonardo Mariani ELECTION ALGORITHMS In molti sistemi distribuiti un processo deve agire da (o svolgere un ruolo particolare) per gli altri processi. Spesso non è importante
DettagliCorso di Informatica Modulo T3 B2 - Database in rete
Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual
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
Dettagli1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages
1 http://desvino.altervista.org JSPDynPage, componenti portale e Java Server Pages Le JSP DynPages sono un utile strumento, fornito da SAP Netweaver, per una gestione più evoluta di event handling e session
DettagliJava Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet
Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML
DettagliMySQL Database Management System
MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare
DettagliIstruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.
DettagliPHP e MySQL. Guida scaricata da www.webstyling.it
Home -> Manuali & Tutorials -> Guida PHP PHP e MySQL E' possibile realizzare delle applicazioni in php appoggiandosi ad un database, quale ad esempio MySQL. Con le novità introdotte ai tempi di MySQL 4.1
DettagliProcedura di login e sessione
Procedura di login e sessione Costruire una pagina Web con un form di login per l inserimento delle credenziali dell utente (email, password). Si consideri il database db1 su server MySQL con la tabella
DettagliRELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE
RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE Mameli Salvatore-M01/000153 SOMMARIO 1 INTRODUZIONE 1.1 Project Overview 1.2 Ambiente del prodotto 1.3 Document Overview 2 - PROGETTAZIONE 2.1
DettagliBASI DI DATI http://www.diee.unica.it/~giacinto/bd. Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Contatti BASI DI DATI http://www.diee.unica.it/~giacinto/bd Esercitazione su PHP & MySQL! Roberto Tronci! e-mail: roberto.tronci@diee.unica.it!
DettagliTrasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL)
Pag. 1/12 Trasformare una Java (Console) Application in una Web Application (con utilizzo di un database MySQL) Prendiamo in esame un qualsiasi progetto NetBeans tra quelli studiati che fa uso di un database
DettagliLaboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013
Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation
DettagliEsempio di esecuzione di una pagina JSP: Il client chiede la pagina: http:// sdfonline.unimc.it/info/modulo.jsp;
JAVA SERVER PAGES Una pagina JSP (Java Server Pages), richiesta da un utente (client), viene eseguita dal server web nella propria memoria; generalmente il prodotto dell elaborazione è una pagina html
DettagliLaboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012
Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Architettura di una applicazione Web Browser Web HTTP Server Web PHP Dati View Control
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
DettagliInterazione con l utente : i moduli.
Interazione con l utente : i moduli. Nelle lezioni fin qui riportate, non abbiamo mai trattato l input di utente. Nelle applicazioni web, l input dell utente si acquisisce tramite i moduli (o FORM) HTML.
Dettagli1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server
2) Il Server richiama l'interprete PHP il quale esegue i comandi contenuti nel file.php specificato nell'attributo action del tag form creando un file HTML sulla base dei dati inviati dall utente 1) Il
DettagliChe cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo
Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato
DettagliProgrammazione Web. Laboratorio 4: PHP e MySQL
Programmazione Web Laboratorio 4: PHP e MySQL Lavagna elettronica (I) Un unità aziendale di decision making opera per le decisioni di tipo consueto e ripetitivo tramite la procedura seguente: un qualsiasi
DettagliPROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB
PROCEDURA AGGIORNAMENTO LISTE MEDIANTE L INTERFACCIA WEB Precondizioni Per poter eseguire i passi previsti da questa procedura è necessario che: - l'operatore (di seguito OP) abbia presentato l istanza
DettagliRELAZIONE TECNICA SUL SITO DELLA PALESTRA. Anno scolastico 2013-2014. Alunno: Davide martinicca. Pagina 1
RELAZIONE TECNICA SUL SITO DELLA PALESTRA Anno scolastico 2013-2014 Alunno: Davide martinicca Pagina 1 INDICE: Pag. 2 Pag. 3 Traccia del programma Tabella delle variabili, Sorgente HTML Pag. 4, 5, 6 Sorgente
DettagliProgettazione Web Applicazioni client-server
Progettazione Web Applicazioni client-server Sviluppo di un'applicazione Web integrando: HTML MySQL PHP Apache Applicativi utilizzabili: gestione database: JDER, MySQL Workbench, HeidiSQL (Win), DBeaver
DettagliLaboratorio di Sistemi Prototipo applicazione Biblioteca Jsp [Java]
Vogliamo progettare un prototipo di applicazione web che consenta ad un utente di ottenere, selezionando l'autore da una casella combinata, l'elenco dei libri scritti da quell'autore, come nelle figure
DettagliGuida all utilizzo di mysm 2.0. Ver 1.0 1
Guida all utilizzo di mysm 2.0 Ver 1.0 1 COSA E? mysm è uno strumento che permette di visualizzare i progetti, l elenco dei punti vendita (Point Of Sale) e il corrispondente stato di avanzamento lavori
DettagliRealizzare il layout di un sito web senza utilizzare frame e tabelle
Realizzare il layout di un sito web senza utilizzare frame e tabelle Questa guida descrive in maniera semplice e essenziale i passi necessari alla realizzazione di una pagina web strutturata in maniera
DettagliSiti interattivi e dinamici. in poche pagine
Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata
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
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
DettagliCosa succede quando si naviga
Programma corso Introduzione (spicciola) di architettura del web Creazione del sito e primi passi Sito statico o blog? Inserimento ed aggiornamento contenuti Personalizzazione grafica Iscrizione ai motori
DettagliLaboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014
Laboratorio Progettazione Web PHP e FORMs HTML Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Struttura Applicazioni Web Browser Web HTTP Server Web API Dati Presentation Application Storage
DettagliLiberamente adattato da Java dai fondamenti alla programmazione avanzata JS2E versione 1.5 di Karsten Samaschke, Apogeo editrice
Liberamente adattato da Java dai fondamenti alla programmazione avanzata JS2E versione 1.5 di Karsten Samaschke, Apogeo editrice Vogliamo realizzare un'applicazione di tipo CRUD (Create, Read, Update,
Dettagli10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.
ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31
DettagliScrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i
Esercizi PHP 1. Scrivere uno script PHP che produca in output: 1. La tabellina del 5 2. La tavola Pitagorica contenuta in una tabella 3. La tabellina di un numero ricevuto in input tramite un modulo. Lo
Dettagli1. ACCESSO AL PORTALE easytao
1. ACCESSO AL PORTALE easytao Per accedere alla propria pagina personale e visualizzare la prescrizione terapeutica si deve possedere: - un collegamento ad internet - un browser (si consiglia l utilizzo
DettagliPRE-REQUISITI PER L'USO DELLO STRUMENTO
PRE-REQUISITI PER L'USO DELLO STRUMENTO Il sistema è stato testato su PC Microsoft Windows (Xp Sp 2 / Vista / 7) Con Browser Internet Explorer, Google Chrome; Occorre aver installato Adobe Acrobat Reader
Dettagli4. Un ambiente di sviluppo per Java
pag.15 4. Un ambiente di sviluppo per Java Esistono in commercio molti ambienti di sviluppo utilizzati dai programmatori Java, in particolare si tratta di editor complessi che mettono a disposizione tools
DettagliCOME CREARE E COLLEGARSI AD UN DATABASE MICROSOFT SQL SERVER O SUN MYSQL
Codice documento 08052301 Data creazione 23/05/2008 Ultima revisione 06/06/2013 Software DOCUMATIC Versione 7 COME CREARE E COLLEGARSI AD UN DATABASE MICROSOFT SQL SERVER O SUN MYSQL Questo documento spiega
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.
DettagliLaboratorio di sistemi Tag personalizzati Jsp [NetBeans] Sezione A
Sezione A In NetBeans creiamo una applicazione web nel solito modo, confermando tutte le impostazioni proposte senza alcuna variazione. Per costruire una libreria di tag personalizzata, costruiamo innanzitutto
Dettagli1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org
1 Applicazione J2EE sul SAP WAS con SAP NWDS http://desvino.altervista.org Applicazione J2EE sul SAP WAS con SAP NWDS. Il SAP Web Application Server fornisce un framework integrato per lo sviluppo e l
DettagliLaboratorio di sistemi MVC Jsp [NetBeans]
Estratto da "http://it.wikipedia.org/wiki/model-view-controller" Definizione Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllore) è il nome di un design pattern fondamentale
DettagliObiettivi 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
DettagliCorso 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
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
DettagliManuale Operativo. Firma Elettronica COD. PROD. D.9.3
Manuale Operativo Firma Elettronica COD. PROD. D.9.3 Indice Firma elettronica- Descrizione.3 Utilizzo della firma digitale..4 Avvio e configurazione 4 Login di accesso 4 Apposizione della firma digitale.5
DettagliLa gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
DettagliAGGIORNAMENTO DATI SU PORTALE DOCENTI
AGGIORNAMENTO DATI SU PORTALE DOCENTI Il sito http://docenti.unicam.it consente agli utenti di accedere alle informazioni sui docenti dell' Università di Camerino: curriculum, carichi didattici, pubblicazioni,
DettagliInstallazione LAMP. Installare un server lamp su Linux Ubuntu. Per installare un server LAMP in Ubuntu come prima cosa apriamo il terminale:
Installazione LAMP Installare un server lamp su Linux Ubuntu Per installare un server LAMP in Ubuntu come prima cosa apriamo il terminale: Poi copiamo ed incolliamo nel terminale il comando: sudo apt-get
DettagliIl Protocollo HTTP e la programmazione di estensioni Web
Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);
DettagliMANUALE D USO DELLA PIATTAFORMA ITCMS
MANUALE D USO DELLA PIATTAFORMA ITCMS MANULE D USO INDICE 1. INTRODUZIONE... 2 2. ACCEDERE ALLA GESTIONE DEI CONTENUTI... 3 3. GESTIONE DEI CONTENUTI DI TIPO TESTUALE... 4 3.1 Editor... 4 3.2 Import di
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
DettagliLaboratorio di Sistemi Fondamenti di JDBC (parte2) Java. Implementare l'ereditarietà nel modello Relazionale
Implementare l'ereditarietà nel modello Relazionale Fig. 1 Un semplice diagramma di classe Consideriamo il diagramma di classe della Fig. 1 (per esercizio, implementate questo diagramma UML in Java, non
DettagliRealizzare una piccola chat in php senza database
Realizzare una piccola chat in php senza database L obiettivo di questa guida è implementare una semplice chat in linguaggio php, facilmente inseribile in qualsiasi sito. La chat che realizzeremo avrà
DettagliIl sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.
SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo
DettagliProcedura di iscrizione alla Piattaforma On Line
PUNTO 1 Procedura di iscrizione alla Piattaforma On Line Accedere dal proprio browser internet al sito: http://www.qeselearning.it/ NOTA: è preferibile utilizzare Chrome o Firefox La schermata che le apparirà
DettagliGuida all uso. Esso sarà riportato nell intestazione. Vediamo:
faxm@il è un applicazione che permette agli utenti dei sistemi di telefonia IP di inviare, ricevere e gestire fax. Il tradizionale sistema di fax è ormai superato. Con faxm@il non riceviamo né spediamo
DettagliLABORATORIO DI INFORMATICA 1 2014-2015. - parte 6 -
LABORATORIO DI INFORMATICA 1 2014-2015 - parte 6 - Lettura da File Obiettivo: leggere un file Per prima cosa dobbiamo creare un oggetto che rappresenti il file che vogliamo utilizzare (inserendo anche
DettagliApprofondimenti. Il controllo di SQL Injection nelle pagine ASP e ASP.NET. U.A. 5 - Database in rete con le pagine ASP e ASP.
U.A. 5 - Database in rete con le pagine ASP e ASP.NET 269 Il controllo di SQL Injection nelle pagine ASP e ASP.NET Approfondimenti Con il termine SQL Injection si intende l aggiunta di istruzioni SQL nell
DettagliEsercitazione 4 JDBC
JDBC Obiettivi dell esercitazione Familiarizzare con l'organizzazione dell'ambiente di lavoro per la realizzazione di applicazioni Java Utilizzare i costrutti di base della libreria JDBC per 1. la gestione
DettagliCodifica: dal diagramma a blocchi al linguaggio C++
Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU
DettagliA T I C _W E B G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O. Rev. 2.1
G U I D A AL L A N A V I G A Z I O N E S U L S I T O D E L G R U P P O A T I C _W E B Rev. 2.1 1 1. ISCRIZIONE Le modalità di iscrizione sono due: Iscrizione volontaria Iscrizione su invito del Moderatore
DettagliLa gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.
La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare
DettagliAppunti di Informatica www.mimmocorrado.it 1
Installare Java Il programma può essere scaricato dal seguente indirizzo: http://www.java.com/it/download/windows_ie.jsp?locale=it&host=www.java.com Per installare la JDK è necessario: 1. scaricare il
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
DettagliClient e Server comunicano tramite il protocollo SOAP.
In questo tutorial implementeremo un semplice SOAP web service in PHP che un client Java richiamerà. In questo modo mostreremo l'interoperabilità fra linguaggi diversi che SOAP permette di avere. La struttura
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
DettagliSicurezza Informatica: Tecniche di SQL INJECTION
Sicurezza Informatica: Tecniche di SQL INJECTION Pietro Bongli Aprile 2004 N.B. L'informazione contenuta in queste pagine è divulgata per scopi puramente didattici e non per ni illegali. Structured Query
DettagliObiettivo dell esercitazione
Database e Web - Esercitazioni ASP - Andrea Proli proliand@csr.unibo.it Laboratorio di Basi di Dati A.A. 2005/2006 Obiettivo dell esercitazione L obiettivo finale dell esercitazione è quello di creare
Dettagli