PowerPoint Template

Download Report

Transcript PowerPoint Template

Seminar Internet - Technologie Java Server Pages

Michael Klenke

Inhalt

 Was sind Java Server Pages.

 Voraussetzungen für den Einsatz von JSP.

 Syntax von JSP:     Ausdrücke, Scriptlets und Deklarationen Direktiven Implizierte Objekte Aktionen  JavaBeans

2

Was sind Java Server Pages (JSP)?

 Anfang 1999 von Sun Microsystems entwickelte Technologie, um Java-Code in HTML-Seiten einbetten und beim Abruf der Seite auf dem Server ausführen zu können.  Alternative zum Common Gateway Interface

(CGI), PHP oder den Active Server Pages (ASP) von Microsoft.

 Erweiterung von Java Servlets  Aktuelle Version: 2.1

3

HTTP Client Server Architektur

4

Common Gateway Interface (CGI)

5

Vor- und Nachteile von CGI

 Vorteile:    Beliebige Programmiersprache Mehrere Clients beeinflussen sich nicht gegenseitig Alle gängigen Webserver unterstützen CGI  Nachteile:   Hohe Antwortzeiten I.d.R. keine Trennung von Anwendungslogik und HTML Präsentation

6

Servlets

7

Vor- und Nachteile von Servlets

 Vorteile:    Performance (pro Request ein Thread) Plattformunabhängig durch Java Webcontainer können zusätzliche Dienste anbieten • Sicherheit (Security) • Error-Handling • ...

 Nachteile:  Keine Trennung von Logik und HTML Präsentation  Ungeeignet für Designer

8

Java Server Pages (JSP)

9

Ausgangspunkt: HTML-Dokument

JSP - HelloWorld Dies ist eine statische HTML-Seite.

10

Einfügen von Java-Anweisungen

JSP - HelloWorld Dies ist eine dynamische JSP.
Es ist jetzt genau:

<%= new java.util.Date() %>

11

Interpretation durch den Browser

12

Voraussetzungen für den Einsatz von JSP  JSP-/Servlet-Engine   Apache Tomcat Jetty  Oder Applikationsserver   Glassfish Jboss  Gerimino  Java, Standard Edition  Java, Enterprise Edition  Eine Datenbank (MySQL)

13

Verzeichnisstruktur Tomcat

14

Projektverzeichnis Date

Web Deployment Descriptor

15

Web Deployment Descriptor

Eine Webanwendung Dies ist eine auf JSP basierende Beispielanwendung

16

HelloWorld.jsp

17

Quelltext von HelloWorld.jsp

18

JSP - Syntax

Bisher ist eine JSP zunächst nichts anderes, als eine um besondere Tags erweiterte HTML-Seite.

Diese Tags unterteilen sich in vier Klassen:  Scriptlets der Form <%

Java-Code %>

 Deklarationen der Form <%!

Java-Code %>

 Ausdrücke der Form <%=

Java-Ausdruck %>

 Kommentare der Form <%--

Kommentartext --%>

19

Beispiel für eine if-else-Anweisung

<%!

private static boolean

java.util.Calendar.HOUR_OF_DAY

isDay()

{ int hour = new java.util.GregorianCalendar().get( … ); if (hour > 6 && hour< 18){

return true;

}

return false;

} %> <% if ( isDay() ) { %> Guten Tag … <% } else { %> Gute Nacht … <% } %>

20

Vergleich: Ausdrücke, Scriptlets, Deklarationen

Ausdruck Scriptlet Deklaration Tag Ausgabe in die JSP Mögliche Anweisungen Abschluss einer Anweisung

<%= … %> Resultat wird direkt in die Seite integriert.

Auf eine Aus gabeanweisung beschränkt.

Anweisung wird nicht abge schlossen.

Definition von Variablen

Ist nicht möglich.

<% … %> <%!

… %> Ausgaben in die Erfolgen über die Variable out.

Ausgaben sind nicht möglich.

Anweisungsfolgen möglich.

Vollständige De klaration von Methoden möglich.

Alle Anweisungen werden von einem Semikolon (;) abgeschlossen.

Alle Anweisungen werden von einem Semikolon (;) abgeschlossen.

Lokale Variablen möglich.

21

Globale Variablen möglich.

XML-basierte Schreibweise

Ausdruck Tag

<%= zahl %>

Scriptlet Deklaration

<% out.println("Hello"); out.println("World"); %> <%!

int zahl = 100; %>

XML-Notation

zahl out.println("Hello"); out.println("World"); int zahl = 100;

22

Vordefinierte Objekte

Innerhalb einer JSP-Datei existieren implizierte Objekte, die in jeder JSP von Anfang an zur Verfügung stehen, ohne das sie vorher über eine Deklaration erstellt wurden. • • • • • out application request session config • • • • • response pageContext exception page jspContext

23

Das request-Objekt

request (javax.servlet.http.HttpServletRequest) Ist für Anfragen zuständig, z.B. beim Senden von Formularen aus Formularfeldern an eine JSP-Datei.

Form.jsp

Ihre Daten

Vorname:

24

Das request-Objekt

25

Das request-Objekt

get_Data.jsp

Ausgabe <% String vn = request.getParameter("

vorname

"); String nn = request.getParameter("

nachname

"); out.println("Vorname: " + vn); %> out.println("
Nachname: " + nn);

26

Das request-Objekt

27

Direktiven – Eigenschaften einer JSP

Direktiven betreffen die aktuelle JSP-Datei und beeinflussen den Aufbau der JSP-Seite.

Sie sind in drei Kategorien aufgeteilt:  page   include taglib Alle drei Direktiven haben stets die gleiche Form: <%@ NameDerDirektive attribut="Wert" %>

28

Page Direktive

Die page-Direktive gibt Auskunft über die verwen dete Sprache, kann Java-Klassen importieren und eine Fehlerseite angeben.

<%- Importieren der Java-Klasse 'java.util.Date' --%>

<%@ page

import

="

java.util.GregorianCalendar

()" %> ...

<%- Verwenden der Klasse 'Date' ohne vollständigen Pfad --%>

<% GregorianCalendar cal =

new

GregorianCalendar();

%> 29

Attribute der page-Direktive

Attribut

language import errorPage isErrorPage contentType pageEncoding

Kurzbeschreibung

Definiert die Skripting-Language Importiert benötigte Klassen und Pakete Eine relative URL zu einer Seite, die im Fehlerfalle aufgerufen werden soll. Gibt an, ob die seite eine Seite zur darstellung von Fehlern sein soll. Legt den Mime-Typ der Antwort an z.B. „text/html" oder "text/xml“.

Bei internationalisierten Seiten geradezu ein Pflicht Attribut!

30

Aktionen

Neben den Direktiven kennt JSP so genannte Aktionen. Diese sind nichts anderes als bestimmte definierte JSP-Elemente, die eine besondere Funktion ausführen.

Derartige Funktionen können sein:    Weiterleitung auf eine externe Datei oder Webseite.

Einfügen einer externen HTML- oder JSP-Datei.

Einbinden einer JavaBean.

31

JSPs und JavaBeans

Die Idee der Beans ist die Aufteilung von Funktion alitäten in kleine Komponenten, die so genannten Beans. Beans sind normale Java-Klassen, die nach gewissen Regeln geschrieben sind.

   JavaBeans müssen einen parameterlosen Konstruktor besitzen, über den sie erzeugt werden.

Die Attribute bzw. Eigenschaften bestehen aus einer nichtöffentlichen (private) Instanzvariable und öffentlichen Zugriffsmethoden (public), welche umgangssprachlich auch Getter und Setter genannt werden.

Die Zugriffsmethoden haben immer die Form setXxx() und getXxx() bzw. isXxx() bei booleschen Attributen.

32

Die erste Bean

Eine Zufallszahl soll von einer Bean ermittelt werden und von der JSP-Datei im Browser angezeigt werden.

    Eine einfache Bean, die innerhalb einer JSP eingesetzt werden kann. ->Zufallsgenerator Die JSP-Datei ruft die Bean auf.

Die Bean ermittelt die Zufallszahl.

Das Ergebnis wird an die JSP Datei zurückgegeben und angezeigt.

33

Verzeichnisstruktur

34

Der Bean-Code - Teil 1

package import bean; java.util.Random; public class Randomize { private int private obergrenze Random r = new ; Random(); public Randomize() { }

35

Der Bean-Code - Teil 2

public int return getObergrenze() { obergrenze ; } public void setObergrenze( int this .

obergrenze obergrenze) { = obergrenze; } public int int getZufall() { zufall = r .nextInt( obergrenze ); return } zufall; } // class Randomize 36

Einfügen der Bean

37

Der JSP-Code

<

jsp:useBean

id="ran" class="bean.Randomize" /> Zufallszahl <% ran.setObergrenze(50); int zufall=ran.getZufall(); out.println("Die Zufallszahl lautet: "); out.println(zufall); %>

38

Ausgabe im Browser

39

Gültigkeitsbereiche einer JavaBean

Durch Scoping lässt sich die Sichtbarkeit von Objekten innerhalb der Web-Applikation regeln.

scope="session"

/> Die Sichtbarkeit ist in verschiedene Levels aufgeteilt.

Jedes Level hat eine höhere Sichtbarkeit:     page (Standardwert) request session application

40

Alternativer Aufruf der setter-/getter-Methoden

setProperty

name="ran" property="obergrenze “, value="50" /> Zufallszahl Die Zufallszahl lautet:

getProperty

name="ran" property="zufall" />

41

Fazit – Java Server Pages

 Vorteile:    JSP sind effizient Java eröffnet als OO-Programmiersprache mehr Möglichkeiten als Skriptsprachen.

Plattformunabhängig  Nachteil:  Servlet-/JSP-Container ist notwendig: z.B. Tomcat

42

Quellen

 Michael Seeboerg Weichselbaum: Java Server Pages. Markt und Technik (2004)  Thomas Stark: Java EE 5 Einstieg für Anspruchsvolle.

Addison Wesley, München (Oktober 2006)  http://www.jsptutorial.org/  http://de.wikipedia.org/

43

Seminar Internet - Technologie

Java Server Pages