| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  12-04-2006, 13:10 | #1 | 
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | 
				
				Jsp,servlet,jdom,bean: primi passi
			 
		Ciao a tutti. Apro questa discussione per rivolgere domande ai piu esperti su queste tecnologie, visto che sono alle prime armi. Il mio primo problema è questo. Ho una pagina HTML e una JSP. Ecco i codici. Codice: <html> <head> <title>Scelta Compagnia</title> </head> <body> <form action="benvenuto.jsp" METHOD="get"> Scegli la compagnia:<br> <input type="radio" name="compagnia" value="Alitalia"> Alitalia <br> <input type="radio" name="compagnia" value="KLM"> KLM <br> <input type="radio" name="compagnia" value="British Airways"> British Airways <br> <input type="hidden" name="pagina" value="scelta_compagnia"> <button type="submit">Vai alla Compagnia scelta</button> </form> </body> </html> Codice: <html>
 <head>
  <title>Benvenuto</title>
 </head>
 <body>
  <%String compagnia = request.getParameter("compagnia");
   
    if(request.getParameter("pagina")=="scelta_compagnia")
       {out.println("Benvenuto alla pagina della compagnia di volo: " + compagnia);}
    else
       {out.println("Bentornato alla pagina della compagnia di volo: " + compagnia);} %>
 </body>
</html>Grazie. | 
|   |   | 
|  12-04-2006, 13:27 | #2 | 
| Senior Member Iscritto dal: Oct 2002 Città: Roma 
					Messaggi: 1502
				 | 
		if(request.getParameter("pagina").equals("scelta_compagnia")) ... 
				__________________ Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals | 
|   |   | 
|  12-04-2006, 18:34 | #3 | 
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | 
		Ho risolto, grazie mille!!!  Ora ho un altro problema. Ho un file xml e sto scrivendo una classe java per accederci. Questo è l'xml: Codice: <database> <volo> <compagnia>Alitalia</compagnia> <partenza>Nap</partenza> <destinazione>rom</destinazione> <tipo>scalo</tipo> <oraPartenza>11</oraPartenza> <minutiPartenza>40</minutiPartenza> <postiBusiness>300</postiBusiness> <postiEconomy>14</postiEconomy> <prezzoBusiness>200</prezzoBusiness> <prezzoEconomy>100</prezzoEconomy> </volo> </database> Codice: import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import java.io.File;
import java.io.FileNotFoundException;
import javax.xml.parsers.ParserConfigurationException; 
import org.xml.sax.SAXException;
import java.io.IOException;
import org.xml.sax.SAXParseException;
public class GestioneDB{
	
	private Document document;
	String file = "E:\\Programmi\\Apache Software Foundation\\Tomcat 5.5\\webapps\\appello2\\voli.xml";
	
	//Costruttore
	public GestioneDB(){
		try{
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			factory.setValidating(true);
			DocumentBuilder builder = factory.newDocumentBuilder();
			
			//Creao un Node che si riferisce al file "voli.xml"
			document = builder.parse(new File(file));
		}
		catch(ParserConfigurationException e){}
		catch(SAXException r){r.printStackTrace();}
		catch(FileNotFoundException me){}
		catch(IOException t){}}
		
		
	//Metodi
	public void cercaVolo(){
		Document doc = (Document) document;
		System.out.println(doc.getNodeName());
	}        	                
} | 
|   |   | 
|  12-04-2006, 18:40 | #4 | 
| Member Iscritto dal: Apr 2004 
					Messaggi: 252
				 | 
		La prima cosa che mi salta all'occhio è che il path del file ha un sacco di spazi...dalla quello che ho potuto vedere java e gli spazi nei path non vanno granchè d'accordo..prova a spostare tuo xml in un path senza spazi.
		 | 
|   |   | 
|  12-04-2006, 19:10 | #5 | 
| Senior Member Iscritto dal: Apr 2000 Città: Naples 
					Messaggi: 3903
				 | 
		Boysna questo mi pare proprio uguale all'esame di TSW del professor Costagliola o mi sbaglio    
				__________________ Cancellato stare lucido dal mio vocabolario -Speaker Cenzou- | 
|   |   | 
|  12-04-2006, 20:12 | #6 | 
| Senior Member Iscritto dal: Oct 2002 Città: Roma 
					Messaggi: 1502
				 | 
		Io per l'xml uso la libreria JDom
		 
				__________________ Sun Certified Java Programmer EUCIP Core Level Certified European Certification of Informatics Professionals | 
|   |   | 
|  12-04-2006, 22:50 | #7 | |
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | Quote: 
   | |
|   |   | 
|  12-04-2006, 22:59 | #8 | |
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | Quote: 
 Secondo me l'errore è nel file xml, ma non vedo quale sia. Il file è di una struttura molto semplice. | |
|   |   | 
|  12-04-2006, 23:00 | #9 | |
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | Quote: 
 | |
|   |   | 
|  13-04-2006, 09:32 | #10 | 
| Member Iscritto dal: Apr 2004 
					Messaggi: 252
				 | 
		Ne provo un'altra...nell'xml c'è l'intestazione o parte diretto col tag database ?? una cosa tipo <?xml version="1.0" encoding="UTF-8"?> | 
|   |   | 
|  13-04-2006, 10:15 | #11 | 
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | 
		Ho messo questo tag ma niente da fare. Comunque puoi cntrollare il codice dela classe GestioneDB se è OK? Ho qualche dubbio in merito.
		 | 
|   |   | 
|  13-04-2006, 11:22 | #12 | 
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | 
		Su un esempio che ho viene importato il pacchetto "com.sun.xml.tree.XmlDocument". Ho provato a importarlo ma mi dice che non esiste.  Sarà che c'è bisogno di questo pacchetto? Ultima modifica di boysna : 13-04-2006 alle 11:22. Motivo: e mancava la e di esempio ke ca.... | 
|   |   | 
|  13-04-2006, 11:34 | #13 | 
| Member Iscritto dal: Apr 2004 
					Messaggi: 252
				 | 
		Allora ho provato...sono riuscito a farmi tornare il nome del tag root ossia database. ho modificato queste righe Codice: factory.setValidating(false); System.out.println(document.getDocumentElement().getTagName()); | 
|   |   | 
|  13-04-2006, 11:59 | #14 | 
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | 
		Pare che il documento xml non era valido. Mancava il DOCTYPE. Ma nonostante sia riuscito a validarlo l'errore rimane sempre.
		 | 
|   |   | 
|  13-04-2006, 13:06 | #15 | 
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | 
		Ho risolto. In GestioneDB dovevo mettere builder.setErrorHandler(new MyErrorHandler) dopo l'istruzione: document = builder.parse(new File(file)). E poi creare la classe MyErrorHandler. Poi ho modificato l'xml mettendo un attributo al "volo", cosi: Codice: <database> <volo id="sdhfhc"> <compagnia>Alitalia</compagnia> <partenza>Nap</partenza> <destinazione>rom</destinazione> <tipo>scalo</tipo> <oraPartenza>11</oraPartenza> <minutiPartenza>40</minutiPartenza> <postiBusiness>300</postiBusiness> <postiEconomy>14</postiEconomy> <prezzoBusiness>200</prezzoBusiness> <prezzoEconomy>100</prezzoEconomy> </volo> </database> Io ho fatto questo: Codice: public void cercaVolo(String compagnia){
		Element root = document.getDocumentElement();
		
		//Ciclo sui figli di database
		for (int i=0; i<root.getChildNodes().length(); i++ ) {
			 //Ciclo sui figli di volo
             for(int j = 0; j< root.getChildNodes().item(i).getChildNodes().length(); j++){
             	    if(root.getChildNodes().item(i).getChildNodes().item(j).getNodeName()=="compagnia"){
             	    	if(root.getChildNodes().item(i).getChildNodes().item(j).getChildNodes(1).getNodeName().isequal(compagnia)){
             	    		System.out.println(root.getChildNodes().item(i).getAttribute());
             	    	}
             	    }
             	          
             }
             }
		     
	}Sopratutto perchè dice che uso metodi che non esistono. Mah... | 
|   |   | 
|  13-04-2006, 13:34 | #16 | 
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | 
		Ho risolto il problema dei metodi non trovati. Era il length che si chiama getLength(). Comunque ora lo compila ma mi restituisce un errore di null pointer. Ecco il codice aggiornato: Codice: public class GestioneDB{
	
	private Document document;
	String file = System.getProperty("user.dir") + "\\" + "voli.xml";
	
	//Costruttore
	public GestioneDB(){
		try{
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			factory.setValidating(true);
			DocumentBuilder builder = factory.newDocumentBuilder();
			
			//Creao un Node che si riferisce al file "voli.xml"
			builder.setErrorHandler(new MyErrorHandler());
			document = builder.parse(new File(file));
		    
		}
		catch(ParserConfigurationException e){}
		catch(SAXException r){r.printStackTrace();}
		catch(FileNotFoundException me){}
		catch(IOException t){}}
		
		
	//Metodi
	public void cercaVolo(String compagnia){
		Element root = document.getDocumentElement();
		
		
		//Ciclo sui figli di database
		for (int i=0; i<root.getChildNodes().getLength(); i++ ) {
			 //Ciclo sui figli di volo
             for(int j=0; j< root.getChildNodes().item(i).getChildNodes().getLength(); j++){
             	    if(root.getChildNodes().item(i).getChildNodes().item(j).getNodeName()=="compagnia"){
             	    	if(root.getChildNodes().item(i).getChildNodes().item(j).getChildNodes().item(1).getNodeName()==compagnia){
             	    		System.out.println(root.getChildNodes().item(i).getAttributes());
             	    	}
             	    }
             	          
             }
             }
		     
	} | 
|   |   | 
|  13-04-2006, 18:55 | #17 | 
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | 
		Qualcuno mi dice com'è la struttura ad albero di questo file xml? Codice: <database> <prodotto id="tre"> <categoria>notebook</categoria> <marca>Asus</marca> <modello>3200+</modello> <quantita>5</quantita> <prezzo>11</prezzo> <giornoImmissione>4</giornoImmissione> <meseImmissione>3</meseImmissione> <annoImmissione>2006</annoImmissione> <rata>si</rata> <numeroRate>24</numeroRate> </prodotto> </database> | 
|   |   | 
|  13-04-2006, 22:38 | #18 | |
| Senior Member Iscritto dal: Mar 2004 Città: castel san giorgio(salerno) 
					Messaggi: 1218
				 | Quote: 
 Il problema ora è un altro però. Guarda piu giu. grazie e scusa ancora. | |
|   |   | 
|  14-04-2006, 09:45 | #19 | 
| Member Iscritto dal: Apr 2004 
					Messaggi: 252
				 | 
		La struttura ad albero dovrebbe essere database ha come figlio prodotto che ha come figli tutti gli altri. Ma sei obbligato a usare dom? perchè se usi dom4j è molto + semplice la cosa. | 
|   |   | 
|  14-04-2006, 12:53 | #20 | |
| Senior Member Iscritto dal: Apr 2000 Città: Naples 
					Messaggi: 3903
				 | Quote: 
   
				__________________ Cancellato stare lucido dal mio vocabolario -Speaker Cenzou- | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 14:42.









 
		 
		 
		 
		







 
  
 



 
                        
                        










