JSP

Werbung
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 …
get start
Webserver (Tomcat)
Servlet Container
generiert HTML
versendet via http
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äsentation
Darstellung
Implementierung
Logik
HTTP Server
CGI
Request
CGI Process
Start
Process
Gen.
Data
Receive
CGI out
Send
Response
Process starten
kostet Zeit !!
JSP
HTTP Server
Receive
Request
JSP Servlet
current?
JSP
Nein
Ja
Ja
JSP Servlet
loaded?
Nein
Load
Servlet
Generate
Response
Send
Response
JSP Container
Page Compiler
Parse JSP
Generate JSP
Servlet Source
Compile JSP
Servlet
JSP PAGE
Servlet
javax.servlet.jsp.HttpJspPage
<%@ page %>
Direktiven
<%@ taglib %>
<%! declaration %>
<%@ include %>
JSP
Skripte
<% scriptlet %>
<%= expression %>
Aktionen
<jsp:useBean>
<jsp:include>
<jsp:fallback>
<jsp:setProperty>
<jsp:forward>
<jsp:plugin>
<jsp:getProperty>
<jsp:params>
<benutzerdef.>
Syntax
JSP
„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.
<%=
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
JSP
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
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
are
Aug 30, 1999 2:38:40
Implizite Objekte
JSP
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)
…
Request Object
javax.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/
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
JSP
Bücher:
Hunter J. & Crawford W.: Java™ Servlet
Programming; O‘Reilly & Associates, ISBN:
156592391X
Turau, V.: Java Server Pages; dpunkt-Verlag,
ISBN: 3932588665
Herunterladen