Kapitel 1: Einleitung |
1-1 |
Überprüfen der JDBC-Konformität (JdbcKonform.java) |
11 |
1-2a |
ANSI-Stufe von MS Access (AnsiStufeAccess.java) |
12 |
1-2b |
ANSI-Stufe von Oracle9i (AnsiStufeOracle.java) |
12 |
1-3 |
Phasen der JDBC-Programmierung ("Fünf Schritte") (FuenfSchritte.java) |
13 |
Kapitel 2: Relationale Datenbanken und SQL |
2-1 |
Übungshilfe für SQL-Anweisungen (SqlDirektSelect.java) |
27-29 |
2-2 |
SQL-Unterstützung von UNION in Access (Metadaten) (SupportsUnionAccess.java) |
37 |
2-3 |
Die skalaren Funktionen in Access (SkalareFunktionen.java) |
40 |
2-4 |
Transaktionen: rollback() und commit() (EineTransaktion.java) |
43 |
2-5a |
Gespeicherte Prozedur in Oracle9 (SimpleStoredProcedure.plsql) |
44 |
2-5b |
Anwendung einer gespeicherten Oracle9-Prozedur in JDBC (SimpleStoredProcedure.java) |
45 |
2-6 |
Die GROUP BY-Klausel (GroupBy.java) |
52 |
2-7 |
Die GROUP BY- und die HAVING-Klausel (GroupByHaving.java) |
54 |
2-8 |
Optimierung der SQL-Übungshilfe aus Abschnitt 2.5 (Programm 2-1) für Access (SqlDirekt.java) |
56 |
2-9 |
Desgleichen für Oracle9 (SqlDirektOra.java) |
56 |
Kapitel 3: JDBC-Grundlagen |
3-1a |
Interface DatabaseMetaData (Auszug) |
65 |
3-1b |
Implementierung des Interfaces DatabaseMetaData (Auszug) |
65 |
3-2 |
Direkt mit JDBC-Treibern arbeiten TreiberKlassen.java |
66 |
3-3 |
Über Interfaces mit JDBC-Treibern arbeiten (TreiberInterfaces.java) |
66 |
3-4 |
SQL-Anweisung mit execute() ausführen (ExecuteStatement.java) |
73 |
3-5 |
Statement- und ResultSet-Objekte (StatementUndResultset1.java) |
74 |
3-6 |
Mehrfacher Zugriff auf dasselbe ResultSet-Datenelement (StatementUndResultset2.java und eine Variante StatementUndResultset3.java) |
74-75 |
3-7 |
Ergebnistabelle einlesen und ausgeben (Auszug) (ResultsetAus.java) |
76 |
3-8 |
Einfache vorbereitete Anweisung (SimplePrepStatement.java) |
79 |
3-9 |
Test auf Unterstützung gespeicherter Prozeduren (StoredProceduresSupport.java) |
80 |
3-10a |
Gespeicherte Prozedur (PL/SQL)
(StoredProceduresRechnenProz.plsql) |
81 |
3-10b |
Gespeicherte Funktion (PL/SQL)
(StoredProceduresRechnenFunk.plsql) |
81 |
3-10c |
Gespeicherte Prozedur und gespeicherte Funktion
(StoredProceduresRechnen.java) |
82 |
3-11a |
Gespeicherte Prozedur zum Einfügen einer Zeile (PL/SQL)
(InsertUndDeleteIns.plsql) |
83 |
3-11b |
Gespeicherte Prozedur zum Löschen einer Zeile (PL/SQL)
(InsertUndDeleteDel.plsql) |
84 |
3-11c |
Einfügen und Löschen von Tabellenzeilen
(InsertUndDelete.java) |
84 |
3-12 |
Gespeicherte Prozedur mit Cursor-Verwendung (SqlCursor.plsql) |
86 |
3-13a |
Tabellen als Parameter von gespeicherten Prozeduren
(StoredProceduresTabellen.plsql) |
86 |
3-13b |
Gespeicherte Prozedur mit Tabellen als Rückgabewert
(StoredProceduresTabellen.java) |
86-87 |
3-14 |
Cursor-Methoden (ResultSetNavigation.java) |
87 |
3-15 |
Mit einem Cursor einen ResultSet durchlaufen (VorZurueck.java) |
88-90 |
3-16 |
Import von csv-Daten in eine Datenbank (CsvImportBatch.java,
import.csv) |
92-94 |
3-17 |
Einfacher Datenbank-Client als Java-Applikation (EinfacherClient.java) |
96-100 |
3-18a |
Einfaches Applet (HTML-Teil)
(EinfachesApplet.html) |
101 |
3-18b |
Einfaches Applet (Java-Teil)
(EinfachesApplet.java) |
102-103 |
3-19 |
ResultSet-Metadaten (ResultsetMetas.java) |
104 |
Kapitel 4: JDBC und Client/Server |
4-1a |
Desktop-Datenbankanbindung: Client (SqlDirektClient.java) |
118-119 |
4-1b |
Desktop-Datenbankanbindung: Middleware (SqlDirektServer.java) |
119 |
4-2a |
Anbindung eines SQL-Datenbankservers: Server (MysqlDirektServer.java) |
122 |
4-2b |
Anbindung eines SQL-Datenbankservers: Client (MysqlDirektClient.java) |
123 |
4-3a |
Webdatenbank, HTML-Client (SqlDirektHttpClient.html) |
123 |
4-3b |
Webdatenbank, Middleware (SqlDirektHttpServer.java) |
124-126 |
4-4 |
"SQL Direkt" als Servlet (SqlDirekt.java) |
128-129 |
Kapitel 5: Servlets und Servlet-Container |
5-1 |
Muster-Servlet mit allen Lebenszyklen (MusterServlet.java) |
145 |
5-2 |
"Hello World!"-Servlet (HelloServlet.java) |
146 |
5-3a |
Zähler-Servlet zur Demonstration einiger Servlet-Lebensphasen (ZaehlerServlet.java) |
148 |
5-3b |
Deployment-Descriptor zum Servlet in Teil a des Programms (web.xml) |
149 |
5-4a |
Initialisierungsparameter eines Servlets (InitServlet.java) |
151 |
5-4b |
Deployment-Descriptor zum Servlet in Teil a (web.xml) |
152 |
5-5 |
Methoden für die Anforderungsbearbeitung (MusterServlet2.java) |
153 |
5-6 |
doGet() und doPost() (GetPostServlet.java) |
154 |
5-7 |
Die Methode service() (ServiceServlet.java) |
154 |
5-8 |
Beispiel für die Anwendung von destroy(): Sicherung eines Zugriffszählers (InitDestroy.java) |
156 |
5-9a |
Zähler mit Konflikten durch Simultanzugriff (SyncServletA.java) |
158 |
5-9b |
Konfliktbehebung durch synchronized(this) (SyncServletB.java) |
158 |
5-9c |
Konfliktbehebung durch Implementieren von SingleThreadModel (SyncServletC.java) |
159 |
5-9d |
Konfliktbehebung durch Ausverlagerung in eine synchronisierte Methode (SyncServletD.java) |
159 |
5-10 |
"Hello World!" als JSP-Dokument (HelloWorld.jsp) |
164 |
5-11 |
"Hello World!"-Servlet (HelloWorld.java) |
165 |
5-12 |
"Hello World!"-Servlet (HelloWorld.java) |
166 |
5-13 |
server.xml, Auszug (webapp.serverxml) |
167 |
5-14 |
Musterprogramm für Servlets mit Dispatcher (MusterDispatcher.java) |
176-178 |
5-15a |
Cookies setzen (CookieSetzen.java) |
180 |
5-15b |
Cookies lesen und anzeigen (CookieLesen.java) |
181 |
5-15c |
Cookies löschen (CookieLoeschen.java) |
182 |
5-16a |
Sitzung anlegen (Anlegen.java) |
186 |
5-16b |
Sitzungsparameter anzeigen (Anzeigen.java) |
187 |
5-16c |
Sitzung löschen (invalidieren) (Invalidate.java) |
187 |
5-17 |
Lebenszyklen eines Filters (MusterFilter.java) |
190 |
5-18a |
Logbuch-Filter (LoggingFilter.java) |
192 |
5-18b |
Konfiguration des Logbuch-Filters in web.xml (LoggingFilter.webxml) |
193 |
5-19a |
Filter für die Wandlung von Umlauten (ZeichenFilter.java) |
193-195 |
5-19b |
Definition der zu wandelnden Zeichen in web.xml (ZeichenFilter.webxml) |
196 |
5-20 |
CGI-Variablen (CgiVariablen.java) |
202 |
5-21 |
SQL Direkt aus Abschnitt 2.5 als Servlet und mit HTML-GUI (SqlDirekt.java) |
205-207 |
5-22 |
XML-Prolog und Dokumententyp (xmlprolog.webxml) |
207 |
5-23 |
Einlesen der Parameter eines Servlet-Kontextes (Webapplikation) (ContextParam.java) |
211 |
5-24 |
DNS-Anfrage (HoleInternetAdresse.java) |
218 |
5-25 |
Internet-Socket und I/O-Streams (InternetSocket.java) |
219 |
5-26 |
Anwendung des HTTP-Protokolls (UrlVerbindung.java) |
221 |
5-27 |
Einfacher Internet-Server (SimpleInternetServer.java) |
222 |
5-28 |
Einfacher Client zum Internet-Server (SimpleInternetClient.java) |
223 |
5-29 |
Internet-Server mit Kindprozessen (ThreadedInternetServer.java) |
225 |
5-30 |
Servlet, das alle Request-Header einliest und zurückgibt (HttpHeader.java) |
227 |
5-31 |
Ein einfacher HTTP-basierter Server (SimpleHttpServer.java) |
229 |
Kapitel 6: Java Server Pages (JSP) |
6-1 |
JSP-Dokument; der eingebettete Java-Code ist hervorgehoben (Datum.jsp) |
234 |
6-2 |
Schablone (Fettdruck) und Einbettungen (Schablone.jsp) |
235 |
6-3 |
Scripting-Elemente (ScriptingElemente.jsp) |
237 |
6-4a |
"Hello World!" in JSP (helloworld.jsp) |
240 |
6-4b |
Bestandteile des generierten "Hello World!"-Servlets (Muster) (helloworld.jsp) |
240 |
6-4c |
"Hello World!", vollständiger Quellcode des generierten Servlets |
241-242 |
6-5 |
Attribute in PageContext (SeitenAttribute.jsp) |
246 |
6-6 |
Attribute in PageContext (SeitenKontext.jsp) |
247 |
6-7 |
Beispiel für die Anwendung von Ausdrücken, Programm dazu (Ausdruecke.jsp) |
252 |
6-8 |
JSP-Seite mit Sekundenzähler (ZaehlerJsp.jsp) |
254 |
6-9a |
Einfaches Ablauf-Management, "Master"-Seite (Master.jsp) |
259 |
6-9b |
Einfaches Ablauf-Management, eine von fünf Bearbeiterseiten (Slave2.jsp) |
260 |
6-10a |
Fehlerauslösung (PageError.jsp) |
260 |
6-10b |
Fehlerseite (PageIsError.jsp) |
261 |
6-11 |
Pufferung (PufferVoll.jsp) |
262 |
6-12 |
page contentType="application/vnd.ms-excel" (ContentTypeExcel.jsp) |
263 |
6-13a |
Die Tag-Bibliothek für das saghallo-Tag (hallo.tld) |
266 |
6-13b |
Der Tag-Handler (SagHalloTag.java) |
266 |
6-13c |
Verwendung des saghallo-Tags (SagHalloTag.jsp) |
267 |
6-14 |
"Hello World!"-Applet mit jsp:plugin- und anderen Tags (Plugin.jsp) |
271 |
6-15a |
Einfaches useBean-Beispiel: JavaBean (TestBean.java) |
274 |
6-15b |
Instanziieren der JavaBean, Setzen und Lesen der Eigenschaften (TestBean.jsp) |
274 |
6-16a |
JavaBean für die Konversion von DM in Euro (Konvertiere.java) |
275 |
6-16b |
Testprogramm (TestKonvertiere.jsp) |
275 |
6-16c |
GUI für das Programm in Teil a (Dem2Euro.jsp) |
276 |
6-17a |
Beans-Eigenschaften und Formularparameter (PersonenBean.java) |
279 |
6-17b |
Beans-Eigenschaften und Formularparameter (PropSetAsteriskus.jsp) |
280 |
6-17c |
Beans-Eigenschaften und Formularparameter, Variante (PropSetAsteriskusX.jsp) |
280 |
6-18a |
Einfache JavaBean (TestBeanC.java) |
282 |
6-18b |
Lesen der Eigenschaft zahl über das pageContext-Objekt (PageScope.jsp) |
283 |
6-19 |
Lesen der Eigenschaft zahl über das request-Objekt (RequestScope.jsp) |
283 |
6-20a |
Setzen der Eigenschaft zahl und Lesen über das session-Objekt (SessionScope.jsp) |
283 |
6-20b |
Weitere JSP-Seite nur zum Einlesen über das session-Objekt (SessionScopeX.jsp) |
284 |
6-20c |
Lesen von zahl in einer JSP-Seite, die nicht an der Sitzung teilnimmt (SessionScopeY.jsp) |
284 |
6-21a |
Setzen und Lesen der Eigenschaft zahl über das application-Objekt (ApplicationScope.jsp) |
285 |
6-21b |
Lesen der Eigenschaft zahl aus application in anderer JSP-Seite (ApplicationScopeX.jsp) |
285 |
6-21c |
Entfernen der JavaBean bean aus dem application-Objekt (ApplicationScopeY.jsp) |
285 |
6-21d |
Wie a-c, aber jsp:setProperty nun als Körper von jsp:useBean (ApplicationScopeZ.jsp) |
285 |
6-22a |
Definition des Tag-Handlers zum Tag person im Tag-Descriptor (person.tld) |
289 |
6-22b |
Die Tag-Handler-Klasse zum Tag person (PersonenTag.java) |
290 |
6-23a |
SQL Direkt: Die JSP-Seite (SqlDirekt.jsp) |
293 |
6-23b |
SQL Direkt: Tag-Descriptor-Datei, Vor- und Abspann (sqldirektlib.tld) |
295 |
6-23c |
SQL Direkt: XML-Definition des Tags abfrage (sqldirektabfrage.tld) |
295 |
6-23d |
SQL Direkt: XML-Definition des Tags ausgabe (sqldirektausgabe.tld) |
296 |
6-23e |
SQL Direkt: Der Handler für den Tag abfrage (SqlDirektAbfrageTag.java) |
296-298 |
6-23f |
SQL Direkt: Der Handler für den Tag ausgabe (SqlDirektAusgabeTag.java) |
298-300 |
6-23g |
SQL Direkt: String in Java-Variable "umwandeln" (SqlDirektAusgabeTEI.java) |
300 |
6-24a |
Iteration und Verschachtelung, JSP-Seite (siehe Programm 6-25a) (SteuerTags.jsp) |
301 |
6-24b |
Descriptoren für eine Iteration und einen zu verschachtelnden Tag
(meinetaglib.tld) |
302 |
6-24c |
Handler-Klasse für den Iterations-Tag (ForTag.java) |
302 |
6-24d |
Handler-Klasse für einen verschachtelten Tag (InnerTag.java) |
303 |
6-25a |
Verwendung des Bedingungs-Tags if (siehe Programm 6-24a) (SteuerTags.jsp) |
304 |
6-25b |
Descriptor des Tags if (meinetaglib.tld) |
304 |
6-25c |
Tag-Handler für das if-Tag (IfTag.java) |
305 |
Kapitel 7: Anwendungsbeispiele |
7-1 |
Phasen einer JSP-Seite (Zeitpunkte.jsp) |
322 |
7-2 |
JSP-Seite mit Dispatcher (Dispatcher.jsp) |
326-327 |
7-3a |
Controller-Servlet (Controller.java) |
327-328 |
7-3b |
Vom Controller-Servlet gesteuerte JSF-Seite (TargetZwei.jsp) |
329 |
7-4a |
Modifikation für die Auslagerung der Steuerdaten in eine csv-Datei (ControllerCsv.java) |
330 |
7-4b |
controller.csv (controller.csv) |
331 |
7-5a |
Controller des Gästebuches (Gaestebuch.java) |
334-337 |
7-5b |
Die Views des öffentlichen Gästebuchteils: Auswahlliste (GaestebuchHome.jsp) |
338-339 |
7-5c |
Die Views des öffentlichen Gästebuchteils: Einzelanzeige (GaestebuchAnzeigen.jsp) |
339 |
7-5d |
Die Views des administrativen Gästebuchteils: Auswahlliste (GaestebuchListe.jsp) |
340 |
7-5e |
Die Views des administrativen Gästebuchteils: Einzelanzeige (GaestebuchAendern.jsp) |
340-341 |
7-5f |
Model für die Gästebuchliste (GaestebuchListe.java) |
342 |
7-5g |
Model für individuelle Gästebucheinträge (GaestebuchAendern.java) |
342-344 |
7-6 |
Elementare Operationen auf Sitzungsobjekte ausführen (Sitzung.jsp) |
347-349 |
7-7 |
Ausführung des Seitenverfolgers (Tracker.jsp) |
354-355 |
7-8a |
Die JavaBean des Warenkorbs (WarenkorbBean.java) |
360-364 |
7-8b |
Der JSP-Teil des Warenkorbs (Warenkorb_Shop.jsp) |
364-368 |
7-9 |
Formular zum Versenden von E-Mail (MailFormular.jsp) |
371-372 |
7-10 |
Der Gang zum Postfach (POP3) (Mailbox.jsp) |
373-374 |
7-11a |
E-Mail-Monitor (Subscriber) (Subscriber.java) |
375-380 |
7-11b |
Deployment-Parameter des Servlets Subscriber (Subscriber.webxml) |
380 |
7-12a |
E-Mail-Monitor und Responder (Responder.java) |
381 |
7-12b |
Deployment-Parameter des Servlets Responder (Responder.webxml) |
381 |