import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class EmpEdit extends HttpServlet 
{
  Connection conn = null;

  private static final String CONTENT_TYPE = "text/html; charset=windows-1252";

  public void init(ServletConfig config) throws ServletException
  {
    super.init(config);
  }

  void form_field (
    PrintWriter out
  , String field_type
  , String prompt
  , String field_name
  , String field_value
  , int maxlength
  )
  {
    out.println (
      "<tr><td><b>"
    + prompt
    + "</b></td><td>"
    );

    if (field_type == "EDIT") {
      out.println (
        "<input type=\"text\" name=\""
      + field_name
      + "\" value=\""
      + field_value
      + "\" maxlength=\""
      + maxlength
      + "\">"
      );
    }
    else if (field_type == "TEXT")
    {
      out.println(field_value);
    }

    out.println("</td></tr>");
  }

  public void doGet (
    HttpServletRequest request
  , HttpServletResponse response
  ) throws ServletException, IOException
  {
    response.setContentType(CONTENT_TYPE);
    PrintWriter out = response.getWriter();
    
    try {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "scott", "tiger");
    }
    catch (ClassNotFoundException e) {
    out.println(e);
    }
    catch (SQLException se) {
    out.println("ERROR: " + se.toString());
    }

    String t_empno = request.getParameter("p_id");

    String query =
      "select ename, job, to_char(hiredate, 'dd.mm.yyyy') "
    + "from emp where empno = " + t_empno;

    out.println (
      "<html>"
    + "<head><title>Edit Employee</title></head>"
    + "<body><h3>Edit Employee</h3>"
    );

    try {
      Statement stmt = conn.createStatement();
      ResultSet rs = stmt.executeQuery(query);

      if (rs.next()) {
        out.println("<form action=\"EmpUpd\">");
        out.println("<input type=\"hidden\" name=\"p_id\" value=\"" + t_empno + "\">");
        out.println("<table border=0 cellspacing=0 cellpadding=2>");

        form_field(out, "TEXT", "Employee ID", null, t_empno, 10);
        form_field(out, "EDIT", "Last name", "p_ename", rs.getString(1), 10);
        form_field(out, "EDIT", "Job", "p_job", rs.getString(2), 9);
        form_field(out, "EDIT", "Hiredate", "p_hiredate", rs.getString(3), 10);

        out.println("</table><input type=\"submit\" value=\"Save\"></form>");
      }
      else {
        out.println("<h3>Employee " + t_empno + " not found.</h3>");
      }

      rs.close();
      stmt.close();
    }
    catch (SQLException se) {
      se.printStackTrace(out);
    } finally {
      if (conn != null) {
        try {
          conn.close();
        } catch (SQLException ignored) {}
      }
    }

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