230 likes | 382 Views
JSP. Einführung Skripte Direktiven Tomcat 3.2 Version 1.1 Tomcat 4.0 Version 1.2. JBuilder Fr. 220.- beim Jäggi (mit Legi). Bis jetzt Servlets …. Webserver (Tomcat). get start. Servlet Container generiert HTML versendet via http. In Zukunft …. Präsentationsschicht
E N D
JSP • Einführung • Skripte • Direktiven • Tomcat 3.2 Version 1.1 • Tomcat 4.0 Version 1.2 JBuilder Fr. 220.- beim Jäggi (mit Legi)
Bis jetzt Servlets … Webserver (Tomcat) get start Servlet Container generiert HTML versendet via http
In Zukunft … • Präsentationsschicht • Scriptprogrammierung
Möglichkeiten von JSP • HTML + Java in spez. Tag • Mischung von HTML / XML / Java-Code • Einfachheit • Trennung von Darstellung und Logik • Definition eigener Tags JSP Implementierung Logik Präsentation Darstellung
CGI HTTP Server Request CGI Process StartProcess Gen.Data ReceiveCGI out Process starten kostet Zeit !! SendResponse
HTTP Server JSP Receive Request JSP Container Page Compiler JSP Servlet current? Nein Parse JSP Ja JSP Servlet loaded? Ja Generate JSPServlet Source Nein Load Servlet Compile JSPServlet JSP PAGEServlet GenerateResponse SendResponse
Syntax • „Standard“-Syntax<% ... %> • XML-Syntax<jsp:einJspTag>...</jsp:einJspTag> • Skripte (scripts) / Programmierung • Direktiven (directives) / Steuerung JSP Container • Aktionen (actions) / Kontrollfluss JSP
Skripte • Deklaration: Definition Variablen, Methode für die aktuelle Seite • <%! • Scriptlets: Blöcke von Code • <% • Expressions: Einzelne Linien von Code automatisch in Seitenausgabe eingefügt. • <%=
Deklarationen • <%! privat int x=0,y=0; • privat String unit=“hallo“;%> • <%! Circle a = new Circle(2.0); %> • <jsp:declaration> • privat int x=0,y=0; • privat String unit=“hallo“; • </jsp:declaration>
Lokale vs. Klassen Variablen • Lokal, neu pro Instanz, für einen User gedacht. • <%! private int z=0; %> • Klassen Variable, für alle Instanzen (alle User) • <%! static public int z=0; %>
Ausdrücke (Expressions) • <%= numguess.getHint()%> • <jsp:expression> numguess.getHint()</jsp:expression> • direkte Ausgabe in den Outputstream • Stringkonvertierung über toString()oder String.valueOf() • äquivalent zu out.print(...); • Spez. Ausdruck: • test_expr ? true_exp : false_exp • <%= (hours < 12) ? “AM“ : “PM“ %>
Beispiel Script • <% • String name = null; • if (request.getParameter("name") == null) { • %> • <%@ include file="error.html" %> • <% • } else { • foo.setName(request.getParameter("name")); • if (foo.getName().equalsIgnoreCase("integra")) • name = "acura"; • if (name.equalsIgnoreCase( "acura" )) { • %>
Direktiven • Enthalten globale Informationen für den Pagecompiler und auch den JSP-Container • Allgemeine Definitionen • import Anweisungen • Tag-Bibliotheken • Anzeige von Fehler-Seiten • Erzeugen keine Ausgabe • keine laufzeitrelevanten Inhalte JSP
Direktive • Syntax1: • <%@ page attribute1=“value1” %> • Syntax2: • <jsp:directive.page attribute1=“value1” />
Direktive Page • <%@ page • [ language="java" ] • [ extends="package .class" ] • [ import="{package .class | package.*}, ..." ] • [ session="true|false" ] • [ buffer="none|8kb|sizekb" ] • [ autoFlush="true|false" ] • [ isThreadSafe="true|false" ] • [ info="text" ] • [ errorPage="relativeURL" ] • [ contentType="mimeType [ ;charset=characterSet ]" | • "text/html ; charset=ISO-8859-1" ] • [ isErrorPage="true|false" ] • %>
include.jsp: <html> <head><title>An Include Test</title></head> <body bgcolor="white"> <font color="blue"> The current date and time are <%@ include file="date.jsp" %> </font> </body> </html> date.jsp: <%@ page import="java.util.*" %> <%= (new java.util.Date() ) .toLocaleString() %> Displays in the page: The current date and time are Aug 30, 1999 2:38:40 Include
Implizite Objekte • stehen in jeder JSP zur Verfügung • page (javax.servlet.jsp.HttpJspPage) • config (javax.servlet.ServletConfig) • request (javax.servlet.http.HttpRequest) • response (javax.servlet.http.HttpResponse) • out (javax.servlet.jsp.JspWriter) • session (javax.servlet.http.HttpSession) • application (javax.servlet.ServletContext) • pageContext (javax.servlet.jsp.PageContext) • exception (java.lang.Throwable) • … JSP
Request Bsp. • <% String Str = request.getParameter(“name“); %> • Ihr Name ist: <%= Str %> • Praktikum • Servlet Geschichte beenden • Helo World jsp • Primzahlen • Nummer Ratespiel • Euro in SFr. umrechnung
quellenangaben • Offizielle Spezifikationen, Klassenbibliotheken & -dokumentation • http://java.sun.com/products/servlet/ • http://java.sun.com/products/jsp/ • Tutorials • The J2EE™ Tutorial • Java Servlet Technology / JavaServer Pages ™ Technology http://java.sun.com/j2ee/tutorial/ • The Java ™ Tutorial • Trail: Servlets: http://java.sun.com/docs/books/tutorial/servlets/ • Campione M. et al.: The Java™ Tutorial Continued: The Rest of the JDK; Addison-Wesley Pub Co; ISBN: 0201485583
Quellenangaben (II) • Tomcat, Jakarta Project • http://jakarta.apache.org • Bücher: • Hunter J. & Crawford W.: Java™ Servlet Programming; O‘Reilly & Associates, ISBN: 156592391X • Turau, V.: Java Server Pages; dpunkt-Verlag,ISBN: 3932588665 JSP