/*
 * HelloServlet.java
 *
 * Created on 2004512, 2:22
 */

package test;

import java.io.*;
import java.net.*;
import java.util.*;

import javax.servlet.*;
import javax.servlet.http.*;
import com.oreilly.servlet.multipart.*;



/**
 *
 * @author  miao
 * @version
 */
public class HelloServlet extends HttpServlet {

    /** Initializes the servlet.
     */
    public void init(ServletConfig config) throws ServletException {
        super.init(config);

    }

    /** Destroys the servlet.
     */
    public void destroy() {

    }

    /** Processes requests for both HTTP <code>GET</code> and
<code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
    throws ServletException, IOException {

        MultipartParser mp = new MultipartParser(request, 10*1024*1024);
// 10MB
        Part part;
        FilePart fp = null;

        StringBuffer sb = new StringBuffer();
        while ((part = mp.readNextPart()) != null) {
            if(part.isFile()){
                fp = (FilePart)part; //single file submission
                sb.append("<p>Uploading multipart data-- " +
fp.getFileName()  + " with file content type-- "
                        + fp.getContentType() + "</p>");
                try{
                    BufferedReader reader = new BufferedReader(new
InputStreamReader(fp.getInputStream()));
                    sb.append("<H3>Reading file content</H3>");
                    String line = reader.readLine();
                    while(line != null){
                        sb.append(line);
                        line = reader.readLine();
                    }

                }catch(IOException te){
                    te.printStackTrace();
                }
            }else{
                sb.append("<LI>" + part.getName() + " : " +
((ParamPart)part).getStringValue() + "</LI>");
            }
        }
        if(sb.length() == 0){
            sb.append("<H3>No data found in the post action</H3>");
        }


        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Test Servlet For David</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<H1>Test Servlet: simply echos back parameter
values</H1>");

        out.println(sb.toString());

        out.println("</body>");
        out.println("</html>");
        out.close();
    }
}


