Das Beispiel in diesem Artikel beschreibt, wie Java JSP implementiert, um mithilfe von Servelt eine Verbindung zur Oracle-Datenbank herzustellen. Um in einem Servlet eine Verbindung zur Datenbank herzustellen, muss ein Servlet-Klassenprogramm geschrieben werden. Platzieren Sie das Servlet-Klassenprogramm im Servlet- oder Klassenverzeichnis des WEB-Servers. Um das Servlet aufzurufen, müssen Sie ein HTML-Dokument erstellen, das die Servlet-Anfrage sendet. In diesem Beispiel wird die Methode (Driver)Class.forName(driverName).newInstance() verwendet, um den Treiber zu laden und eine Verbindung mit der Datenbank herzustellen.
Der spezifische Programmcode lautet:
1. Die Datenbankklasse erbt die HttpServlet-Klasse und verfügt über zwei Methoden: doGet() und displayResult(). Der Code lautet wie folgt:
öffentliche Klasse Datenbank erweitert HttpServlet{public void doGet(); public void displayResult(ResultSet results,PrintWriter out);}
2. Stellen Sie eine Verbindung zur Datenbank her und führen Sie die Abfrage in der doGet()-Methode aus:
public void doGet(){HttpServletRequest request,HttpServletResponse Response}wirft ServletException, IOException{PrintWriter out;String title = "Simple Servlet connected to Oracle DB";response.setContentType("text/html;charset=GB2312");out = Response.getWriter();out.println("<HTML><HEAD><TITLE>");out.println(title);out.println("</TITLE></HEAD><BODY>");out .println("<H1>" + title + "</H1>");out.println("<P>Dies wird von SimpleServlet ausgegeben.");String driversName = "oracle.jdbc.driver.OracleDriver";Driver d;Connection con;Statement stmt;ResultSet results;try{d = (Driver)Class.forName(driverName).newInstance();con = DiverManager.getConnection("jdbc:oracle:thin:ndb/[email protected]:1521:PC6");stmt = con.createStatement();String sqlstr = "select * from data";results = stmt.executeQuery(sqlstr);displayResult(results,out);stmt.close();con.close();}catch (Exception e){out.println("error: " + e.toString());} out.println("</BODY></HTML>");out.close();}
3. Die Methode DisplayResult() zeigt Abfrageergebnisse an:
public void displayResult(ResultSet results,PrintWriter out){StringBuffer buf = new StringBuffer();String temp;try{ResultSetMetaData rsmd = results.getMetaData();int numCols = rsmd.getColumnCount();int i, rowcount = 0;for (i=1; i <= numCols; i++){if (i > 1) buf.append(",");buf.append(rsmd.getColumnLabel(i));}buf.append("");while (results.next() && rowcount < 100){for (i= 1; i <= numCols; i++){if (i > 1) buf.append(",");buf.append((results.getString(i)));}buf.append("<br>");rowcount++;}out.println("<br>");out .println(buf.toString());results.close();}catch (Exception e){out.println("error: " + e.toString());return;}}
4. Da das Programm JDBC-Klassen und Servlet-Klassen sowie die Konsolenausgabe verwendet, müssen die folgenden Pakete eingeführt werden:
import java.sql.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;
5. Kompilieren Sie Database.java, generieren Sie die Datei Database.class und legen Sie Database.class im Servlets-Verzeichnis des WEB-Servers ab. In diesem Beispiel wird Java Web Server als WEB-Server verwendet. Konfigurieren Sie den WEB-Server, fügen Sie „database.class“ hinzu und geben Sie den Namen „Datenbank“ an.
6. Schreiben Sie die Datei „database.html“, die das Servlet aufruft. Der Code lautet wie folgt:
<html><head><title>Jsp verwendet Servlet, um eine Verbindung zur Datenbank herzustellen</title></head><body><center><form action="/servlet/database" method="get"><input name ="action " type="submit" value="Mit Datenbank verbinden"></form></center></body></html>