Servlet Java Tutorial

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
  private Connection con = null;
  public void init() throws ServletException {
    try {
      Class.forName("com.sybase.jdbc.SybDriver");
      con = DriverManager.getConnection("jdbc:sybase:Tds:dbhost:7678", "user", "passwd");
    }
    catch (ClassNotFoundException e) {
      throw new UnavailableException("Couldn't load database driver");
    }
    catch (SQLException e) {
      throw new UnavailableException("Couldn't get db connection");
    }
  }
  public void doGet(HttpServletRequest req, HttpServletResponse res)
                               throws ServletException, IOException {
    res.setContentType("text/html");
    PrintWriter out = res.getWriter();
    out.println("Phonebook");
    out.println("");
    HtmlSQLResult result = new HtmlSQLResult("SELECT NAME, PHONE FROM EMPLOYEES", con);
    out.println("

Employees:

");
    out.println(result);
    out.println("");
  }
  public void destroy() {
    try {
      if (con != null) con.close();
    }
    catch (SQLException ignored) { }
  }
}
class HtmlSQLResult {
  private String sql;
  private Connection con;
  public HtmlSQLResult(String sql, Connection con) {
    this.sql = sql;
    this.con = con;
  }
  public String toString() {  // can be called at most once
    StringBuffer out = new StringBuffer();
    // Uncomment the following line to display the SQL command at start of table
    // out.append("Results of SQL Statement: " + sql + "

\n");
    try {
      Statement stmt = con.createStatement();
      if (stmt.execute(sql)) {
        // There's a ResultSet to be had
        ResultSet rs = stmt.getResultSet();
        out.append("

\n");
        ResultSetMetaData rsmd = rs.getMetaData();
        int numcols = rsmd.getColumnCount();
    
        // Title the table with the result set's column labels
        out.append("");
        for (int i = 1; i <= numcols; i++)
          out.append("\n");
        while(rs.next()) {
          out.append("");  // start a new row
          for(int i = 1; i <= numcols; i++) {
            out.append("\n");
        }
        // End the table
        out.append("
" + rsmd.getColumnLabel(i));
        out.append("
");  // start a new data element
            Object obj = rs.getObject(i);
            if (obj != null)
              out.append(obj.toString());
            else
              out.append(" ");
            }
          out.append("
\n");
      }
      else {
        // There's a count to be had
        out.append("Records Affected: " + stmt.getUpdateCount());
      }
    }
    catch (SQLException e) {
      out.append("

ERROR:

 " + e.getMessage());
    }
    
    return out.toString();
  }
}


PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

    MyServletName
             MyServlet
    

    
    MyServletName
        *.htm
    

  
    javax.servlet.jsp.jstl.fmt.timeZone
    US/Central
  

  
    database-driver
    org.gjt.mm.mysql.Driver
  

  
    database-url
    
    jdbc:mysql://localhost/forum?user=forumuser