java server pages 2 und benutzerdefinierte tags

25
Java Server Pages 2 und Benutzerdefinierte Tags Strahil Yordanov

Upload: carson-ellis

Post on 30-Dec-2015

31 views

Category:

Documents


1 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

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// 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

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 SeitenTags bieten stärkere Abstraktion als Java-CodeTags sorgen durch Wiederverwendung für ein konsistentes Aussehen Ihrer Seiten.

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

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

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

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 Web-Seiten 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/