Title: Java Server Pages
1Java Server Pages
- Hassan Bidani
- Jallal Alami Rahmouni
- FH Wiesbaden
2Java Server Pages
- Was sind JavaServer Pages?
- Wofür benutzt man JavaServer Pages?
- Unterschied zwischen Servlets und Java Server
Pages - Die Anatomie einer JSP-Seite
- Lebenszyklus von JSP-Seiten
- JSPs Sprachelemente
3Was sind Java Server Pages?
- Java Server Pages (JSP) sind Bestandteil der
J2EE, der Java 2 Enterprise Edition von Sun
Microsystems J2EE. - Die JSP-API in der Version 1.0 erschien im Mai
1999. - JSPs enthalten HTML, JavaScript Java Code für
die Visualisierung von dynamischen Web-Inhalten. - JSPs werden serverseitig ausgeführt.
- JSPs werden beim ersten Aufruf in ein Servlet
umgewandelt und kompiliert. Das Servlet wird von
der Servlet Engine ausgeführt. - JSPs sind plattformunabhängig und im Rahmen der
Java APIs erweiterbar. - JSPs erlauben die einfache Nutzung von
- Datenbanken
- Sessions
- Cookies
- XML
4 Wofür benutzt man JavaServer Pages?
- schneller und effizienter Webapplikationen und
dynamische Webinhalte entwickeln. - Mit Hilfe von JavaServer Pages können komplexe
Webapplikationen entwickelt werden. - innerhalb von JPS-Seiten auf Datenbanken
zugreifen.
5Unterschied zwischen Servlets und Java Server
Pages
- Trennung zwischen Informationen und
Visualisierung fällt bei Servlet. - Wo ein Servlet eine Java-Klasse ist, die sich um
die Ausgabe des HTML-Codes kümmert, ist eine JSP
eine HTML-Seite mit Java-Code. - bedeutet dass JSPs sind leichter zu ändern als
Java Servlet - JSPs Code sind Wiederverwendbar durch
Kapselung von Anwendungslogik.
6Die Anatomie einer JSP-Seite
- Eine JSP-Seite besteht aus template text und
JSP-Elementen. - in der JSP-Seite zu den statischen
HTML-Elementen zusätzlich JSP-Elemente
hinzugefügt. - JSP-Seite ist also im Grunde eine normale
Webseite mit - zusätzlichen JSP-Elementen.
- JSP-Elemente sind Skripte, Direktiven, und
Aktionen.
7Die Anatomie einer JSP-Seite
8Ein einführendes Beispiel
- helloWorld.jsp
- lthtmlgt
- ltheadgt
- lttitlegtJSP HelloWorldlt/titlegt
- lt/headgt
- ltbodygt
- lth1gtHelloWorldlt/h1gt
- lt String name request.getParameter("parameter")
- if (name null) name "world" gt
- lth2gtHello lt name.toString() gt!lt/h2gt
- lt/bodygt
- lt/htmlgt
9Lebenszyklus von JSP-Seiten (1)?
- Eine JSP-Seite kann nicht als solche zum Browser
geschickt werden. - Alle JSP-Elemente müssen vorher durch den Server
verarbeitet werden. - Wenn man die JSP-Technologie einsetzen möchte,
benötigt man einen - JSP-fähigen Webserver.
- Das bedeutet, dass der Webserver einen
JSP-Container zur Verfügung stellt, - der die Verarbeitung der JSP-Seiten vornimmt,
also die Übersetzungs- - und Anfragephase erledigt.
- Dieses wird dadurch erreicht, dass die
JSP-Seite in ein Servlet umgewandelt wird.
10Lebenszyklus von JSP-Seite (2)?
Generierung
Quellcode des Servlet
JSP- Seite
bei jeder Änderung der JSP-Seite
Übersetzung
bei jeder Änderung der JSP-Seite
Ausführung
Servlets
HTML
bei jeder Anfrage
11Lebenszyklus von JSP-Seiten (3)?
- Übersetzungphase
- JSP-Datei, falls vorhanden,in ein Servlet
konvertiert. - Es entsteht eine Datei mit dem Quelltext des
Servlets ZB index.jsp -gt
indexjsp.java - Diese Datei wird nun in ein Servlet kompiliert.
Es entsteht also eine .class-Datei. - Diese beiden Schritte bezeichnet man als
Übersetzungsphase (translation phase). - Diese Phase wird nur ausgeführt, wenn die Seite
zum ersten Mal angefragt wird Laden und
Instantiieren des Servlet. - Ausführen der Methode jspInit()?
- Geeignet für alle einmaligen Aufgaben.
- Kann durch eine Deklaration auf der JSP-Seite
überschrieben werden.
12Lebenszyklus von JSP-Seiten (4)?
- Anfragephase
- Des weiteren muss der Server auf jede Anfrage
(request) eine Antwort (response)
generieren durch die Methode
- _jspService (HttpServletRequest req ,
HttpServletResponse resp )? -
- Beendigung durch Ausführen der Methode
jspDestroy()
- Diese Methode bildet das logische Gegenstück zur
Methode jspInit() - Freigabe von Ressourcen
13JSPs Sprachelemente
- JSP stellt verschiedenen Elemente zur Verfügung,
um Webseiten mit dynamischen Inhalt zu
generieren. - Alle Elemente werden in die JSP-Seite
eingebettet.
14JSPs Sprachelemente - Arten
- Skripte (Scriptlets).
- Direktiven .
- Aktionen.
15JSPs Sprachelemente - Skripte(1)?
- Ausdrücke (expressions)?
- Wert eines Java-Ausdrücke wird in das
Ausgabedokument geschrieben. - Zugriff auf bekannte Objekte und deren Methoden.
- String Behandlung.
- Die Syntax lautet lt Ausdruck gt
- Wichtig Kein Semikolon.
- ist äquivalent zu lt out.print(ausdruck)
gt -
- Siehe Beispiel
16JSPs Sprachelemente - Skripte(2)?
- Vereinbarungen (declarations)?
- Variablen , Methoden Vereinbarungen.
- Mehrere Vereinbarungen, Variablen
Initialisierung. - Gültifkeitsbereich ganze JSP-Seite.
- Die Syntax lautet lt! Vereinbarung(en) gt
-
- Siehe Beispiel.
17JSPs Sprachelemente - Skripte(3)?
- Anweisungsfragmente (scriplets / code fragments)
- Einbettung Java Anweisungen in JSP-Seiten.
- Mehrere Ausdrücke.
- Keine vollständigen Anweisugen nötig.
- Die Syntax lautet lt Anweisungsfragment (e) gt
- Siehe Beispiel
18JSPs Sprachelemente -Direktiven(1)?
- Informationen über JSP-Seite Spezifizieren.
- Direktiven besitzen Attribute, die gesetzt
werden können. - JSP kennt verschiedene Direktiven
- Include.
- Page.
- Taglib.
- Die Syntax lautet lt_at_ Direktivenname
attributnamewert gt
19JSPs Sprachelemente -Direktiven(2)?
- Die Direktive include
- Mit dieser Direktive wird eine Datei während
der Übersetzungsphase in die JSP-Datei mit
der include-Direktive eingefügt. - Die einzufügende Datei kann sowohl eine HTML- als
auch eine JSP-Datei sein. - Die Syntax lautet lt_at_ include fileRelative
URL gt
20JSPs Sprachelemente -Direktiven(3)?
- Die Direktive page
- Die Importkontrolle der einzelnen Klassen.
- Einfluss auf den Übersetzungsvorgang.
- Können eine oder Mehrere Attribute verwendet
werden. - 10 Attribute.
- Die Syntax lautet lt_at_ page ... gt
- Beispiel für die Verwendung von Import
- lt_at_ page import java.utils. ,
mypackage.class gt
21JSPs Sprachelemente -Direktiven(4)?
- Die Direktive taglib
- JSP file welches die taglibrary nutzt.
- Die Direktive taglib deklariert eine
tag-Bibliothek, die benutzerdefinierte Aktionen
enthält und somit in der JSP-Seite nutzbar macht. - Die Syntax lautet
- lt_at_ taglib uriURIderTagbibliothek
prefixtagPrefixgt
22JSPs Sprachelemente -Aktionen(1)?
- Aktionen können Objekte erzeugen der existierende
Objekte modifizieren. - Beeinflussen der Aktuellen JSP- Seite.
- Die allgemeine Syntax lautet
- ltaktion_Name attribut1wert1 attribut2wert2
gt - aktion_Rumpf
- lt/aktion_Namegt
- Wenn es keinen Rumpf gibt, kann man eine Kurzform
benutzen - ltaktion_Name attribut1wert1 attribut2wert2
/gt
23JSPs Sprachelemente -Aktionen(2)?
- Standardaktionen
- Standardaktionen müssen von jedem Server
implementiert werden. - Include.
- Forward.
- Plugin.
24JSPs Sprachelemente -Aktionen(include)?
- Die Aktion include
- Mit der Aktion include wird die Ausgabe einer
JSP-Seite zur Laufzeit in eine andere JSP-Seite
eingebettet. - So sind Änderungen an der durch die
include-Aktion einzufügende Seite sofort
sichtbar. - Bei der Direktive include geschieht dies zur
Übersetzungszeit. - Die Syntax lautet
- ltjspinclude page DateiURL flushtrue /gt
25JSPs Sprachelemente -Aktionen(forward)?
- Die Aktion forward
- Die Aktion forward ermöglicht die Weiterleitung
einer Anfrage an eine andere JSP-Seite oder auch
an ein Servlet. - Diese Aktion beendet die Ausführung der aktuellen
Seite, sie wird auch nicht wieder aufgenommen. - Die Syntax lautet
- ltjspforward pagezielseite /gt
26JSP Sprachelemente -Aktionen(Plugin
Benutzerdefinierte)?
- Die Aktion plugin
- Das Java Plugin ist eine Java Runtimeumgebung der
Firma Sun, die im Browser eingebunden werden
kann. - Es ermöglicht also die Nutzung von Java Applets.
- Benutzerdefinierte Aktionen
- Benutzerdefinierte Aktionen sind eine mächtige
Möglichkeit dem Autor von JSP-Seiten weitere
Logik zur Verfügung zu stellen.
27Vorteile von JSP
- gegenüber reinen Servlets
- normales HTML ist bequemer zu schreiben.
- Bessere Trennung von Präsentation und Inhalt.
- gegenüber ActiveServer Pages(ASP) von Microsoft
- Java ist mächtiger für komplexe Anwendungen als
VBScript - oder andere ASP-spezifischeSprachen.
- JSP lässt sich auf andere Betriebssysteme und
Webserver portieren, - (plattformunabhängig )
- gegenüber PHP(Hypertext Pre-Prozessor)?
- Vorteil liegt im Bereich der bereits vielfältig
vorhandenen APIsfür das Netzwerk, für
Datenbankzugriffe usw. - Wenn man Java kann, muss man keine neue Sprache
lernen. - gegenüber JavaScript
28 -
- Danke für Die Aufmerksamkeit