// 이 프로그램은 하동욱님의 서블릿 강좌 예제를
//  토대로 만들어 졌습을 밝힘니다.
/*
	게시판의 기초적인 기능만 만들어 보았으니 관심 있으신분은
	추가적인 기능을 추가해보시면 좀더 나은 게시판이
	될것 같네요.

	질문사항이나 조언해주실분 메일부탁드립니다.

	email : batmanii@dreamx.net
*/
import java.io.*;
import java.sql.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
/**----------------------------------------------------------------------------
 * BoardInput_db *
 * author  batmanii
 * version 1.0 (2000/07/22)
 */
///////////////////////////////////////////////////////////////////////////////
public class BoardUpdate_db extends HttpServlet
{
    Date   date;
    int num;
    String name;
    String email;
    String title;
    String content;
    String password;
    //웹서버로 부터 읽어 드릴 값들을 저장하기 위한 필드들


    PrintWriter out;

    public void doPost(HttpServletRequest req, HttpServletResponse res)	throws ServletException,IOException
    {
    		UpdateItem updateItem = new UpdateItem();
       		String url="jdbc:oracle:thin:@localhost:1521:etri";
        		Connection con;
       		Statement stmt;

        		res.setContentType("text/html;charset=euc-kr");
      		out = res.getWriter();

        		num = Integer.parseInt(req.getParameter("num"));
      		email = req.getParameter("email");
      		title = req.getParameter("title");
       		content = req.getParameter("content");
        		password = req.getParameter("password");
        		// getParameter메소드를 이용해 input.html로 부터 전달된 데이터를 얻습니다.
        		// 전달된 데이터드을 할글처리를 위해 ByteToKSC5601을 이용해 변환합니다.

      		date = new Date();
        		// Date객체하나 만들고..

		try
		{
	  		updateItem.loadDriver();
		}
		catch(java.lang.ClassNotFoundException e)
		{
	  		System.err.print("ClassNotFoundException:");
	  		System.err.println(e.getMessage());
		}
		catch(Exception e)
		{
	   		System.err.println(e);
		}

		out.println(HTMLLib.getHTMLTitle("글 수정"));
		out.println("<body>");
		try
		{
			updateItem.update(num, email, title, content, password, req.getRemoteAddr());
	 	}
	 	catch(SQLException ex)
	 	{
   	 		System.err.println("SQLException : " + ex.getMessage());
	 	}
   		out.println("<script>alert('수정이 완료되었습니다.');self.location='BoardList_db'</script>");
   		// 메타테그에 관해서는 따로 설명하지 않겠습니다. Client Pull이라고 하는데... refresh 메타테크를
   		// 사용하면 좀더 동적인 문서를 만들 수 있다고 합니다. 따라서 이 문장은 3초후에 url에 지정된
   		// ViewDataListServlet을 불러 오게 합니다.
   		out.println("</body></html>");
   	}



   // 데이타베이스에 쓸때
   public String toHangul(String str)
   {
      if (str == null)
             return null;
      try  {
         return new String(str.getBytes("8859_1"), "KSC5601");
      } catch (UnsupportedEncodingException e) {
      }
      return null;
   }

//한글을 데이터베이스의 유니코드로 변환
   public String hangulTo(String str)
   {
      if (str == null)
            return null;
      try {
            return new String(str.getBytes("KSC5601"), "8859_1");
      } catch (UnsupportedEncodingException e) {
      }
      return null;
   }
}
