studyklar
IProg · Skript 8 · Abschnitt 5

Wie aus einer JSP-Seite ein Servlet wird

Ein Servlet schreibt HTML mühsam mit out.println. JSP dreht das um: Man schreibt HTML und streut Java ein. Hier steht, warum das besser ist und was der Server mit einer JSP-Seite macht. Mit Weiter geht es Schritt für Schritt voran.

Worum es geht

Skript 08, Folien 27 bis 30: Frontend-Entwicklung, Jakarta Server Pages und ihre Verarbeitung.

Der Browser kann kein Java ausführen. Er versteht HTML, dazu CSS und JavaScript. Eine JSP-Seite enthält aber Java-Code. Die Frage ist: Was macht der Server mit ihr, bevor der Browser etwas bekommt?

Die Folien nennen nur die Dateien, keinen Code. Wir nehmen eine kleine eigene Seite, Democlass.jsp, und zeigen, was aus ihr wird.

„Folie N“ heißt hier immer die N-te Seite der PDF-Datei. Die kleine Zahl unten auf der Folie kann davon abweichen.

So gehen wir vor:

  1. Warum Servlets für HTML-Seiten unpraktisch sind.
  2. Die Idee von JSP: HTML mit eingestreutem Java.
  3. Die fünf Stationen von der Anfrage bis zur Antwort.
  4. Wer auf dem Server welche Arbeit macht.
  5. Eine Klausurfrage zum Üben.

Servlets sind für HTML unpraktisch

Skript · Frontend-Entwicklung

Servlets sind zur Erzeugung von HTML-Seiten nicht wirklich geeignet:

  • aufwändiges Testen von Design-Änderungen,
  • keine visuellen Werkzeuge nutzbar,
  • Web-Designer muss über Java-Programmierkenntnisse verfügen.

Im Servlet von Skript 08, Folie 16 steht jede Zeile HTML als String in einem out.println. Für eine echte Seite mit Hunderten Zeilen wird das unübersichtlich.

Folie 27 nennt drei Folgen: Jede Änderung am Aussehen heißt Java ändern, übersetzen und testen. Werkzeuge, in denen man eine Seite visuell gestaltet, helfen nicht. Und wer das Design macht, muss Java können.

Aus Skript 08, Folie 16: Das Servlet DemoServlet schreibt seine Tabelle mit out.println, Zeile für Zeile.

Die Idee: HTML mit eingestreutem Java

<html><body><p>6 mal 7 ist <%= 6 * 7 %></p></body></html>
Skript · JSP – Jakarta Server Pages

JSPs basieren auf dem aus PHP bekannten Prinzip des Einstreuens von Programmcode in die HTML-Seite. JSP-Seiten werden vor Ausführung in Java-Servlet-Code compiliert.

JSP (Jakarta Server Pages, früher JavaServer Pages) dreht es um. Die Datei ist eine HTML-Seite. Nur an einzelnen Stellen steht Java, eingeschlossen in besondere Zeichen wie <%= … %>.

In Democlass.jsp ist nur Zeile 3 besonders: <%= 6 * 7 %> heißt „rechne 6 * 7 aus und setze das Ergebnis hier ein“. Alle anderen Zeilen sind HTML. Die Zeichen im Einzelnen erklärt Skript 08, Folie 32.

Das kennt man von PHP: Dort steht PHP-Code in <?php … ?> mitten im HTML. Ein neuerer Ansatz für Java ist JSF (Jakarta Server Faces), aber deutlich aufwendiger. Darum ist JSP weiter beliebt.

Noch 8 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1Warum JSP

HTML statt out.println

out.println("<html>");out.println("<head></head>");out.println("<body>");out.println("<table>");out.println("<tr><th>Vorname</th><th>Nachname</th></tr>");
Legendegerade gemeintFünf Stationen von der Anfrage bis zur fertigen Seite (Folie 29).