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)
JBuilder
Fr. 220.- beim Jäggi
(mit Legi)
Bis jetzt Servlets …
Servlet Container
generiert HTMLversendet via http
get start
Webserver (Tomcat)
In Zukunft …
•Präsentationsschicht•Scriptprogrammierung
JSP
Möglichkeiten von JSP
• HTML + Java in spez. Tag
• Mischung von HTML / XML / Java-Code
• Einfachheit
• Trennung von Darstellung und Logik
• Definition eigener Tags
PräsentationDarstellung
ImplementierungLogik
CGI Process
HTTP Server CGI
Request
StartProcess
ReceiveCGI out
SendResponse
Gen.Data
Process starten kostet Zeit !!
JSP
HTTP Server
JSP Container
Page Compiler
JSP PAGEServlet
JSP
SendResponse
LoadServlet
Compile JSPServlet
Generate JSPServlet Source
Parse JSP
ReceiveRequest
GenerateResponse
JSP Servletloaded?
JSP Servletcurrent?
Ja
Ja
Nein
Nein
javax.servlet.jsp.HttpJspPage
JSPJSP
DirektivenDirektiven
SkripteSkripte
AktionenAktionen
<%@ page %> <%@ page %>
<%@ include %> <%@ include %>
<%@ taglib %> <%@ taglib %>
<%= expression %> <%= expression %>
<% scriptlet %> <% scriptlet %>
<%! declaration %> <%! declaration %>
<benutzerdef.> <benutzerdef.>
<jsp:plugin> <jsp:plugin>
<jsp:fallback> <jsp:fallback>
<jsp:params> <jsp:params>
<jsp:forward> <jsp:forward>
<jsp:include> <jsp:include>
<jsp:getProperty> <jsp:getProperty>
<jsp:setProperty> <jsp:setProperty>
<jsp:useBean> <jsp:useBean>
Syntax
„Standard“-Syntax<% ... %>XML-Syntax<jsp:einJspTag>...</jsp:einJspTag>
Skripte (scripts) / ProgrammierungDirektiven (directives) / Steuerung JSP ContainerAktionen (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 Definitionenimport AnweisungenTag-BibliothekenAnzeige 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
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 areAug 30, 1999 2:38:40
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 Objectjavax.servlet.http.HttpServletRequest
Request Bsp.
<% String Str = request.getParameter(“name“); %>
Ihr Name ist: <%= Str %>
Praktikum
1. Servlet Geschichte beenden
2. Helo World jsp
3. Primzahlen
4. Nummer Ratespiel
5. Euro in SFr. umrechnung
quellenangaben
Offizielle Spezifikationen, Klassenbibliotheken & -dokumentation
http://java.sun.com/products/servlet/http://java.sun.com/products/jsp/
TutorialsThe J2EE™ Tutorial
Java Servlet Technology / JavaServer Pages ™ Technology http://java.sun.com/j2ee/tutorial/
The Java ™ TutorialTrail: 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 Projecthttp://jakarta.apache.org
Bücher:Hunter J. & Crawford W.: Java™ Servlet Programming; O‘Reilly & Associates, ISBN: 156592391XTurau, V.: Java Server Pages; dpunkt-Verlag,ISBN: 3932588665
JSP