Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JSP] Scrivere un file sul server con JSP

    Salve ragazzi! Sono 2 o 3 giorni che batto la testa contro un muro! Il problema è il seguente: Devo scrivere su un file (guestbook.dat) dei dati. Riesco a scrivere i dati ma poi quando vado a leggere i dati dal file quello che riesco a visualizzare è solo il dato che ho scritto al primo inserimento. Ecco il codice

    codice:
    import java.io.*;
    
    import javax.servlet.*;
    
    import javax.servlet.http.*;
    import tools.*;
    
    
    
    public class Add extends HttpServlet {
    
    
    
     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
      PrintWriter printWriter=response.getWriter();
    
      response.setContentType("text/html");
    
    
      if(
       !Analyzer.isValidForm(
        request.getParameter("username"),
        request.getParameter("electronicMail"),
        request.getParameter("subject"),
        request.getParameter("message")
       )
      ) {
    
       HttpSession session=request.getSession();
       Post post=new Post(
        request.getParameter("username"),
        request.getParameter("electronicMail"),
        request.getParameter("subject"),
        request.getParameter("message")
       );
       UserError userError=new UserError();
    
       StringBuffer errorMessage=new StringBuffer("Si è verificato un imprevisto.
    Per favore compilare il modulo correttamente.");
    
       if(!Analyzer.isValidUsername(request.getParameter("username"))) {
    
        errorMessage.append("
    Controllare il campo \"Username\".");
        post.setUsername("");
    
       }
    
       if(!Analyzer.isValidElectronicMail(request.getParameter("electronicMail"))) {
    
        errorMessage.append("
    Controllare il campo \"E-mail\".");
        post.setElectronicMail("");
    
       }
    
       if(!Analyzer.isValidSubject(request.getParameter("subject"))) {
    
        errorMessage.append("
    Controllare il campo \"Oggetto\".");
        post.setSubject("");
    
       }
    
       if(!Analyzer.isValidMessage(request.getParameter("message"))) {
    
        errorMessage.append("
    Controllare il campo \"Messaggio\".");
        post.setMessage("");
    
       }
    
       userError.setErrorMessage(errorMessage.toString());
       userError.setURL("/Guestbook/form");
    
       session.setAttribute("userError", userError);
       session.setAttribute("post", post);
    
       response.sendRedirect(userError.getURL());
    
      } else {
    
       Post post=new Post(
        request.getParameter("username"),
        request.getParameter("electronicMail"),
        request.getParameter("subject"),
        request.getParameter("message")
       );
    
       Post post2;
    
       try {
    
        FileOutputStream fileOutputStream=new FileOutputStream("guestbook.dat", true); // throws FileNotFoundException
        ObjectOutputStream objectOutputStream=new ObjectOutputStream(fileOutputStream); // throws IOException
    
        objectOutputStream.writeObject(post); // throws IOException
    
        objectOutputStream.flush();
        objectOutputStream.close();
    
        FileInputStream fileInputStream=new FileInputStream("guestbook.dat"); // throws FileNotFoundException
        ObjectInputStream objectInputStream=new ObjectInputStream(fileInputStream);
    
        do {
    
         post2=(Post)objectInputStream.readObject(); // throws IOException, ClassNotFoundException
    
         if(post2!=null) {
    
          printWriter.println(post2.getUsername()+"
    ");
          printWriter.println(post2.getElectronicMail()+"
    ");
          printWriter.println(post2.getSubject()+"
    ");
          printWriter.println(post2.getMessage()+"
    ");
          printWriter.println("
    ");
          printWriter.println("
    ");
    
         }
    
        } while(post2!=null);
    
        objectInputStream.close();
    
       } catch(Exception exception) {
    
        HttpSession session=request.getSession();
        UserError userError=new UserError();
    
        userError.setErrorMessage("Si è verificato un imprevisto. Riprovare o contattare l'amministratore.");
        userError.setURL("/Guestbook/form");
    
        session.setAttribute("userError", userError);
        session.setAttribute("post", new Post());
    
        // response.sendRedirect(userError.getURL());
        exception.printStackTrace();
    
       }
    
    
       printWriter.println("No error");
       // response.sendRedirect("/Guestbook/view");
    
      }
    
    
    
     }
    
    
    
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Ho spostato la discussione nel forum Java e ho modificato il titolo, dato che, in questo caso, è più corretto parlare di Servlet che di JSP (non essendovi nessuna pagina JSP legata al problema).

    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

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Ad ogni modo il problema è che utilizzi un ObjectOutputStream che, come documentato, non supporta l'append dei dati.

    Quindi, l'unico modo che hai a disposizione per lavorare con questo strumento, è quello di rileggere ogni volta il file e riscriverlo da zero, con il contenuto precedente.


    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

  4. #4

    re

    Grazie LeleFT per il tuo aiuto! Grazie a te ho risolto!












    Comunque, sempre e dovunque PHP Rulezzzzzzzzzzzzzzzzzz!

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.