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

Post on 06-Apr-2015

136 views 0 download

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

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