Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

25
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov

Transcript of Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Page 1: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Java Server Pages 2 und Benutzerdefinierte Tags

Strahil Yordanov

Page 2: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Überblick

EinleitungJSP im Kontext von J2EEJSP2Benutzerdefinierte TagsZusammenfassung

Page 3: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Einleitung

Java Server Pages ist eine Technik für die Entwicklung dynamischer Web-Seiten.JSP ermöglicht die schriftliche Spezifikation von der Erzeugung einer dynamischen Antwort auf eine Anforderung JSP unterstützt die Trennung zwischen Sicht und Geschäftslogik für eine Webanwendung.

Page 4: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

JSP und J2EE

In der Regel, legt J2EE das Modell wobei viele Benutzer über das Web auf eine Anwendung zugreifen fest. JSP ist so sehr gut für die Präsentationsschicht der J2EE geeignet.JSP entspricht die “View“-Ebene beim MVC Modell:

Page 5: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

JSP und J2EE

JSP ist auf eine andere Technologie zur dynamischen Generierung von Dokumenten basiert—Java Servlets.Ein Servlet ist eine Java Klasse die auf einen Server lauft und Anforderungen von Client Browsers ausführt. Das Servlet generiert dynamische Web-Seiten durch Einbettung von HTML in seinem Java Code.

Page 6: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

JSP und J2EE

JSP Seiten führen dasselbe Funktion wie Servlets aus. Diesmal aber, sie erreichen das durch die Einbettung von Java Code (oder anderem Skript Sprache) in HTML. Deshalb können sie auch wie „umgestülpte“ Servlets gezeichnet werden.

Page 7: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

JSP und J2EE

Bei Übersetzung, JSP Quell-Code ist erst zu Servlet Code und dann zu ausführbarem Programm umgewandelt. Der Lebenszyklus einer JSP-Seite ist wie folgt:

Page 8: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

JSP und J2EE

Hier ist ein Beispiel der Übersetzung. Das ist ein Teil der JSP Seite:

<HTML><BODY><%! String name = new String("BOB"); %><%! public String getName() { return name; } %>Hello <B><%= getName() %></B></BODY></HTML>

Page 9: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Und hier ist der entsprechende Teil des generierten Servlets:

out.write("<HTML>\r\n<BODY>\r\n\r\n");// end// beginout.write("\r\n");// end// beginout.write("\r\n\r\nHello <B>");// end// begin [file="D:\\Expressions.jsp";from=(6,12);to=(6,23)]out.print( getName() );// end// beginout.write("</B>\r\n\r\n</BODY>\r\n</HTML>\r\n");// end

Page 10: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

JSP2

JSP 2.0 ist ein Upgrade von JSP 1.2.Die folgenden syntaktischen Schwerpunkte sind in JSP2 von den vorigen Versionen geerbt: Skripte Direktive Standard Aktionen

Page 11: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Skripte

Skripte versehen JSP mit dynamischer Verhaltung.Mit denen kann man Variablen vereinbaren und lesen, Iteration und Bedingungen verwenden, usw. Das Ergebnis von ihren Ausdrücken kann als Teil vom HTML Code verwandet werden.

Page 12: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Direktive

Direktive bestimmen globale Bedingungen für die jeweilige JSP Seite. Unter anderen sie können: Die JDK Klassen die in dem Dokument zur

Verfügung sind bestimmen Eine Datei zur Übersetzungszeit einfügen Tagbibliotheken vereinbaren

Page 13: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Standard Aktionen

Standard Aktionen liefern Funktionalität die in JSP Seiten oft nötig ist. Sie haben die Syntax von XML tags und u. a. JavaBeans in der Seite integrieren, Kontrolle anderen Seiten weiterleiten Ausgaben anderer Seiten zur Anfragezeit

einbetten

Page 14: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Die Syntax wird in wesentlich so gegliedert:

Page 15: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Beispiel<%@page import="java.util.*" %> <HTML> <HEAD> <TITLE>JSP Example</TITLE>

</HEAD> <BODY BGCOLOR="ffffcc"> <CENTER> <H2>Date and Time</H2> <% java.util.Date today = new

java.util.Date(); If (today.getYear() + 1900 < 2004) {%><jsp:forward

page="TooLate.jsp"><%}else out.println("Today's date is:

"+today); %> </CENTER> </BODY> </HTML>

Direktive Skript Standart Aktion

Page 16: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Expression Language

JSP2 bietet eine einfache Syntax, die Skripte ersetzen soll. Sie heißt „Expression Language“.

Die folgenden Skripten können mit EL viel einfacher ausgedrückt werden.

<someTags:aTag attribute="<%pageContext.getAttribute("aName") %>">.<%= aCustomer.getAddress().getCountry() %>

In EL das sieht so aus:

<someTags:aTag attribute="${aName}"> .${aCustomer.address.country}

Page 17: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

JavaBeans und JSP

Java Beans wird erfolgreich bei der Konstruktion grafischer Benutzeroberflasche eingesetzt.Sie speichern die Geschäftslogik in „Code-Behind“ Klassen und können durch die folgenden JSP Standartaktionen manipuliert werden:

<jsp:useBean..>, <jsp:setProperty..> ,<jsp:getProperty>

Page 18: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

JavaBeans und JSP

Die Verwendung dieser Komponenten in JSP bringt die folgende Vorteile: Auslagerung von Java-Code und damit eine Bessere

Aufteilung bei der Entwicklung von Anwendungen Verwendung schon existierender Komponente Bequemer Zugriff auf Daten aus HTML-Formularen Temporäre Speicherung von Daten für die Dauer

mehrer Anfragen

Page 19: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Benutzerdefinierte Tags

Benutzerdefinierte Tags kapseln Funktionalität für Wiederverwendung.Tags minimieren den Anteil Java-Code in JSP SeitenTags bieten stärkere Abstraktion als Java-CodeTags sorgen durch Wiederverwendung für ein konsistentes Aussehen Ihrer Seiten.

Page 20: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Benutzerdefinierte Tags

Tags werden durch Tag-Handlers definiert. Tag-Handlers sind Java Klassen, die die Funktionalität der Tags enthalten. Tag-Handlers werden in Tag-Bibliotheken gespeichert. Tag-Bibliotheken sind in der Regel in der Form einer Jar-Datei.Der Inhalt der Tag-Bibliotheken wird durch eine XML-Datei beschreibt. Die ist der Tag Library Descriptor(TLD).

Page 21: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Benutzerdefinierte Tags

Benutzerdefinierte Tags u.a. können: Attribute einsetzen. einen Body haben. Den können sie verarbeiten

oder einfach erzeugen. Ineinander geschachtelt werden Miteinander kommunizieren

Page 22: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Der Tag-Handler:

import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;import java.io.IOException; public class HelloTag extends SimpleTagSupport {

public void doTag() throws JspException, IOException {getJspContext().getOut().write("This is my first tag!");

}}

Der Eintrag im Tag Library Descriptor:

<tag> <description>Prints this is my first tag</description> <name>hello</name> <tag-class>jsp2.examples.simpletag.HelloTag</tag-class> <body-content>empty</body-content> </tag>  

Beispiel: Definierung eines Tages

Page 23: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Die JSP Seite. Die taglib Direktive vereinbart die Tagbibliothek zu Benutzung. Ihrer Name und die URI vom TLD werden als Attribute eingegeben.

<%@ taglib prefix="mytag" uri="/WEB-INF/jsp2/jsp2-example-taglib.tld" %> <HTML> <HEAD> <TITLE>Simple Tag Handler</TITLE> </HEAD> <BODY> <H2>Simple Tag Handler</H2> <P> <B>My first tag prints</B>: <mytag:hello/> </BODY> </HTML>

Page 24: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Zusammenfassung

JSP2 hat das Ziel JSP Programmierung einfacher zu machen, und zwar sie ohne Kenntnisse von JAVA zu ermöglichen. Eine saubere Trennung zwischen Design und Programmierung dynamischer Web-Seiten wird dafür verwirklicht.

Page 25: Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov.

Referenzen:

Volker Turau, Krister Saleck. Java Server Pages und J2EE. dpunkt-Verlag, Heidelberg, 2001Stefan Wille. Go To Java Server Pages. Addison-Wesley Verlag, München, 2001http://java.sun.com/webservices/docs/1.3/tutorial/doc/JSPTags.htmlhttp://java.sun.com/webservices/docs/1.3/tutorial/doc/JSPIntro.htmlhttp://java.sun.com/developer/technicalArticles/javaserverpages/JSP20/