Java Server Faces

Java Server Faces

JavaServer Faces (kurz: JSF) ist ein Framework-Standard zur Entwicklung von Benutzeroberflächen für Webapplikationen. Basierend auf Servlets und JSP-Technologie, gehört JSF zu den Webtechnologien der Java Platform, Enterprise Edition (Java EE). Mit Hilfe von JSF kann der Entwickler auf einfache Art und Weise Komponenten für Benutzerschnittstellen in Webseiten einbinden und die Navigation definieren.

Inhaltsverzeichnis

Komponenten

Der Programmierer entwickelt nicht die Ausgabeseite mit HTML, sondern setzt sie auf einem höheren Abstraktionsniveau aus Komponenten zusammen. Ähnlich wie bei der klassischen Anwendungsentwicklung kann sich der Entwickler stattdessen auf die eigentliche Anwendungslogik konzentrieren. Um die Anwendung besser zu strukturieren, wird strikt zwischen „Modell“, „Ausgabe“ und „Steuerung“ getrennt, wie es das Model-View-Controller-Konzept vorsieht.

Ein zentrales Konzept von JavaServer Faces ist die View. Dabei handelt es sich um eine Baumstruktur aus JSF-Komponenten. Eine solche Struktur kommt genau einmal pro Aufruf vor, bei Verwendung von JavaServer Pages (JSP) also einmal pro Seite. Die View wird am Anfang des JSF-Lebenszyklus aufgebaut, direkt nach Eintreffen der Anforderung vom Client. In der letzten Phase des Lebenszyklus werden die Komponenten der Views mit der Wurzel beginnend rekursiv aufgerufen, um die Antwort, beispielsweise eine HTML-Seite, zu erzeugen.

Lebenszyklus

Diagramm des Lebenszyklus von JavaServer-Pages

Die Spezifikation der JavaServer Faces definiert einen sogenannten Lebenszyklus, den eine JSF-Anwendung mit jedem Aufruf erneut durchläuft. Dieser Lebenszyklus ist in sechs Phasen aufgeteilt.

  1. Restore View („Sicht wiederherstellen“) wählt anhand der eingehenden Anforderung eine Sicht (View) aus und baut den dazu passenden Komponentenbaum auf.
  2. Apply Request Values („Anforderungsparameter anwenden“) extrahiert Parameter aus der Anforderung (üblicherweise ein HTTP-Post-Request) und weist sie den passenden JSF-Komponenten zu, beispielsweise Eingabefeldern.
  3. Process Validations („Validierung ausführen“) überprüft die Gültigkeit der zuvor ermittelten Eingaben. Dazu werden eigene Validator-Objekte verwendet, die den Komponenten in der View-Definition zugewiesen wurden.
  4. Update Model Values („Modell aktualisieren“) weist den Modellobjekten die zuvor ermittelten Werte zu.
  5. Invoke Application („Anwendung aufrufen“) ruft durch die Anwendung definierte Methoden auf, beispielsweise wenn ein Button betätigt wurde.
  6. Render Response („Antwort wiedergeben“) erzeugt schließlich die Antwort auf die ursprüngliche Anfrage, beispielsweise eine HTML-Seite. Hierzu werden sogenannte Renderer aufgerufen, die den View-Komponenten zugeordnet sind.

Treten Fehler auf, oder soll als Antwort beispielsweise eine HTML-Seite aufgerufen werden, die keine JSF-Komponenten enthält, so können einzelne Phasen übersprungen werden.

Frameworks

Es ist möglich eine auf JSF basierende Webanwendung mit Ajax-Funktionalität zu erweitern, dazu existieren verschiedene Frameworks wie z.B.:

Standardisierung

Die JSF-Spezifikation wurde im Rahmen des Java Community Process JSR 127 von einer Reihe bekannter Unternehmen entwickelt und am 27. Mai 2004 in der Version 1.1 verabschiedet. Am 11. Mai 2006 wurde die derzeit aktuelle Version 1.2 (JSR 252) veröffentlicht.

Neben der Referenzimplementierung von Sun existieren freie (z. B. Apache MyFaces) und kommerzielle Implementierungen des Standards. Verschiedene Unternehmen vermarkten standardkonforme Oberflächenkomponenten (z. B. Oracle ADF Faces) oder bieten grafische Entwicklungswerkzeuge an.

JavaServer Faces umfasst:

Einsatz

JavaServer Faces will letztlich eine einfache Möglichkeit bieten, leistungsfähige Webanwendungen zu schreiben, ohne dass man sich zu viele Gedanken über die Komplexität einer Webanwendung (Zustand über zustandsloses Protokoll, Request, Response, …) machen muss. Bei der Entwicklung soll es auch einem Programmierer einer Desktopanwendung erleichtert werden, Webanwendungen zu schreiben. Da große Firmen an der Spezifikation mitgearbeitet haben, wird JavaServer Faces faktisch zum Standard.

In der Breite konnte es sich aber immer noch nicht durchsetzen. Das liegt unter anderem auch daran, dass JavaServer Faces seinen Ansprüchen nicht ganz gerecht wird. So muss der Programmierer viele Techniken beherrschen, unter anderem HTML, CSS, JavaScript, XML, Apache Tomcat, eine Expression Language, und JavaServer Pages. Zusätzlich muss man für eine Änderung mehrere Dateien in unterschiedlichen Verzeichnissen bearbeiten (XML-Konfiguration des Servlet-Containers, Navigationsregeln, JSP-Datei). So gibt es auch mehrere Produkte, die JavaServer Faces Konkurrenz machen wollen, zum Beispiel die Frameworks Wicket und Tapestry.

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Reasonable Server Faces — (RSF) is an open source web programming framework written in Java, developed at the Centre for Applied Research in Educational Technologies (CARET) at the University of Cambridge. RSF is built on the Spring framework, and allows views to be… …   Wikipedia

  • Java Server Pages — JavaServer Pages, abgekürzt JSP, ist eine von Sun Microsystems entwickelte auf JHTML basierende Technik, die im Wesentlichen zur einfachen dynamischen Erzeugung von HTML und XML Ausgaben eines Webservers dient. Sie erlaubt, Java Code und… …   Deutsch Wikipedia

  • Java Platform, Enterprise Edition — or Java EE is a widely used platform for server programming in the Java programming language. The Java EE Platform differs from the Standard Edition (SE) of Java in that it adds libraries which provide functionality to deploy fault tolerant,… …   Wikipedia

  • Java 2 Enterprise Edition — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Java 2 Platform Enterprise Edition — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Java EE — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Java Platform Enterprise Edition — Java Platform, Enterprise Edition, abgekürzt Java EE oder früher J2EE, ist die Spezifikation einer Softwarearchitektur für die transaktionsbasierte Ausführung von in Java programmierten Anwendungen und insbesondere Web Anwendungen. Sie ist eine… …   Deutsch Wikipedia

  • Faces-config.xml — is a key configuration file type within a JavaServer Faces (JSF) software implementation.The Java Platform, Enterprise Edition specification refers to this type of file as an Application Configuration Resource File. There may be more than one… …   Wikipedia

  • Faces — may refer to: *Face, The front area of a person s head. *Faces (band), a British rock band active in the early 1970s. *Faces (album), an Earth, Wind Fire s album. *Faces, a 2005 album by Stratagem guitarist Chris Caffeine. *Faces (2 Unlimited… …   Wikipedia

  • Java BluePrints — is Sun Microsystems best practices for Enterprise Java development. This is Sun s official programming model for Java 2 Platform, Enterprise Edition (J2EE) Software Development Kit (SDK). It began with Java Pet Store, the original reference… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”