package yoonforh.bbs;

/**
 * PostResultServlet.java
 * Copyright (c) 1997 Yoon Kyung Koo. All rights reserved.
 *
 * contact via yoonforh@moon.daewoo.co.kr
 *
 * first release date 1997/10/07
 * @version 1.01a 1998/04/27
 * @author Yoon Kyung Koo
 */


import java.io.*;
import java.util.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

// import sun.security.x509.*;

/**
 * PostResultServlet class
 */
public class PostResultServlet 
		extends HttpServlet {

	public void doPost (HttpServletRequest req, HttpServletResponse res)
		throws ServletException, IOException
	{
        //value chosen to limit denial of service
        if (req.getContentLength() > 12*1024) {  
	    res.setContentType("text/html");
            ServletOutputStream out = res.getOutputStream();
	    out.println("<html><head><title>Too big</title></head>");
	    out.println("<body><h1>Error - content length &gt;12k not ");
	    out.println("</h1></body></html>");
        } else {
	    doGet(req, res);
        }
    }
    
    public void doGet (HttpServletRequest req, HttpServletResponse res)
	throws ServletException, IOException
    {
		res.setContentType("text/html");
		ServletOutputStream out = res.getOutputStream();

		BBSData data=new BBSData();
		data=BBSUtil.getGetData(req);
		String category=req.getParameter("cate");

		// serialize test
		int count=BBSUtil.writeData(category, data);

		// de-serialize test
		// BBSUtil.printHeaders(out, count, 5);
		BBSData new_data=BBSUtil.readData(category, count);
		BBSUtil.printArticleHeader(out, category, new_data.articleNo);
		BBSUtil.printArticle(out, category, new_data);
		BBSUtil.printArticleFooter(out, category, new_data.articleNo);
    }

    public String getServletInfo() {
		return "A servlet that posts an article to web board";
    }
}
