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"); } } }

Rispondi quotando

