Willkommen bei java-server.net

Java Server Pages Grundlagen

Das wichtigste in Kürze

  • JSP basiert auf dem Konzept der Java Servlets und zwei sich ergänzende Techniken für das Generieren von dynmaischen Seiten
  • Die JSP-Technik benötigt nebst dem Servlet Container eine JSP-Engine, welche die JSP-Seiten in Servlets übersetzt
  • Der Treiber/Engine für das Übersetzen der JSP-Seiten ist in der Regel selbst ein Servlet
  • Beide Technologien JSP und Servlet sind Bestandteile der J2EE

Einführung in die JSP-Technik

Java 2 Enterprise Edition (J2EE) kennt zwei sich ergänzende Techniken für das erstellen von dynamischen Web-Seiten in der Präsentationsschicht. Dies sind Java Servlets und Java Server Pages (JSP).

Java Servlets wurde zuerst eingeführt und war als Ergänzung zu einem bestehenden Web-Server gedacht, welche das Erstellen von dynamischen Seiten unterstützt. JSP wurde später eingeführt und ist somit eine neuere Technologie, welche aber in etwa die gleichen Fähigkeiten hat, dynamischen Web-Inhalt zu produzieren. Nur der Ansatz diesen dynamischen Inhalt zu produzieren ist fundamental unterschiedlich. In einem Java Servlet wird der Inhalt (statischer Teil einer HTML-Seite) in den Java-Kode eingebunden und in einer Java Server Page, wird die Logik (spezielle JSP-Elemente oder Java-Kode) in den Inhalt eingebunden.
Eine Java Server Page beinhaltet HTML, XML oder andere Markup-Sprachen mit speziellen JSP-Elementen, welche für die Logik und somit für die Generierung des dynamischen Teils verantwortlich sind. Java Server Pages werden vor der Ausführung interpretiert und in eine Java-Klasse umgewandelt, welche die Servlets Spezifikationen erfüllt. Zur Laufzeit sind Java Server Pages also nichts anders als Java Servlets. Java Servlets basieren auf Java-Klassen, welche Markup-Elemente mittels Code ausgeben.
Die JSP-Technik abstrahiert Java Servlets auf einer höheren Ebene und erhöht die Lesbarkeit, die Wartbarkeit und ist die einfachere Technik, welche keine oder nur wenig Java-Kenntnisse voraussetzt. Weiter fördert die JSP Technik mittels Taglibraries die Trennung von Anwendungslogik und Präsentationslogik und ermöglicht damit eine einfache Umsetzung des MVC (Model View Controller) Design Pattern. Die JSP-Technik ist also für das Aufbereiten von dynamischen Inhalten der der Servlets vorzuziehen.

Java Servlets und somit auch Java Server Pages sind plattformunabhängig und können auf einer grossen Anzahl von Applikationsservern, welche die Java Servlets und Java Server Pages Spezifikationen implementieren, publiziert respektive eingesetzt werden. Die Java Servlets laufen dann in einem so genannten Servlet Container ab. Einen weitern bekannten Container im J2EE Bereich ist der EJB Container. Ein Applikationsserver kann einer der beiden Container oder beide implementieren. Einer der bekanntesten Servlet Container ist der Jakarta-Tomcat Server der Apache Foundation, kurz Tomcat genannt. Tomcat ist zugleich die offizielle Referenzimplementierung für die Java Servlets und Java Server Pages Technologie. Tomcat ist Open-Source und ist 100% in Java geschrieben und somit plattformunabhängig.

Spezifikationen

Die aktuelle Version der JSP Technologie ist 2.0. JSP 2.0 setzt einen Java Servlet Server/Container mit der Version 2.4 voraus. Beide Spezifikationen sind Bestandteil der J2EE Version 1.4. In der JSP Version 2.0 kamen viele neuen Funktionen und Techniken hinzu. Die wichtigsten sind die Expression Language (EL) und die JSP Standard Tag Library kurz JSTL.

JSP unter der Haube

Wie schon kurz erwähnt besteht eine JSP-Seite aus Markup-Elementen, in der Regel HTML, welche mit speziellen JSP-Elementen angereichert sind, welche für die Präsentationslogik oder einfacher ausgedrückt, für die Generierung des dynamisches Inhaltes, zuständig sind. Eine JSP-Seite ist eine reguläre Textdatei, welche mit einem beliebigen Editor erstellt und bearbeitet werden kann. Der statische Teil einer JSP-Seite wird vielfach auch Vorlagentext (oder englisch "template text") genannt und kann in einer beliebigen Form wie HTML, XML, WML oder reiner Text vorliegen.

Eine Anfrage auf eine JSP-Seite wir von dem Web-Server entgegen genommen und an den Servlet-Container weitergeleitet. Der Servlet-Container prüft ob die aktuelle JSP-Seite schon in Form eines kompilierten Servlets vorliegt. Wenn nicht ruft der Servlet-Container die JSP-Engine auf, welche die JSP-Seite in eine Java-Klasse gemäss Servlet-Spezifikation übersetzt. Wenn die JSP-Seite in Form einer Servlet-Klasse vorliegt, wird der Java-Kode in eine ausführbare Klasse / Servlet übersetzt, geladen und initialisiert. Die Anfrage wird nun dem Servlet weitergeleitet, welches von nun an die Kontrolle übernimmt.

Lebenszyklus einer Java Server Page

Der Lebenszyklus einer Java Server Page kann in sieben Abschnitten unterteilt werden. Dies sind:

  1. JSP Seite übersetzen: Die JSP-Seite wird in eine Java-Kode übersetzt.
  2. Generiertes Servlet kompilieren: Der Java-Kode wird in eine ausführbare Klasse übersetzt.
  3. Klasse laden: Die Klasse wird bei der ersten Anfrage geladen.
  4. Instanz kreieren: Der Konstruktor der Klasse wird aufgerufen.
  5. Funktion jspInit wird aufgerufen: Die _jspInit Funktion kann überschrieben werden. Ist dies der Fall, wird der entsprechende Kode ausgeführt. Diese Methode wird nur einmal ausgeführt.
  6. Funktion _jspService wird aufgerufen: Diese Methode wird bei jeder Anfrage ausgeführt und beinhaltet den Kode für das Aufbereiten der HTML-Seite.
  7. Funktion _jspDestroy wird aufgerufen. Die _ jspDestroy Funktion kann überschrieben werden. Ist dies der Fall, wird der entsprechende Kode ausgeführt. Diese Methode wird nur einmal aufgerufen, wenn das Objekt zerstört wird.

Dies sollte als Grundlage reichen. Jetzt müssen wir noch einen Servlet-Container aufsetzen und starten und schon kann es mit einem Konkreten Beispiel losgehen. Wie Sie den Jakarta-Tomcat Servlet-Server installieren uns starten können, können Sie hier lesen.

 
© 2005-2007 by java-server.net
Linktipps: Scherer Informatik - The Java Company   Warmduscher ABC