|
Programmierung dieser Website (2)
Wie sieht eine JSP-Seite aus?
Eine JSP-Seite sieht eigentlich aus wie eine gewöhnliche HTML-Seite.
Der Unterschied liegt einerseits bei der unterschiedlichen Extension des
Dateinamens (.jsp statt .htm), andererseits werden im Quellcode die Tags
<% und %> verwendet, zwischen denen der vom Server auszuführende
Java-Code geschrieben wird.
Im Folgenden wird die Funktionsweise einer JSP-Seite mit Datenbankzugriff
anhand der Präsentationsseite für Bodentypen kurz erklärt.

Abbildung 3: Anfang des Quellcodes der JSP-Seite "show02"
(Präsentation der Bodentypen).
Zwischen den Tags <% und %> liegt ein sogenanntes Scriptlet mit
Java-Code. Dieser Code produziert keinen Ausdruck auf dem Bildschirm,
deshalb kann er irgendwo im HTML-Code platziert werden. In diesem Beispiel
liegt er zwischen "Head" und "Body". Das Scriptlet
enthält folgende Anweisungen (Abb. 3):
-
Der Treiber zur Herstellung der Datenbankverbindung wird geladen.
Er befindet sich in der Klasse sun.jdbc.odbc.JdbcOdbcDriver. Eine
sogenannte JDBC-ODBC-Bridge sorgt dafür, dass sich die Microsoft
Access Datenbank, welche die Daten über die Bodentypen enthält,
und Java "verstehen".
-
Das Objekt "connection" wird eingeführt, es sorgt
für den Verbindungsaufbau zur Datenbank, die den Namen "Bodentypen_1"
trägt.
-
Das Objekt "statement" wird eingeführt, welches mit
der createStatement-Methode die Datenbankabfrage ermöglicht.
-
Mit der Methode "executeQuery" und dem zuvor definierten
Objekt "statement" wird nun eine Datenbankabfrage durchgeführt.
Die Ergebnisse werden im neuen Objekt "RS" zwischengespeichert.
Die Anweisung "SELECT Name FROM Haupttabelle" ist in SQL
geschrieben, der Datenbanksprache. Hier bedeutet die Anweisung konkret,
dass aus der Tabelle mit den Daten über die einzelnen Bodentypen
(die Tabelle trägt den Namen "Haupttabelle") die Inhalte
der Spalte "Namen" herausgesucht werden sollen. Es werden
also hier die in der Datenbank gespeicherten Namen der Bodentypen
abgefragt. Diese Namen liefern später die Auswahl für das
Drop-Down-Menü (Abb. 5).
-
Die String-Variable "query" wird eingeführt. Sie
dient der Zwischenspeicherung der Abfrage über den Bodentypen,
welcher im Drop-Down-Menü ausgewählt werden muss (deshalb
steht für den Namen ein Fragezeichen, da verschiedene Werte möglich
sind).
-
Das Objekt "preparedstatement" wird eingeführt, damit
werden weitere Datenbankabfragen möglich.
-
Die String-Variable "Bodentyp" wird eingeführt, sie
dient der Zwischenspeicherung des im Drop-Down-Menü ausgewählten
Bodentyps. Mit der getParameter-Methode wird der aus dem Drop-Down-Menü
ausgelesene Name der Variable übergeben.
-
Mit der Methode setString wird das Fragezeichen der Abfrage (vgl.
Ziffer 5) durch den Namen des im Drop-Down-Menü
ausgewählten Bodentyps ersetzt.
-
Mit der Methode "executeQuery" und dem zuvor definierten
Objekt "preparedstatement" wird nun die Datenbankabfrage
für den ausgewählten Bodentyp durchgeführt. Die Ergebnisse
werden im neuen Objekt "RSP" zwischengespeichert.

Abbildung 4: Fortsetzung des Quellcodes der JSP-Seite "show02"
(Präsentation der Bodentypen).
In Abbildung 4 befinden wir uns nun im "Body". Hier wird
sichtbar, weshalb JSP so interessant ist: HTML-Anweisungen und Java-Code
können eng aufeinander folgen und sind trotzdem immer sauber voneinander
getrennt. Anders ausgedrückt: Der HTML-Code liefert das Layout
und der JSP-Code den Inhalt der Webseite. Es muss also im Gegensatz
zu den bisher bekannten Java-Servlets kein HTML-Code mehr in die Java-Anweisungen
eingefügt werden, um die vom Server zurückgegebenen Daten
darzustellen. Dies macht das Programmieren angenehm. In diesem Beispiel
wird deutlich, wie einfach Java-Code in ein Formular eingefügt
werden kann:
-
HTML-Code erzeugt ein Formular mit einem Drop-Down-Menü.
-
Eine "while-Schlaufe" und die Methode "next"
dienen dazu, dass sämtliche im Objekt "RS" gespeicherte
Daten geholt werden können.
-
Mit dem Expression-Tag (<%=) und der Methode getString werden
die Daten der Datenbank als Optionen des Drop-down-Menüs auf
dem Bildschirm ausgedruckt. Hier konkret die Namen der in der Datenbank
gespeicherten Bodentypen.
-
Mit der Methode "close" wird die Abfrage geschlossen.
Auf dem Bildschirm erscheinen im Drop-Down-Menü nun alle Namen,
die vorher im Objekt "RS" gespeichert wurden. Das Ergebnis dieser
ersten Abfrage ist Ihnen bekannt (s. Abb. 5).

Abbildung 5: Per Datenbankabfrage erzeugtes Drop-Down-Menü.
Ein Klick auf den Button "bestätigen" übermittelt
den Namen des ausgewählten Bodentyps an den Server und übergibt
der Variablen "Bodentyp" den Namen als Parameter (getPara-meter-Methode,
vgl.. Ziffer 7). Die zweite Datenbankabfrage
wird ausgeführt und im Objekt RSP zwischengespeichert (s. Ziffern
5, 6, 8 und 9). Mittels Expression-Tags (<%=)
wird dann der Inhalt dieser zweiten Abfrage gezielt im Quellcode platziert
und an den gewünschten Stellen auf dem Bildschirm ausgedruckt (Abb.
6).

Abbildung 6: Per Datenbankabfrage erzeugter Inhalt nach Auswahl
eines Bodentyps im Drop-Down-Menü.
  
|