JSP Bis jetzt Servlets …

Werbung
JSP
Einführung
Skripte
Direktiven
Tomcat 3.2 Version 1.1
Tomcat 4.0 Version 1.2
Bis jetzt Servlets …
get start
JBuilder
JBuilder
Fr.
Fr. 220.220.-beim
beim
Jäggi
Jäggi
(mit
(mitLegi)
Legi)
Webserver (Tomcat)
Servlet Container
generiert HTML
versendet via http
1
In Zukunft …
•Präsentationsschicht
•Scriptprogrammierung
-63
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äsentation
Darstellung
Implementierung
Logik
2
HTTP Server
CGI
Request
CGI Process
Start
Process
Gen.
Data
Receive
CGI out
Process starten
kostet Zeit !!
Send
Response
JSP
3
HTTP Server
Receive
Request
JSP Servlet
current?
JSP
Nein
JSP Container
Page Compiler
Parse JSP
Ja
Ja
JSP Servlet
loaded?
Generate JSP
Servlet Source
Nein
Load
Servlet
Compile JSP
Servlet
JSP PAGE
Servlet
Generate
Response
Send
Response
javax.servlet.jsp.HttpJspPage
<%@
<%@ page
page %>
%>
Direktiven
Direktiven
<%@
<%@ taglib
taglib %>
%>
<%!
<%! declaration
declaration %>
%>
<%@
<%@ include
include %>
%>
JSP
JSP
Skripte
Skripte
<%
<% scriptlet
scriptlet %>
%>
<%=
<%= expression
expression %>
%>
Aktionen
Aktionen
<jsp:useBean>
<jsp:useBean>
<jsp:include>
<jsp:include>
<jsp:fallback>
<jsp:fallback>
<jsp:setProperty>
<jsp:setProperty>
<jsp:forward>
<jsp:forward>
<jsp:plugin>
<jsp:plugin>
<jsp:getProperty>
<jsp:getProperty>
<jsp:params>
<jsp:params>
<benutzerdef.>
<benutzerdef.>
4
Syntax
-63
„Standard“-Syntax
<% ... %>
XML-Syntax
<jsp:einJspTag>...</jsp:einJspTag>
Skripte (scripts)
/ Programmierung
Direktiven (directives) / Steuerung JSP Container
Aktionen (actions)
/ Kontrollfluss
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.
<%=
5
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; %>
6
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
6WULQJQDPH QXOO
LIUHTXHVWJHW3DUDPHWHUQDPH QXOO^
!
<%@ include file="error.html" %>
`HOVH^
IRRVHW1DPHUHTXHVWJHW3DUDPHWHUQDPH
LIIRRJHW1DPHHTXDOV,JQRUH&DVHLQWHJUD
QDPH DFXUD
LIQDPHHTXDOV,JQRUH&DVHDFXUD^
!
7
Direktiven
-63
Enthalten globale Informationen für den
Pagecompiler und auch den JSP-Container
Allgemeine Definitionen
4import Anweisungen
4Tag-Bibliotheken
4Anzeige von Fehler-Seiten
Erzeugen keine Ausgabe
keine laufzeitrelevanten Inhalte
Direktive
Syntax1:
<%@ page attribute1=“value1” %>
Syntax2:
<jsp:directive.page attribute1=“value1” />
8
Direktive Page
<%@ page
[ language="MDYD" ]
[ extends="SDFNDJH.FODVV" ]
[ import="{SDFNDJH.FODVV| SDFNDJH.}, ..." ]
[ session="WUXH|false" ]
[ buffer="none|NE|VL]Hkb" ]
[ autoFlush="WUXH|false" ]
[ isThreadSafe="WUXH|false" ]
[ info="WH[W" ]
[ errorPage="UHODWLYH85/" ]
[ contentType="PLPH7\SH[ ;charset=FKDUDFWHU6HW]" |
WH[WKWPOFKDUVHW ,62]
[ isErrorPage="true|IDOVH" ]
%>
Include
LQFOXGHMVS
<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>
GDWHMVS
<%@ page
import="java.util.*" %>
<%= (new java.util.Date() )
.toLocaleString() %>
'LVSOD\VLQWKH SDJH
The current date and time
are
Aug 30, 1999 2:38:40
9
Implizite Objekte
-63
VWHKHQLQMHGHU-63]XU9HUIJXQJ
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)
…
Request Object
javax.servlet.http.HttpServletRequest
10
Request Bsp.
<% String Str = request.getParameter(“name“); %>
Ihr Name ist: <%= Str %>
3UDNWLNXP
1. Servlet Geschichte beenden
2. Helo World jsp
3. Primzahlen
4. Nummer Ratespiel
5. Euro in SFr. umrechnung
quellenangaben
Offizielle Spezifikationen, Klassenbibliotheken & dokumentation
4http://java.sun.com/products/servlet/
4http://java.sun.com/products/jsp/
Tutorials
4The J2EE™ Tutorial
4Java Servlet Technology / JavaServer Pages ™ Technology
http://java.sun.com/j2ee/tutorial/
4The Java ™ Tutorial
4Trail: Servlets:
http://java.sun.com/docs/books/tutorial/servlets/
4Campione M. et al.: The Java™ Tutorial Continued: The Rest
of the JDK; Addison-Wesley Pub Co; ISBN: 0201485583
11
Quellenangaben (II)
Tomcat, Jakarta Project
4http://jakarta.apache.org
-63
Bücher:
4Hunter J. & Crawford W.: Java™ Servlet
Programming; O‘Reilly & Associates, ISBN:
156592391X
4Turau, V.: Java Server Pages; dpunkt-Verlag,
ISBN: 3932588665
12
Herunterladen