ppt - ITI

Werbung
Java Server Pages 2 und
Benutzerdefinierte Tags
Strahil Yordanov
Überblick
Einleitung
JSP im Kontext von J2EE
JSP2
Benutzerdefinierte Tags
Zusammenfassung
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.
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:
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.
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.
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:
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>
Und hier ist der entsprechende Teil des
generierten Servlets:
out.write("<HTML>\r\n<BODY>\r\n\r\n");
// end
// begin
out.write("\r\n");
// end
// begin
out.write("\r\n\r\nHello <B>");
// end
// begin [file="D:\\Expressions.jsp";from=(6,12);to=(6,23)]
out.print( getName() );
// end
// begin
out.write("</B>\r\n\r\n</BODY>\r\n</HTML>\r\n");
// end
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

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.
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

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

Die Syntax wird in wesentlich so gegliedert:
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
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}
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>
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
Benutzerdefinierte Tags
Benutzerdefinierte Tags kapseln
Funktionalität für Wiederverwendung.
Tags minimieren den Anteil Java-Code in
JSP Seiten
Tags bieten stärkere Abstraktion als JavaCode
Tags sorgen durch Wiederverwendung für
ein konsistentes Aussehen Ihrer Seiten.
Benutzerdefinierte Tags
Tags werden durch Tag-Handlers definiert. TagHandlers 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).
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

Beispiel: Definierung eines Tages
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>
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>
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 WebSeiten wird dafür verwirklicht.
Referenzen:
Volker Turau, Krister Saleck. Java Server Pages und J2EE. dpunkt-Verlag, Heidelberg,
2001
Stefan Wille. Go To Java Server Pages. Addison-Wesley Verlag, München, 2001
http://java.sun.com/webservices/docs/1.3/tutorial/doc/JSPTags.html
http://java.sun.com/webservices/docs/1.3/tutorial/doc/JSPIntro.html
http://java.sun.com/developer/technicalArticles/javaserverpages/JSP20/
Herunterladen