Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209

    Creare e scrivere su file

    Ciao,
    devo fare una servlet che prenda dei valori da database e li scriva su file...
    il problema è che il file non me lo crea e non ci scrive dentro...
    qualcuno sa dirmi il perchè?
    Grazie mille per la risposta.
    Codice PHP:
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.net.*;
    import java.util.*;
    import java.sql.*;
    import javax.swing.*;

    public class InsDatiDB extends HttpServlet {

        public void doPost(HttpServletRequest request, HttpServletResponse response) 
        throws IOException, ServletException {
        PrintWriter out = response.getWriter();
        Connection connection = null;
        
        try {
            
            /*************************************************SECONDA PARTE******************************************
            ************************************************CREAZIONE FILE XML*****************************************
            **********************************************STAMPA A VIDEO IN HTML***************************************/
            
            File fileXml = new File("risultati.xml");
            
            if(fileXml.exists())
              fileXml.delete();
            else
              fileXml.createNewFile();
            
              int verificaFile = 0;
              //fileXml = new File("risultati.xml");
              PrintWriter streamRisultati = new PrintWriter(new FileWriter(fileXml));
                  
              streamRisultati.print("<?xml version=\"1.0\"?>");
              
    streamRisultati.print("\n");
              
    streamRisultati.print("<?xml-stylesheet type=\"text/xml\" href=\"xmlLast.xsl\"?>");
              
    streamRisultati.print("\n");
              
    streamRisultati.print("<risultatiPartiteXml xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"xmlLast.xsd\">");
              
    streamRisultati.print("\n");
              
    streamRisultati.print("\n");
                
              
    String sqlPartita "SELECT * FROM partita ORDER BY data DESC";
            
              
    Statement stPartita connection.createStatement();
              
    ResultSet rsPartita stPartita.executeQuery(sqlPartita);
                
              while(
    rsPartita.next()) {
                
    int idPartitaXml rsPartita.getInt("id_partita");
                  
    String dataXml rsPartita.getString("data");
                  
    String squadraXml rsPartita.getString("squadra");
                  
    String nome null;
                  
                  if (
    squadra.equals("1"))
                    
    nome="Serie B2";
                  if (
    squadra.equals("2"))
                    
    nome="Under 18";
                  if (
    squadra.equals("3"))
                    
    nome="Under 16";
                  if (
    squadra.equals("4"))
                    
    nome="Under 14";
                  
                  
    String tipoXml rsPartita.getString("tipo");
                  
    String incontroXml rsPartita.getString("incontro");
                  
    int risCasaXml rsPartita.getInt("set_casa");
                  
    int risOspiteXml rsPartita.getInt("set_ospite");
                  
    String risultatoXml risCasaXml " - " risOspiteXml;
                  
    int par1Xml rsPartita.getInt("par1");
                  
    int par2Xml rsPartita.getInt("par2");
                  
    int par3Xml rsPartita.getInt("par3");
                  
    int par4Xml rsPartita.getInt("par4");
                  
    int par5Xml rsPartita.getInt("par5");
                  
    int par6Xml rsPartita.getInt("par6");
                  
    int par7Xml rsPartita.getInt("par7");
                  
    int par8Xml rsPartita.getInt("par8");
                  
    int par9Xml rsPartita.getInt("par9");
                  
    int par10Xml rsPartita.getInt("par10");
                  
    String parzialiXml null;
                  
    parzialiXml "(" par1Xml "-" par2Xml ")(" par3Xml;
                  
    parzialiXml parzialiXml "-" par4Xml ")(" par5Xml;
                  
    parzialiXml parzialiXml "-" par6Xml ")(" par7Xml "-" par8Xml ")(" par9Xml "-" par10 ")";
                  
                  
    streamRisultati.print("<partita>");
                  
    streamRisultati.print("\n");
                  
    streamRisultati.print("\t <id_partita>" idPartitaXml "</id_partita>");
                  
    streamRisultati.print("\n");
                  
    streamRisultati.print("\t <squadra>" nome "</squadra>");
                  
    streamRisultati.print("\n");
                  
    streamRisultati.print("\t <tipo>" tipoXml "</tipo>");
                  
    streamRisultati.print("\n");
                  
    streamRisultati.print("\t <incontro>" incontroXml "</incontro>");
                  
    streamRisultati.print("\n");
                  
    streamRisultati.print("\t <risultato>" risultatoXml "</risultato>");
                  
    streamRisultati.print("\n");
                  
    streamRisultati.print("\t <parziali>" parzialiXml "</parziali>");
                  
    streamRisultati.print("\n");
                  
    streamRisultati.print("</partita>");
                  
    streamRisultati.print("\n \n");
              
              }
                
                
    streamRisultati.print("</risultatiPartiteXml>");
                
    streamRisultati.print("\n \n");
                
    verificaFile 1;
                
                
    System.out.println("

    Dati inseriti Correttamente, <a href=\"statistica.jsp\">vai avanti</a></p>"
    );
                
    streamRisultati.close();
                
              
              
    response.setContentType("text/html");
          
              
    out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
              
    out.println("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
              
    out.println("<head>");
              
    out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />");
              
    out.println("<title>Rilevamenti statistici della Societ&agrave; Crema Volley S.r.l.</title>");
              
    out.println("<link href=\"css/crema-style.css\" rel=\"stylesheet\" type=\"text/css\" />");
              
    out.println("<script language=\"JavaScript\" type=\"text/javascript\" src=\"script/script.js\"></script>");
              
    out.println("</head>");

              
    out.println("<body>");
              
    out.println("<div id=\"master-centrato\">");
              
    out.println("<div id=\"header\">");
              
    out.println("<div id=\"logo\"><img src=\"img/logo.gif\" alt=\"Crema Volley\" width=\"320\" height=\"112\" /></div>");
              
    out.println("<div id=\"spazio-banner\">");
              
    out.println("<div id=\"contenitore-banner\" align=\"right\">
    "
    );
              
    out.println("</div>");
              
    out.println("</div>");
              
    out.println("</div>");
              
    out.println("<div id=\"menu\">");
              
              
    out.println("<div id=\"menu-tendina\" onMouseOver=\"MM_showHideLayers('menu-tendina','','show')\" onMouseOut=\"MM_showHideLayers('menu-tendina','','hide')\">");

              
    out.println("<ul>");
              
    out.println("[*]<a href=\"squadre.jsp?squadra=1\">Serie B2</a>"); 
              
    out.println("[*]<a href=\"squadre.jsp?squadra=2\">Under 18</a>"); 
              
    out.println("[*]<a href=\"squadre.jsp?squadra=3\">Under 16</a>"); 
              
    out.println("[*]<a href=\"squadre.jsp?squadra=4\">Under 14</a>");  
              
    out.println("[/list]");
              
    out.println("</div>");
              
    out.println("<div id=\"menu-tendina-ris\" onMouseOver=\"MM_showHideLayers('menu-tendina-ris','','show')\" onMouseOut=\"MM_showHideLayers('menu-tendina-ris','','hide')\">");
              
              
    out.println("<ul>");
              
    out.println("[*]<a href=\"risultati.jsp?squadra=1\">Serie B2</a>"); 
              
    out.println("[*]<a href=\"risultati.jsp?squadra=2\">Under 18</a>"); 
              
    out.println("[*]<a href=\"risultati.jsp?squadra=3\">Under 16</a>"); 
              
    out.println("[*]<a href=\"risultati.jsp?squadra=4\">Under 14</a>");  
              
    out.println("[/list]");
              
    out.println("</div>");

              
    out.println("<div id=\"contenitore-pulsanti\">");
              
    out.println("<div class=\"pulsanti\"><a href=\"index.jsp\" onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('Image35','','img/p-homeAcc.gif',1)\"><img src=\"img/p-home.gif\" alt=\"Home page\" name=\"Image35\" width=\"92\" height=\"26\" border=\"0\" id=\"Image35\"/></a></div>");
              
              
    out.println("<div class=\"pulsanti\">");
              
    out.println("<a href=\"#\" onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('Image36','','img/p-squadreAcc.gif',1)\">");
              
    out.println("<img src=\"img/p-squadre.gif\" alt=\"Le squadre\" name=\"Image36\" width=\"92\" height=\"26\" border=\"0\" id=\"Image36\" onMouseOver=\"MM_showHideLayers('menu-tendina','','show')\" onMouseOut=\"MM_showHideLayers('menu-tendina','','hide')\"/></a></div>");
              
              
    out.println("<div class=\"pulsanti\"><a href=\"#\" onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('Image37','','img/p-risultatiAcc.gif',1)\">");
              
    out.println("<img src=\"img/p-risultati.gif\" alt=\"I risultati\" name=\"Image37\" width=\"92\" height=\"26\" border=\"0\" id=\"Image37\" onMouseOver=\"MM_showHideLayers('menu-tendina-ris','','show')\" onMouseOut=\"MM_showHideLayers('menu-tendina-ris','','hide')\"/></a></div>");
              
              
    out.println("<div class=\"pulsanti\">");
              
    out.println("<a href=\"statistica.jsp\" onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('Image38','','img/p-statisticaAcc.gif',0)\">");
              
    out.println("<img src=\"img/p-statistica.gif\" alt=\"Rilevamenti scout\" name=\"Image38\" width=\"92\" height=\"26\" border=\"0\" id=\"Image38\" /></a></div>");
              
              
    out.println("</div>");
              
              
    out.println("</div>");

              
    out.println("<div id=\"corpo-pagina\">");
              
    out.println("<div id=\"colonna-sinistra\">");
              
    out.println("<div id=\"contenitore-risultati\">");

              
    out.println("</div>");
              
    out.println("</div> ");
              
    out.println("<div id=\"contenitore-page\">");
              
    out.println("<h1>Rilevamento Statistico delle partite - Inserimento Partite</h1>");
              
    out.println("<div id=\"tabella-squadra\">");
              
    out.println("

    Dati inseriti Correttamente, <a href=\"statistica.jsp\">Torna alla pagina delle partite</a></p>"
    );
              
    out.println("</div>");
              
    out.println("</div>");
              
              
    out.println("<div id=\"contenitore-banner-footer\"></div>");
              
    out.println("<div id=\"footer\">");
              
    out.println("<div id=\"footer-scritta\">Crema Volley S.r.l. - Via Indipendenza 97/B - 26013  Crema -<a href=\"#\" class=\"mail\"> [email]info@cremavolley.it[/email]</a></div>");
              
    out.println("</div>");
              
    out.println("");
              
    out.println("</div>");
              
              
    out.println("</body>");
              
    out.println("</html>");
                } 
                catch (
    SQLException e) {
            
    response.setContentType("text/html");
                    
    out.println("

    Dati non inseriti Correttamente, " 
    ", <a href=\"insPartita.jsp\">Riprova</a></p>");
                }
                catch (
    ClassNotFoundException e) {
            
    response.setContentType("text/html");
                    
    out.println("

    Dati non inseriti Correttamente, " 
    ", <a href=\"insPartita.jsp\">Riprova</a></p>");
                }
          catch (
    NullPointerException e) {
            
    response.setContentType("text/html");
            
    out.println("

    Dati non inseriti Correttamente, " 
    ", <a href=\"insPartita.jsp\">Riprova</a></p>");
          }
           catch (
    IOException e) {
            
    response.setContentType("text/html");
            
    out.println("

    Dati non inseriti Correttamente, " 
    ", <a href=\"insPartita.jsp\">Riprova</a></p>");
          }

        }
      
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Creare e scrivere su file

    Originariamente inviato da dtomasini
    devo fare una servlet che prenda dei valori da database e li scriva su file...
    il problema è che il file non me lo crea e non ci scrive dentro...
    La prima questione semmai è stabilire dove deve essere scritto il file. Facendo: new File("risultati.xml"), l'unica cosa sicura è che risultati.xml viene creato nella current working directory (la directory corrente). Già ... ma quando la servlet è in esecuzione nell'application server ... quale è la directory corrente?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Non ho capito la tua domanda ...
    Posso dire però che il file non si crea in nessuna cartella, nè in quella principale, nè in src, nè in classes dentro web-inf....

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da dtomasini
    Non ho capito la tua domanda ...
    Posso dire però che il file non si crea in nessuna cartella, nè in quella principale, nè in src, nè in classes dentro web-inf....
    La "current working directory" è quella che era corrente nel momento in cui è stata avviata la JVM. Quale sia .... dipende da come è stato avviato l'application server (Tomcat o altro). Potrebbe essere es. la "home directory" di Tomcat o la directory di Windows (se gira su Windows) o altro. Sicuramente non è quella in cui tu vorresti scrivere.

    Se vuoi ottenere un path che sia perlomeno relativo alla tua web application, se non sbaglio dovresti usare getRealPath() di ServletContext oppure ad esempio parametrare il path da qualche parte.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    se non metti un path assoluto al file il file viene creato nel server su tomcat e jboss sta sulla cartella bin da dove parte la JVM

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Cioè quindi voi dicete questo?

    Codice PHP:
    fileXml = new File("volley/risultati.xml"); 
    volley è la cartella dove ho inserito il sito.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    Ho provato come qui sopra e il risultato è che non trova il percorso... Quindi il problema è un'altro

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da dtomasini
    questo?

    Codice PHP:
    fileXml = new File("volley/risultati.xml"); 
    Questo è ancora sempre relativo alla "current working directory", qualunque essa sia. Quindi è chiaro che se nella current working directory non c'è una directory 'volley' è ovvio che dà errore.

    Come già detto nella discussione, o metti un path assoluto (non è la cosa più brillante da fare), o usi getRealPath() come ho detto sopra (stando alla documentazione, non va bene se hai fatto un .war) per avere un path che è riferito al "contesto" della tua web application oppure ancora parametri il path da qualche parte.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E' sempre il solito problema: il percorso che hai specificato tu non è un percorso assoluto.
    Un percorso assoluto parte sempre dalla root (esempio: C:/Programmi/Tomcat/webapps/tua_applicazione/volley/).

    Se tu specifichi un percorso relativo (nel tuo caso "volley/") questo verrà cercato dalla current working directory. Ovviamente, visto l'errore, questo non c'è.

    Per quanto riguarda Tomcat, la working directory è la home di Tomcat.

    Secondo me, appena andrai a guardare la home di tomcat (esempio C:\Programmi\Tomcat) ti trovi il tuo bel file xml.


    Per quanto riguarda le web-application i percorsi li puoi specificare in due diversi modi: modo assoluto (come indicato sopra), oppure relativi alla webapp stessa (utilizzando getResourse() e/o getRealPath()). Ad esempio, per accedere alla WEB-INF della tua applicazione dall'interno della servlet, utilizzerai qualcosa del genere:
    codice:
    String pathReale = getServletContext().getRealPath("/WEB-INF/tuofile.xml");
    File f = new File( pathReale );
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    209
    HTML.IT... SE NON CI FOSSE BISOGNEREBBE INVENTARLO!

    Finalmente ho capito tutto e tutto funziona!
    Ragazzi grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.