Zum Inhalt springen

Jakarta Server Pages

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 1. Juni 2003 um 01:57 Uhr durch GNosis (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

JSP oder JavaServer Pages ist eine von Sun Microsystems entwickelte Technologie, die im Wesentlichen zur einfachen dynmaischen Erzeugung von HTML- und XML Ausgaben eines Webservers dient. Diese Technologie erlaubt es Java Code und spezielle JSP-Aktionen in statischen Inhalt einzubetten. Dies hat den Vorteil, dass bei dieser Technologie die Logik unabhängig vom Design implementiert werden kann.

Die JSP-Syntax erlaubt es mittels spezieller XML-Tags (JSP-Aktionen) vordefinierte Funktionalität einzubinden. Diese JSP-Aktionen werden in sogenannten Tag Bibliotheken (Tag Libaries) als Erweiterung der HTML bzw. XML Tags definiert.

JSPs werden mit Hilfe eines JSP-Compilers in ein Java Servlet kompiliert. Ein JSP-Compiler kann ein Servlet im Java Code erzeugen, der dann wiederum durch einen Java-Compiler zu Bytecode kompiliert wird, oder aber er kann direkt Bytecode für das Servlet erzeugen. Der so erzeugte Code kann dann von einem Webserver mit entsprechender Servlet Engine ausgeführt werden.

JSP Syntax

Grundsätzlich lassen sich JSP als eine Art HTML oder XML-Seite mit zusätzlichen JSP-spezifischen Tags und Java Code beschreiben. Eine JSP kann grob in die folgenden Elemente aufgeteilt werden:

  • statischer Inhalt wie HTML
  • JSP-Direktiven
  • JSP-Skriptelemente
  • JSP-Aktionen
  • JSP Tag-Bibliotheken (Tag Libaries)

Statischer Inhalt

Der statische Inhalt sind alle jenen Element die vom Webserver in den HTTP-Response (Antwort) ohne Veränderung übernommen werden (z.B.: HTML-Tags). So wäre ein normales HTML-Dokument gänzliche ohne JSP-Elemente, wie eingebetteten Java Code oder JSP-Aktionen, eine gültige JSP. Denn eine JSP erlaubt es nur dynamische Daten in statischen Inhalt einzufügen, setzt es aber nicht voraus.

Ein großer Vorteil der JSP-Technologie ist, dass der Ersteller des statischen Inhalts (also des Designs) über keine Java-Kenntnisse verfügen muss.


JSP Direktiven

Eine Direktive dient zum Übermitteln von speziellen Seiteninformationen an den JSP-Compiler, dadurch kann man angeben, ob die JSP eine TagLib einbindet oder wie im Fehlerfall weiter zu verfahren ist.

Die allgemeine Syntax für eine Direktive ist <@ ... %>. Folgende Dirketive sind vorhanden:

  • include, diese Direktive weist den JSP-Compiler an, den Inhalt einer ganzen externen Datei in die Originaldatei zu kopieren.
<%@ include file="BeispielDatei.ext" %>
  • page
    • import, ein Java import Statement wird in das File generiert
    • contentType, gibt die Art des Fileinhaltes an. Sollte dann eingesetzt werden, wenn man kein HTML benutzt oder den Default Zeichensatz nicht verwendet
    • errorPage, gibt die Seite an die im Fehlerfall angezeigt werden sollte
    • isErrorPage, gibt an ob diese Seite eine Error Page ist oder nicht
    • isThreadSafe, gibt an ob das aus der JSP generierte Servlet Thread sicher ist oder nicht

<%@ page import="java.util.*" %> //import
<%@ page contentType="text/html" %> //contentType
<%@ page isErrorPage=false %> //es wird keine Error Page verwendet
<%@ page isThreadSave=true %> //eine Thread sichere JSP

  • tagLib, diese Direktive gibt an das eine Taglib verwendet werden soll. Es muss ein Prefix und eine URI für die TagLib vergeben werden.
<%@ taglib prefix="MeinPrefix" uri="taglib/MeineTagLib.tld" %>

JSP Skriptelement

Standard Skript Variablen

Die folgenden Variablen können in jeder JSP verwendet werden.

  • out, JSPWriter, der die Daten in den HTTP-Response Stream schreibt
  • page, das Servlet selber
  • pageContext, eine Instanz des PageContext, welche die Daten der gesamten Seite enthält
  • request, das HTTP Request Objekt
  • response, das HTTP Response Objekt
  • session, das HTTP Session Objekt. Es kann dazu benutzt werden, um Information über den Benutzer von einem Request zum nächsten weiterzureichen

JSP-Deklaration

Deklarationen dienen zur Definition von Variablen und Methoden, die von anderen Elementen in der JSP verwendet werden können. Deklarationen erzeugen keine Ausgabe innerhalb der JSP.

<%! int variableMeinerKlasse = 0; %>

JSP-Ausdruck

Ausdrücke (Expressions) werden dazu verwendet, um Variablen oder Methoden direkt in den HTML oder XML Ausgabestrom zu integrieren.

Die Klassenvaribale ist <%= variableMeinerKlasse %>

JSP-Skriptlets

JSP-Skriptlets können zur Implementierung der Ablauflogik sowie der Erzeugung der HTML- oder XML Ausgabe eingesetzt werden. Der Skriptlet Code wird innerhalb der _jspService() Methode des generierten Servlets eingefügt.

<% int variable = 0; out.println("Der Wert der Variable ist : " + variable); %>

JSP-Kommentare

Kommentare sind nur innerhalb der orginalen JSP sichtbar, sie werden nicht in den Ausgabestrom generiert.

<%-- Kommentar innerhalb einer JSP --%>

JSP-Aktionen

  • jsp:forward
  • jsp:fallback
  • jsp:getProperty
  • jsp:include
  • jsp:param
  • jsp:plugin
  • jsp:setProperty
  • jsp:useBean


Versionen

  • JSP 1.0
  • JSP 1.1
  • JSP 1.2
  • JSP 2.0

Siehe auch