DIGITAL FOLDER Pesatori Carlo http://filibusta.crema.unimi.it/~cpesatori/ Tecnologie Utilizzate • • • • • • • Jsp (Java Server Pages) XML XML-Schema XSLT CSS MySQL Estensiooni package JDOM Organizzazione logica • Presentazione • Raccolta • Persistenza • Denominatore comune Dinamicità Presentazione Nella presentazione utilizziamo le tecnologie : - JSP - XSLT - CSS - HTML Perché ? Perché sono strumenti abbastanza intuitivi e free. Raccolta Per la raccolta dei dati utilizziamo XML … Perché ? Permette una totale portabilità e flessibilità. <?xml version="1.0" encoding="ISO-8859-1" ?> <modulo> <sezione etichetta="Anagrafica"> <campo etichetta="cartella" tipo="textbox" ref_db="cartella"> </campo> </sezione> </modulo> Persistenza Dati • MySQL 4.x Perché ? E’ gratuito e molto potente. Configurazione : dipende dal S.O. Risorse Tomcat 5.x : http://tomcat.apache.org/download-55.cgi Mysql 4.x : http://dev.mysql.com/downloads/mysql/4.1.html JDK 1.5.x : http://java.sun.com/j2se/1.5.0/download.jsp (scaricabile sia NetBeans che jdk) Connector : http://dev.mysql.com/downloads/connector/ Editor : Contex oppure NetBeans Problemi di percorso … I primi problemi possono essere iniziali : 1)Configurazione di base del sistema prima di iniziare … Soluzione : NetBeans ci aiuta inglobando una versione di Tomcat e un potente autocompletamento del codice Quindi prima di mettere mano su configurazioni di tomcat e altri programmi è consigliato NetBeans. 2)Installazione di base di MySQL : Soluzione : Per linux usare possibili RPM o pachetti precompilati, per win non ci sono grossi problemi. Se non avete confidenza con la console di MySql i tool di amministrazione di MySql sono molto utili Altri Problemi … Problemi lato java … Serve una conoscenza base di programmazione ad oggetti per non essere spaesati nella lettura e scrittura del codice, soprattutto iniziare a capire la filosofia di Tomcat/JSP che vede i siti creati con queste tecnologie come vere e proprie applicazioni. Problemi lato SQL … Serve conoscere un minimo di interrogazioni SQL quali : SELECT colonna_t1,colonna_t2 FROM nome_t Oppure SELECT colonna_t1,colonna_t2 FROM nome_t WHERE nomecampo=‘valore’ Oppure CREATE TABLE anagrafica(cartella char(30) primary key not null) Problemi di connessione Altro problema riscontrato durante il progetto : Connessione con il database MySQL … Esistono infatti vari driver per la connessione ai database come JODBC (incluso in java). Utilizzare jar esterni per aumentare la facilità di stesura del codice come jdom(per la gestione degli XML) e i driver di MySQL sul sito di MYSQL. Installazione semplice : basta mettere i jar che vogliamo aggiungere nella seguente directory : $JAVA_PATH/jre/lib/ext e verranno automaticamente viste dal compilatore JVM(java virtual machine) SVILUPPO - Introduzione di grafici per analisi statistiche (esistono delle estensioni di XML per formattare i dati e far generare automaticamente grafici anche molto complessi) - Internazionalizzazione del DB e dell’interfaccia (Grazie all’uso dei CHARSET si può rendere visibile il testo in vari paesi extra-europei) - Implementazione di un’ involucro per la sicurezza e per le trasmissioni (JSP offre una vasta gamma di tutorial e classi per utilizzare SSL e le login sicure) - Modellare il programma preesistente creando una sorta di auto-inizializzatore Frammenti di codice … • Gestione dell’XML • Accesso DB • Passaggio Parametri fra FORM XML try { xml_file = new File("c://anagrafica.xml"); SAXBuilder builder = new SAXBuilder(); try{ Document doc = builder.build(xml_file); Element root = doc.getRootElement(); Element sezione = root.getChild("sezione"); List allChildren = sezione.getChildren(); List subChildren; int size = allChildren.size(); DB try { Connection con; //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/melanoma",“usernam e", “psw"); Statement st=con.createStatement(); System.out.println("carattere merdoso : " + ref_db); st.executeUpdate("ALTER TABLE " + ref_tab +" ADD COLUMN "+ref_db+" char(30)"); } catch(ClassNotFoundException e){ System.out.println("ERRORE CLASS : "+ e); } catch (SQLException e){ System.out.println("Impossibile caricare il driver: "+ e); } Passaggio Parametri Page1 HTML/jsp …. <form name=“p1” action=“./page2” method=“POST”> <input type=“textbox” name=“nome” value=“”> <input type=“submit” value=“label”> </form> …. Page2 JSP …. //creo var String val=“”; //assegno val = request.getParameter (“nome”); //stampa val Out.printn(val); ….