Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenSonntag, 15. September 2019 

JavaServer Pages


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
JavaServer Pages abgekürzt JSP sind eine von Sun Microsystems entwickelte Technologie die im Wesentlichen zur dynamischen Erzeugung von HTML - und XML -Ausgaben eines Webservers dient. Diese Technologie erlaubt es Java -Code und spezielle JSP-Aktionen in statischen Inhalt Dies hat den Vorteil dass bei dieser die Logik unabhängig vom Design implementiert werden

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

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

Inhaltsverzeichnis

Syntax

Grundsätzlich lassen sich JSP als eine HTML- oder XML-Seite mit zusätzlichen JSP-spezifischen Tags Java-Code beschreiben. Eine JSP kann grob in 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 die vom Webserver in die HTTP - Response (Antwort) ohne Veränderung übernommen werden (z.B.: So wäre ein normales HTML-Dokument gänzlich ohne wie eingebetteten Java-Code oder JSP-Aktionen eine gültige Denn eine JSP erlaubt es zwar dynamische in statischen Inhalt einzufügen setzt es aber voraus.

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

Direktiven

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

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

  • include diese Direktive weist den JSP-Compiler an vollständigen Inhalt einer externen Datei in die zu kopieren.

<%@ include file="BeispielDatei.ext" %>

  • page
    • import ein Java-Import-Statement wird in der Datei
    • contentType gibt die Art des Datei-Inhaltes an. dann eingesetzt werden wenn man kein HTML oder den Default-Zeichensatz nicht verwendet
    • errorPage gibt die Seite an die im angezeigt werden soll
    • isErrorPage gibt an ob diese Seite eine ist oder nicht
    • isThreadSafe gibt an ob das aus der generierte Servlet threadsicher ist oder nicht

<%@ page import="java.util.*" %> //import
<%@ page contentType="text/html" %> //contentType
<%@ page isErrorPage=false %> //es wird keine verwendet
<%@ page isThreadSave=true %> //eine threadsichere JSP
  • tagLib diese Direktive gibt an dass eine verwendet werden soll. Es muss ein Prefix eine URI für die Taglib vergeben werden.
<%@ taglib prefix="MeinPrefix" uri="taglib/MeineTagLib.tld" %>

Skriptelemente

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

  • out JSPWriter der die Daten in den schreibt
  • page das Servlet selber
  • pageContext eine Instanz des PageContext welche die der gesamten Seite enthält

  • request das HTTP-Request-Objekt
  • response das HTTP-Response-Objekt
  • session das HTTP-Session-Objekt. Es kann dazu benutzt Information über den Benutzer von einem Request nächsten weiterzureichen.

Deklarationen

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

<%! int variableMeinerKlasse = 0; %>

Ausdrücke

Ausdrücke ( expressions ) werden dazu verwendet Variablen oder Methoden in den HTML - oder XML -Ausgabestrom zu integrieren.

Die Klassenvaribale ist <%= variableMeinerKlasse %>

Skriptlets

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

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

Kommentare

Kommentare sind nur innerhalb der originalen sichtbar sie werden nicht in den Ausgabestrom

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

Aktionen

JSP-Aktionen sind XML -Tags die die eingebaute Funktionalität von Webservern Die folgenden Aktionen sind verfügbar:

  • jsp:include die angegebene JSP wird vom Java-Servlet dabei wird der Request und der Response Ist die angegeben JSP abgearbeitet kommt die zur gegenwärtigen JSP zurück. Diese JSP-Aktion bewirkt JSP-Code zwischen zwei JSPs geteilt anstatt kopiert

<jsp:include page="mycommon.jsp" >
<jsp:param name="extraparam" value="myvalue"/>
</jsp:include>

  • jsp:param definiert einen Parameter der zu den hinzugefügt wird. Diese Aktion kann innherhalb eines include oder jsp: forward Blocks verwendet werden.

  • jsp:forward der Request und der Response wird eine andere JSP oder ein Servlet übergeben. Die Steuerung kommt nicht zur JSP zurück.

<jsp:forward page="subpage.jsp" >
<jsp:param name="forwardedFrom" value="this.jsp" />
</jsp:forward>

  • jsp:plugin diese Aktion generiert je nach verwendetem Browser einen Tag zum Einbinden eines Java-Applets. wird benötigt da in den älteren Versionen Browser von Netscape (Navigator) und Microsoft (Internet verschiedene Tags zum Einbinden eines Applets verwendet werden.

<jsp:plugin type=applet height="100%" weight="100%"
   archive="myjarfile.jar myotherjar.jar"
   codebase="/applets"
   code="com.foo.MyApplet" >
 <jsp:params>
  <jsp:param name="enableDebug" value="true" />
 </jsp:params>
 <jsp:fallback>
   Your browser does not support applets.
 </jsp:fallback>
</jsp:plugin>

  • jsp:fallback definiert den Inhalt der angezeigt wird der Browser keine Applets unterstützt.

  • jsp:setProperty diese Aktion setzt ein Property in definierten Java-Bean.

<jsp:setProperty name="myBean" property="lastChanged" value="<%= new Date()%>" />

  • jsp:getProperty diese Aktion holt sich ein Property der definierten Java-Bean.

<jsp:getProperty name="myBean" property="lastChanged" />

  • jsp:useBean diese Aktion erstellt oder verwendet eine wieder. Das Attribut scope gibt an wie lange Attribute zur stehen. Folgende Werte können definiert werden:

    • request - Attribute sind nur solange verfügbar der Request existiert.
    • page - Attribute sind nur für die JSP verfügbar
    • session - Attribute sind nur solange verfügbar die Benutzer-Session existiert
    • application - Attribute sind immer verfügbar

<jsp:useBean id="myBean" class="com.foo.MyBean" scope="request" />
<jsp:getProperty name="myBean" property="lastChanged" />
<jsp:setProperty name="myBean" property="lastChanged" value="<%= new Date()%>" />

Tag-Bibliotheken

Zusätzlich zu den vordefinierten JSP-Aktionen gibt die Möglichkeit benutzerdefinierte JSP-Aktionen zu verwenden. Dazu eine eigene JSP-Tag-Bibliothek zur Verfügung gestellt werden. Tag-Bibliothek wird über eine XML -Beschreibungsdatei den so genannten Tag Library Descriptor (TLD) definiert der Elemente (Tags) zu Bibliothek (Library) zusammenfasst und mit serverseitigen Java-Klassen die die funktionale Logik eines oder mehrerer implementieren.

Model-View-Controller

Sun empfiehlt die Verwendung des Model Entwurfsmuster (ähnlich dem "Model View Controller Patterns") Benutzen von JSPs. Für sehr kleine Projekte das Model 1 benutzt werden. Das Pattern den Sinn die Darstellung von der Request-Verarbeitung Datenspeicherung zu trennen. Es sollten eigene Servlets die Request Verarbeitung verwendet werden. Nach der sollte eine eigene JSP nur für die des Ausgabestroms vorhanden sein. Diese JSP sollte HTML oder XML und vordefinierte oder benutzerdefinierte enthalten. Zum Einbinden der Daten sollten Java-Beans werden.

Model View Controller Pattern

Siehe dazu auch: MVC-Modell

Versionen

  • JSP 1.0
  • JSP 1.1
  • JSP 1.2
  • JSP 2.0 (JSPX EL)

Siehe auch: ASP CGI ColdFusion J2EE PHP Servlet

Weblinks




Bücher zum Thema JavaServer Pages

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/JavaServer_Pages.html">JavaServer Pages </a>