Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Internet - Technologie

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Internet - Technologie"—  Präsentation transkript:

1 Seminar Internet - Technologie
Java Server Pages Michael Klenke

2 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

3 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

4 HTTP Client Server Architektur

5 Common Gateway Interface (CGI)

6 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

7 Servlets

8 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

9 Java Server Pages (JSP)

10 Ausgangspunkt: HTML-Dokument
<!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>

11 Einfügen von Java-Anweisungen
<!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>

12 Interpretation durch den Browser

13 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)

14 Verzeichnisstruktur Tomcat

15 Projektverzeichnis Date
Web Deployment Descriptor

16 Web Deployment Descriptor
<?xml version="1.0" encoding="ISO "?> <!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>

17 HelloWorld.jsp

18 Quelltext von HelloWorld.jsp

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

20 Beispiel für eine if-else-Anweisung
<%! 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> java.util.Calendar.HOUR_OF_DAY

21 Vergleich: Ausdrücke, Scriptlets, Deklarationen
Ausdruck Scriptlet Deklaration Tag <%= … %> <% … %> <%! … %> Ausgabe in die JSP Resultat wird direkt in die Seite integriert. Ausgaben in die Erfolgen über die Variable out. Ausgaben sind nicht möglich. Mögliche Anweisungen Auf eine Aus-gabeanweisung beschränkt. Anweisungsfolgen möglich. Vollständige De-klaration von Methoden möglich. Abschluss einer Anweisung Anweisung wird nicht abge-schlossen. Alle Anweisungen werden von einem Semikolon (;) abgeschlossen. Definition von Variablen Ist nicht möglich. Lokale Variablen Globale Variablen

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"); </jsp:scriplet> Deklaration <%! int zahl = 100; <jsp:declaration> int zahl = 100; </jsp:declaration>

23 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 response application pageContext request exception session page config jspContext

24 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. <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> Form.jsp

25 Das request-Objekt

26 Das request-Objekt <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> get_Data.jsp

27 Das request-Objekt

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

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

30 Attribute der page-Direktive
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!

31 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.

32 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.

33 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.

34 Verzeichnisstruktur

35 Der Bean-Code - Teil 1 package bean; import java.util.Random; public class Randomize { private int obergrenze; private Random r = new Random(); public Randomize() { } …

36 Der Bean-Code - Teil 2 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

37 Einfügen der Bean

38 Der JSP-Code <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>

39 Ausgabe im Browser

40 Gültigkeitsbereiche einer JavaBean
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

41 Alternativer Aufruf der setter-/getter-Methoden
<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>

42 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

43 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)

44 Seminar Internet - Technologie
Vielen Dank ! Java Server Pages


Herunterladen ppt "Seminar Internet - Technologie"

Ähnliche Präsentationen


Google-Anzeigen