JSP Einführung Skripte Direktiven Tomcat 3.2 Version 1.1 Tomcat 4.0 Version 1.2 JBuilder Fr. 220.-...

23
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)

Transcript of JSP Einführung Skripte Direktiven Tomcat 3.2 Version 1.1 Tomcat 4.0 Version 1.2 JBuilder Fr. 220.-...

Page 1: 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.

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)

Page 2: 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.

Bis jetzt Servlets …

Servlet Container

generiert HTMLversendet via http

get start

Webserver (Tomcat)

Page 3: 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.

In Zukunft …

•Präsentationsschicht•Scriptprogrammierung

Page 4: 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.

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

Page 5: 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.

CGI Process

HTTP Server CGI

Request

StartProcess

ReceiveCGI out

SendResponse

Gen.Data

Process starten kostet Zeit !!

Page 6: 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.

JSP

Page 7: 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.

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

Page 8: 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.

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>

Page 9: 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.

Syntax

„Standard“-Syntax<% ... %>XML-Syntax<jsp:einJspTag>...</jsp:einJspTag>

Skripte (scripts) / ProgrammierungDirektiven (directives) / Steuerung JSP ContainerAktionen (actions) / Kontrollfluss

JSP

Page 10: 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.

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.<%=

Page 11: 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.

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>

Page 12: 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.

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; %>

Page 13: 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.

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“ %>

Page 14: 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.

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" )) {%>

Page 15: 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.

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

Page 16: 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.

Direktive

Syntax1:

<%@ page attribute1=“value1” %>

Syntax2:

<jsp:directive.page attribute1=“value1” />

Page 17: 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.

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" ]%>

Page 18: 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.

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

Page 19: 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.

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

Page 20: 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.

Request Objectjavax.servlet.http.HttpServletRequest

Page 21: 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.

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

Page 22: 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.

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

Page 23: 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.

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