1 / 44

Java Server Pages

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. Was sind Java Server Pages (JSP)?.

kipp
Download Presentation

Java Server Pages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 DeploymentDescriptor

  16. Web DeploymentDescriptor <?xmlversion="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>

  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 staticbooleanisDay(){ int hour = new java.util.GregorianCalendar().get( … ); if (hour > 6 && hour< 18){ returntrue; } returnfalse; } %> <html> <body> <% if ( isDay() ) { %> Guten Tag … <% } else { %> Gute Nacht … <% } %> </body> </html> java.util.Calendar.HOUR_OF_DAY

  21. Vergleich: Ausdrücke, Scriptlets, Deklarationen

  22. XML-basierte Schreibweise

  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.

  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>IhreDaten</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:<%@NameDerDirektiveattribut="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' --%> <%@pageimport="java.util.GregorianCalendar()" %> ... <%-- Verwenden der Klasse 'Date' ohne vollständigen Pfad --%> <%GregorianCalendar cal = newGregorianCalendar();%>

  30. Attribute der page-Direktive

  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 packagebean; importjava.util.Random; publicclassRandomize { privateintobergrenze; private Random r = new Random(); publicRandomize() { } …

  36. Der Bean-Code - Teil 2 publicintgetObergrenze() { returnobergrenze; } publicvoidsetObergrenze(intobergrenze) { this.obergrenze = obergrenze; } publicintgetZufall() { int zufall = r.nextInt(obergrenze); return zufall; } } // classRandomize

  37. Einfügen der Bean

  38. Der JSP-Code <jsp:useBeanid="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:useBeanid="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:useBeanid="ran" class="bean.Randomize" /> <jsp:setPropertyname="ran" property="obergrenze“, value="50" /> <html> <head> <title>Zufallszahl</title></head> <body> Die Zufallszahl lautet: <jsp:getPropertyname="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) • http://www.jsptutorial.org/ • http://de.wikipedia.org/

  44. Seminar Internet - Technologie Vielen Dank ! Java Server Pages

More Related