Top Banner
Java Server Pages Michael Klenke Seminar Internet - Technologie
44

Java Server Pages Michael Klenke Seminar Internet - Technologie.

Apr 05, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java Server Pages Michael Klenke Seminar Internet - Technologie.

Java Server PagesMichael Klenke

Seminar Internet - Technologie

Page 2: Java Server Pages Michael Klenke Seminar Internet - Technologie.

2

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

Inhalt

Page 3: Java Server Pages Michael Klenke Seminar Internet - Technologie.

3

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

Was sind Java Server Pages (JSP)?

Page 4: Java Server Pages Michael Klenke Seminar Internet - Technologie.

4

HTTP Client Server Architektur

Page 5: Java Server Pages Michael Klenke Seminar Internet - Technologie.

5

Common Gateway Interface (CGI)

Page 6: Java Server Pages Michael Klenke Seminar Internet - Technologie.

6

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

Vor- und Nachteile von CGI

Page 7: Java Server Pages Michael Klenke Seminar Internet - Technologie.

7

Servlets

Page 8: Java Server Pages Michael Klenke Seminar Internet - Technologie.

8

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

Vor- und Nachteile von Servlets

Page 9: Java Server Pages Michael Klenke Seminar Internet - Technologie.

9

Java Server Pages (JSP)

Page 10: Java Server Pages Michael Klenke Seminar Internet - Technologie.

10

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<title>JSP - HelloWorld</title>

</head>

<body style="text-align:center">

Dies ist eine statische HTML-Seite.

</body>

</html>

Ausgangspunkt: HTML-Dokument

Page 11: Java Server Pages Michael Klenke Seminar Internet - Technologie.

11

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<title>JSP - HelloWorld</title>

</head>

<body style="text-align:center">

Dies ist eine dynamische JSP.<br />

Es ist jetzt genau: <%= new java.util.Date() %>

</body>

</html>

Einfügen von Java-Anweisungen

Page 12: Java Server Pages Michael Klenke Seminar Internet - Technologie.

12

Interpretation durch den Browser

Page 13: Java Server Pages Michael Klenke Seminar Internet - Technologie.

13

JSP-/Servlet-Engine Apache Tomcat Jetty

Oder Applikationsserver Glassfish Jboss Gerimino

Java, Standard Edition

Java, Enterprise Edition

Eine Datenbank (MySQL)

Voraussetzungen für den Einsatz von JSP

Page 14: Java Server Pages Michael Klenke Seminar Internet - Technologie.

14

Verzeichnisstruktur Tomcat

Page 15: Java Server Pages Michael Klenke Seminar Internet - Technologie.

15

Projektverzeichnis Date

Web Deployment Descriptor

Page 16: Java Server Pages Michael Klenke Seminar Internet - Technologie.

16

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application

2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app> <display-name>Eine Webanwendung</display-

name> <description> Dies ist eine auf JSP basierende Beispielanwendung </description></web-app>

Web Deployment Descriptor

Page 17: Java Server Pages Michael Klenke Seminar Internet - Technologie.

17

HelloWorld.jsp

Page 18: Java Server Pages Michael Klenke Seminar Internet - Technologie.

18

Quelltext von HelloWorld.jsp

Page 19: Java Server Pages Michael Klenke Seminar Internet - Technologie.

19

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 --%>

JSP - Syntax

Page 20: Java Server Pages Michael Klenke Seminar Internet - Technologie.

20

<%!

private static boolean isDay() { int hour = new java.util.GregorianCalendar().get( … );

if (hour > 6 && hour< 18){

return true;

}

return false;

}

%>

<html> <body>

<% if ( isDay() ) { %>

Guten Tag …

<% } else { %>

Gute Nacht …

<% } %>

</body> </html>

Beispiel für eine if-else-Anweisung

java.util.Calendar.HOUR_OF_DAY

Page 21: Java Server Pages Michael Klenke Seminar Internet - Technologie.

21

Vergleich: Ausdrücke, Scriptlets, Deklarationen

Ausdruck Scriptlet Deklaration

Tag <%= … %> <% … %> <%! … %>

Ausgabe in die JSP

Resultat wirddirekt in die

Seite integriert.

Ausgaben in dieErfolgen über die

Variable out.

Ausgaben sind nicht möglich.

Mögliche Anweisungen

Auf eine Aus-gabeanweisung

beschränkt.

Anweisungsfolgenmöglich.

Vollständige De-klaration von

Methoden möglich.

Abschluss einer

Anweisung

Anweisung wirdnicht abge-schlossen.

Alle Anweisungenwerden von einem

Semikolon (;) abgeschlossen.

Alle Anweisungenwerden von einem

Semikolon (;) abgeschlossen.

Definition vonVariablen

Ist nicht möglich.Lokale Variablen

möglich.Globale Variablen

möglich.

Page 22: Java Server Pages Michael Klenke Seminar Internet - Technologie.

22

XML-basierte Schreibweise

Tag XML-Notation

Ausdruck <%= zahl %><jsp:expression> zahl</jsp:expression>

Scriptlet

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

<jsp:scriplet> out.println("Hello"); out.println("World");</jsp:scriplet>

Deklaration<%! int zahl = 100;%>

<jsp:declaration> int zahl = 100;</jsp:declaration>

Page 23: Java Server Pages Michael Klenke Seminar Internet - Technologie.

23

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.

Vordefinierte Objekte

• out • response

• application • pageContext

• request • exception

• session • page

• config • jspContext

Page 24: Java Server Pages Michael Klenke Seminar Internet - Technologie.

24

request (javax.servlet.http.HttpServletRequest)

Ist für Anfragen zuständig, z.B. beim Senden von Formularen aus Formularfeldern an eine JSP-Datei.

<html><head> <title>Ihre Daten</title></head><body> <form name="Eingabe" action="get_Data.jsp" method="post"> Vorname: <input type="text" name="vorname“ ><br> Nachname: <input type="text" name="nachname"><br> <input type="submit" value="Abschicken"> </form></body> </html>

Das request-Objekt

Form.jsp

Page 25: Java Server Pages Michael Klenke Seminar Internet - Technologie.

25

Das request-Objekt

Page 26: Java Server Pages Michael Klenke Seminar Internet - Technologie.

26

<html><head><title>Ausgabe</title></head> <body> <% String vn = request.getParameter("vorname"); String nn = request.getParameter("nachname"); out.println("Vorname: " + vn); out.println("<br>Nachname: " + nn); %> </body></html>

Das request-Objekt

get_Data.jsp

Page 27: Java Server Pages Michael Klenke Seminar Internet - Technologie.

27

Das request-Objekt

Page 28: Java Server Pages Michael Klenke Seminar Internet - Technologie.

28

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" %>

Direktiven – Eigenschaften einer JSP

Page 29: Java Server Pages Michael Klenke Seminar Internet - Technologie.

29

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();

%>

Page Direktive

Page 30: Java Server Pages Michael Klenke Seminar Internet - Technologie.

30

Attribut Kurzbeschreibung

language Definiert die Skripting-Language

import Importiert benötigte Klassen und Pakete

errorPage Eine relative URL zu einer Seite, die im Fehlerfalle aufgerufen werden soll.

isErrorPage Gibt an, ob die seite eine Seite zur darstellung von Fehlern sein soll.

contentType Legt den Mime-Typ der Antwort an z.B. „text/html" oder "text/xml“.

pageEncoding Bei internationalisierten Seiten geradezu ein Pflicht-Attribut!

Attribute der page-Direktive

Page 31: Java Server Pages Michael Klenke Seminar Internet - Technologie.

31

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.

Aktionen

Page 32: Java Server Pages Michael Klenke Seminar Internet - Technologie.

32

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.

JSPs und JavaBeans

Page 33: Java Server Pages Michael Klenke Seminar Internet - Technologie.

33

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.

Die erste Bean

Page 34: Java Server Pages Michael Klenke Seminar Internet - Technologie.

34

Verzeichnisstruktur

Page 35: Java Server Pages Michael Klenke Seminar Internet - Technologie.

35

package bean;

import java.util.Random;

public class Randomize {

private int obergrenze;

private Random r = new Random();

public Randomize() {

}

Der Bean-Code - Teil 1

Page 36: Java Server Pages Michael Klenke Seminar Internet - Technologie.

36

public int getObergrenze() {

return obergrenze;

}

public void setObergrenze(int obergrenze) {

this.obergrenze = obergrenze;

}

public int getZufall() {

int zufall = r.nextInt(obergrenze);

return zufall;

}

} // class Randomize

Der Bean-Code - Teil 2

Page 37: Java Server Pages Michael Klenke Seminar Internet - Technologie.

37

Einfügen der Bean

Page 38: Java Server Pages Michael Klenke Seminar Internet - Technologie.

38

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

Der JSP-Code

Page 39: Java Server Pages Michael Klenke Seminar Internet - Technologie.

39

Ausgabe im Browser

Page 40: Java Server Pages Michael Klenke Seminar Internet - Technologie.

40

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

<jsp:useBean id="ran" class="bean.Randomize" scope="session" />

Die Sichtbarkeit ist in verschiedene Levels aufgeteilt.Jedes Level hat eine höhere Sichtbarkeit:

page (Standardwert) request session application

Gültigkeitsbereiche einer JavaBean

Page 41: Java Server Pages Michael Klenke Seminar Internet - Technologie.

41

<jsp:useBean id="ran" class="bean.Randomize" /><jsp:setProperty name="ran" property="obergrenze“,

value="50" />

<html> <head> <title>Zufallszahl</title></head> <body> Die Zufallszahl lautet: <jsp:getProperty name="ran"

property="zufall" /> </body></html>

Alternativer Aufruf der setter-/getter-Methoden

Page 42: Java Server Pages Michael Klenke Seminar Internet - Technologie.

42

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

Fazit – Java Server Pages

Page 43: Java Server Pages Michael Klenke Seminar Internet - Technologie.

43

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/

Quellen

Page 44: Java Server Pages Michael Klenke Seminar Internet - Technologie.

Java Server Pages

Seminar Internet - Technologie