/*
 *
 */

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 *
 *
 * @author Wolfgang Beer
 */

public class StorageServlet extends HttpServlet {
    private static final String FILENAME = "entries.txt";
    private static Vector cache;

    static {
        cache = new Vector();
        try{
            File f = new File(FILENAME);
            if(f.exists()){
            	FileInputStream i = new FileInputStream(f);
            	ObjectInputStream in = new ObjectInputStream(i);
           	 	cache  =(Vector) in.readObject();
				in.close();
			}
        }catch(Exception e){
            e.printStackTrace();
        }

    }



    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
    {
        //ResourceBundle rb = ResourceBundle.getBundle("LocalStrings",request.getLocale());

        PrintWriter out = response.getWriter();

        if((request.getParameter("text")!=null)&&(request.getParameter("text").length()>5)){

            Msg m = new Msg(request.getParameter("name"),
                            request.getParameter("email"),
                            request.getParameter("homepage"),
                            request.getParameter("text"));


            cache.addElement( m );
			File f = new File(FILENAME);
            if(f.exists()){
            	FileOutputStream o = new FileOutputStream(f);
            	ObjectOutputStream oout = new ObjectOutputStream(o);
            	oout.writeObject(cache);
            	oout.flush();
            	oout.close();
			}

        }


        printDefaultPage(out);

    }


    private void printDefaultPage( PrintWriter out ){
        Enumeration e = cache.elements();
        while(e.hasMoreElements()){
            Msg m =(Msg)e.nextElement();
            out.println(m.name+"|"+m.date+"|"+m.email+"|"+m.hp+"|"+m.text+"|");
		}
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
        doGet(request, response);
    }

}




