<%@page contentType="text/html"%> <%@ taglib uri="http://www.addison-wesley.de/jcb/jcb.tld" prefix="jcb" %> Dies ist das Ergebnis des SQLTable-Tags
--- Neue Klasse --- package javacodebook.server.jsp.tag; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.sql.*; /** * Ein Tag zur Kapselung von Datenbank-Abfragen in HTML-Seiten. Eine SQL-Abfrage * wird ausgeführt und aus dem ResultSet wird eine Tabelle erzeugt. */ public class SQLTable extends javax.servlet.jsp.tagext.TagSupport { //Name des Datenbanktreibers private String driver; //Der Connect-String, mit dem die Verbindung geöffnet wird private String connectString; //Name des Datenbankusers private String user; //Password des Datenbankusers private String passwd; //Text der Abfrage private String queryString; /** * Die doStartTag-Methode wird aufgerufen, nachdem alle Attribute des Tags * gesetzt sind. */ public int doStartTag() throws JspException { Connection conn = null; Statement stmt = null; try { //Treiber laden und Verbindung öffnen Class.forName(driver); conn = DriverManager.getConnection(connectString, user, passwd); //Statement erzeugen und Abfrage abschicken stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(queryString); ResultSetMetaData rsmd = rs.getMetaData(); int colCount = rsmd.getColumnCount(); JspWriter out = pageContext.getOut(); out.println(""); //Titelzeile der Tabelle aufbauen anhand der Metadaten out.println(""); for(int i = 1; i <= colCount; i++) out.println(""); out.println(""); //alle Zeilen des ResultSets in Tabellenzeilen ausgeben while(rs.next()) { out.println(""); for(int i = 1; i <= colCount; i++) out.println(""); out.println(""); } rs.close(); out.println("
" + rsmd.getColumnName(i) + "
" + rs.getString(i) + " 
"); } catch(Exception e) { e.printStackTrace(System.out); } finally { try { stmt.close(); } catch(Exception ignored) {} try { conn.close(); } catch(Exception ignored) {} } return SKIP_BODY; } /** Die Methode zur Auswertung des Attributs queryString */ public void setQueryString(String queryString) { this.queryString = queryString.trim(); } /** Wertet das Attributs driver aus */ public void setDriver(String driver) { this.driver = driver.trim(); } /** Wertet das Attributs connectString aus */ public void setConnectString(String connectString) { this.connectString = connectString; } /** Wertet das Attributs user aus */ public void setUser(String user) { this.user = user; } /** Wertet das Attributs passwd aus */ public void setPasswd(String passwd) { this.passwd = passwd; } } --- Taglibrary-Descriptor tablib.tld --- 1.0 1.1 vdb http://www.addison-wesley.de/jcb/jcb.tld              sqltable         javacodebook.server.jsp.tag.SQLTable         Eine Abfrage als HTML-Tabelle ausgeben driver true false connectString true false user true false passwd true false queryString true true      --- Referenz auf Taglibrary-Descriptor in der web.xml --- http://www.addison-wesley.de/jcb/jcb.tld /WEB-INF/jcb.tld