About: [Seite1] [Seite2] [Seite3] [Seite4] / [zur Übersicht]

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):
  1. 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".
  2. Das Objekt "connection" wird eingeführt, es sorgt für den Verbindungsaufbau zur Datenbank, die den Namen "Bodentypen_1" trägt.
  3. Das Objekt "statement" wird eingeführt, welches mit der createStatement-Methode die Datenbankabfrage ermöglicht.
  4. 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).
  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).
  6. Das Objekt "preparedstatement" wird eingeführt, damit werden weitere Datenbankabfragen möglich.
  7. 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.
  8. Mit der Methode setString wird das Fragezeichen der Abfrage (vgl. Ziffer 5) durch den Namen des im Drop-Down-Menü ausgewählten Bodentyps ersetzt.
  9. 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.

  10. 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:
  11. HTML-Code erzeugt ein Formular mit einem Drop-Down-Menü.
  12. Eine "while-Schlaufe" und die Methode "next" dienen dazu, dass sämtliche im Objekt "RS" gespeicherte Daten geholt werden können.
  13. 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.
  14. 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ü.

 

zurückweiterzur Startseite