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)

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

Embed Size (px)

Citation preview

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