PPT

Werbung
Java Server Pages
Hassan Bidani
Jallal Alami Rahmouni
FH Wiesbaden
Java 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
Was 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
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.
Unterschied 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 HTMLCodes 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.
Die 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 JSPElemente hinzugefügt.
JSP-Seite ist also im Grunde eine „normale“ Webseite mit
zusätzlichen JSP-Elementen.
JSP-Elemente sind Skripte, Direktiven, und Aktionen.

Die Anatomie einer JSP-Seite
Ein einführendes Beispiel
helloWorld.jsp
<html>
<head>
<title>JSP: HelloWorld</title>
</head>
<body>
<h1>HelloWorld</h1>
<% String name = request.getParameter("parameter");
if (name == null) { name = "world"; } %>
<h2>Hello <% name.toString(); %>!</h2>
</body>
</html>
Lebenszyklus 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 Übersetzungsund Anfragephase erledigt.
Dieses wird dadurch erreicht, dass die JSP-Seite in ein Servlet umgewandelt wird.

Lebenszyklus von JSP-Seite (2)
Generierung
JSPSeite
bei jeder Änderung der JSP-Seite
Quellcode
des
Servlet
Übersetzung
bei jeder Änderung
der JSP-Seite
HTML
Ausführung
bei jeder Anfrage
Servlets
Lebenszyklus 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 -> index$jsp.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.
Lebenszyklus 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
JSPs Sprachelemente
JSP stellt verschiedenen Elemente zur Verfügung, um Webseiten mit
dynamischen Inhalt zu generieren.
Alle Elemente werden in die JSP-Seite eingebettet.
JSPs Sprachelemente - Arten
Skripte (Scriptlets).
Direktiven .
Aktionen.
JSPs 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 :
<%= Ausdruck % >
Wichtig : Kein Semikolon.
ist äquivalent zu :
<% out.print(ausdruck) %>
Siehe Beispiel
JSPs Sprachelemente - Skripte(2)
Vereinbarungen (declarations)
Variablen , Methoden Vereinbarungen.
Mehrere Vereinbarungen, Variablen Initialisierung.
Gültifkeitsbereich : ganze JSP-Seite.
Die Syntax lautet :
<%! Vereinbarung(en) %>
Siehe Beispiel.
JSPs 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: <% Anweisungsfragment (e) %>
Siehe Beispiel
JSPs 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 : <%@ Direktivenname { attributname=“wert“ } %>
JSPs 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: : <%@ include file=“Relative URL“ %>
JSPs 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: <%@ page ... %>
Beispiel für die Verwendung von Import :
<%@ page import = java.utils.* , mypackage.class %>
JSPs 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:
<%@ taglib uri=“URIderTagbibliothek“ prefix=“tagPrefix“%>
JSPs Sprachelemente -Aktionen(1)
Aktionen können Objekte erzeugen der existierende Objekte modifizieren.
Beeinflussen der Aktuellen JSP- Seite.

Die allgemeine Syntax lautet:
<aktion_Name attribut1=“wert1“ attribut2=“wert2“ >
aktion_Rumpf
</aktion_Name>

Wenn es keinen Rumpf gibt, kann man eine Kurzform benutzen:
<aktion_Name attribut1=“wert1“ attribut2=”wert2” />
JSPs Sprachelemente -Aktionen(2)
Standardaktionen:
Standardaktionen müssen von jedem Server implementiert werden.
Include.
Forward.
Plugin.
JSPs 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:
<jsp:include page = “DateiURL” flush=”true” />
JSPs 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:
<jsp:forward page=“zielseite“ />
JSP 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.
Vorteile 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 API´sfür das
Netzwerk, für Datenbankzugriffe usw.
Wenn man Java kann, muss man keine neue Sprache lernen.
gegenüber JavaScript
Nur auf Clientseite ausgeführt.
Keine Datenbankzugriffe.
.
Danke für Die Aufmerksamkeit
Herunterladen