// ReadDBServlet

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

public class ReadDBServlet extends HttpServlet {
  final static String url = "jdbc:postgresql://ellemose.dina.kvl.dk/gp";
  final static String usr = "gp";
  final static String pwd = "...";

  Connection   db;            // The connection to the database
  Statement    st;            // A statement to run queries with
  
  // Åbn forbindelsen til databasen når servlet-objektet skabes
  public void init(ServletConfig config) throws ServletException {
    super.init(config);
    try { 
      Class.forName("postgresql.Driver"); 
      db = DriverManager.getConnection(url, usr, pwd); 
      st = db.createStatement();
    } catch (ClassNotFoundException e) { 
      System.out.println("Cannot find the Postgresql driver"); 
    } catch (SQLException e) { 
      System.out.println("Database error: " + e); 
    }
  }

  // Luk forbindelsen til databasen når servlet-objektet nedlægges
  public void destroy() {
    try { 
      st.close();
      db.close();
    } catch (SQLException e) { 
      System.out.println("Database error: " + e); 
    }
  }

  // Læs det aktuelle indhold fra tabellen Student
  public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
    res.setContentType("text/html");
    ServletOutputStream out = res.getOutputStream();

    try { 
      String query = "SELECT * FROM student ORDER BY fornavn";
      st.execute(query);
      out.println("<HTML><BODY><TABLE>");
      out.println("<H2>Tabellen Student</H2><P>");
      out.println("<TR><TH>Fornavn<TH>Efternavn<TH>Studienr");
      ResultSet rs = st.getResultSet();
      while (rs.next()) {
        String enavn = rs.getString("efternavn");
        String fnavn = rs.getString("fornavn");
        String stdnr = rs.getString("studienummer");
        out.print("<TR>");
        out.println("<TD>" + fnavn + "<TD>" + enavn + "<TD>" + stdnr);
      }
      out.println("</TABLE></BODY></HTML>");
    } catch (SQLException e) { 
      System.out.println("Database error: " + e); 
    }
  }
}


