Jakarta Servlet Faces (JSF), Java Servlet Faces (JSF), Apache Tomcat, JSF Forms, Managed Bean, Java Database Connectivity (JDBC)

Was ist Jakarta Servlet Faces (JSF) oder Java Server Faces (JSF)

Jakarta Servlet Faces (JSF) oder früher Java Server Faces (JSF) ist der Standard nach Servlets und JSP für die Entwicklung von Webanwendungen mit Java. JSF stellt eine alternative zu Spring MVC dar welches auch die Entwicklung von Webanwendungen nach dem MVC Modell ermöglicht.

Die Erstellung von Webanwendungen in JSF wird durch XHTML (ein HTML speziell für Facelets) und der JSF-Expression Language ermöglicht. Die Erstellung von UI-Komponenten der Webanwendung werden durch JSF-Tags ermöglicht die eine automatischer Erstellung üblicher Web-/HTML-Komponenten und eine Verbindung zwischen Frontend und Backend ermöglichen. Der Austausch von Daten zwischen HTML und Java wird mittels einer speziellen Klasse, den Managed Bean ermöglicht (EL für Managed Bean). Die Datenspeicherung und das Lesen von Daten aus dem Speicher wird durch Java und den Managed Bean ermöglicht. Der Managed Bean kümmert sich um die Verbindung von HTML (oder in JFC XHTML) im Frontend und Java im Backend. Das JSF-Framework ruft beim Setzen der Daten im XHTML automatisch die Setter und Getter Methoden des Managed Beans auf.

Konzept des Datenaustauschs in einer JSF-Webanwendung

Die Eclipse IDE ermöglicht die automatischer Erstellung von Setter- und Getter Methoden in einer Klasse sodass Fehler vermieden werden können.

Es können Formulare und Überprüfungen (benötigt Werte, Wertebereiche, reguläre Ausdrücke oder eigens definierte Überprüfungen) der Formulareingaben in JFC erstellt werden. Es können Java-Listen, Java-Arrays oder Java-Collections mittels JFC in einer HTML-Seite in einer Tabelle dargestellt werden.

JSF Formular

Die Formulardaten können können in einer Datenbank gespeichert oder aus einer Datenbank gelesen werden. Hierzu sind ein JDBC Driver und eine Helper-Klasse erforderlich, da JSF mehrmals die Setter- und Getter Methoden beim Rendern der XHTML Seite aufruft (ein mehrmaliges setzen und lesen der Daten in die Datenbank wären die Folge).

Kommunikation der Webanwendung mit einer Datenbank

Zudem bietet JSF die Möglichkeit Daten je nach Anwendungsstatus zu teilen. Beispielsweise können Daten im Speicher

  • für einen Webseitenaufruf in einer Sitzung gültig sein (per Anforderung-per Request)
Datenhaltung in JSF pro Anforderung / per Request

  • solange bis sich ein Nutzer nicht mehr auf der Webseite befindet (per Nutzer/per Session)

Datenhaltung in JSF pro Nutzer / per Session

  • oder solange die Anwendung und/oder der Server läuft (per Anwendung)

Datenhaltung in JSF pro Anwendung / per Application

JFC Webanwendung können mit der Eclipse IDE für Java EE programmiert werden. Als Server kann der Apache Tomcat Server 8 (8.5) verwendet werden. Als Bibliothek kann JSF 2.2 und Java 7 verwendet werden.

Entwicklungs-Set-Up für die Entwicklung von JSF-Webanwendungen

Sobald die Webanwendung entwickelt wurde kann eine .War Datei erstellt werden die sodann in den Webapps Ordner des Tomcat Server platziert wird. Apache Tomcat wird beim Neustart die Anwendung ausführen und Sie kann mit Angabe des Webapps Namen auf dem Apache Tomcat ausgeführt werden.

JSF Webanwendung auf dem Apache Tomcat Server