© Excellent backgrounds/Shutterstock.com
Java Magazin
Ausbau des Webshops mit JSF 2.2

Ausbau des Webshops mit JSF 2.2

Der Sprung von JSF 2.1 auf JSF 2.2 ist zunächst ein Minor Update. Dennoch sind in diesem vermeintlich kleinen Versionssprung sehr viele Neuerungen enthalten, die beinahe schon ein Major Update gerechtfertigt hätten. Interessant an dieser neuen Version ist, dass die Java-EE-Welt näher zusammenrückt und nicht mehr jeder Standard ein separates Dasein führt. So integriert sich JSF zusehends mit CDI und lässt eigene Ansätze im @ManagedBean-Bereich auslaufen.

Andy Bosch


Im ersten Teil dieses Tutorials haben wir einen T-Shirt-Webshop aufgebaut, der bereits viele neue Funktionen von JSF 2.2 einsetzte. Wir haben das Konzept von Resource Library Contracts kennen gelernt und verschiedene Templates als Module austauschbar in der Anwendung konfiguriert. Mittels ViewActions konnten wir speziell bei Get-Requests eine Aktion vor dem Darstellen der Seite aufrufen und ggf. sogar auf andere Seiten verweisen. Natürlich basiert unser Shop auf HTML5 und damit auch auf neuen Tags und Attributen, die wir mittels PassThroughAttributes und PassThroughElements auch problemlos verwenden konnten. Über den in JSF 2.2 standardisierten FileUpload waren wir in der Lage, Dateien mit JSF-Tags an den Server zu übertragen.

Das Ausbauvorhaben des Webshops

Im Webshop, den wir in Teil 1 begonnen haben, haben wir bereits etliche neue Funktionen aufgenommen. Dennoch gibt es ein paar Ecken, an denen wir noch feilen können und mittels weiterer neuer Funktion von JSF 2.2 Verbesserungen nutzen können. Ein großer Punkt wird das Thema Faces Flows sein. Mittels Faces Flows können (View-)Abläufe zusammengefasst werden und über fest definierte Ablauffolgen ausgeführt werden. Zudem können mit diesem Konzept wiederverwendbare Seitenfolgen als Module ausgelagert bzw. auch einer Anwendung als JAR-Bibliothek hinzugefügt werden.

Eine weitere wichtige Eigenschaft einer Webanwendung ist es häufig, Multi-Tab- bzw. Multi-Window-fähig zu sein. Das bedeutet, dass wir unsere Anwendung in mehreren Tabs oder Fenstern quasi parallel betreiben können. Hierzu konnte man in der Vergangenheit mittels CDI Conversations schon einiges erreichen, das JSF-Framework selbst hatte dazu jedoch nichts vorzuweisen. Neu hinzugekommen ist hier das ClientWindow, das es ermöglicht, neue Tab-/Fensterinstanzen über eine dynamisch erzeugte ID zu identifizieren.

Da unser Webshop auch sicher gegenüber Hackerangriffen sein soll, ist das Thema Security natürlich von großer Bedeutung. Ein in der Praxis häufig anzutreffender Angriffsvektor ist CSRF (Cross Site Request Forgery). Für eine ausführliche Definition verweise ich einfach auf den entsprechenden Wikipedia-Artikel [1]. Kurz zusammengefasst bedeutet CSRF, dass es nicht möglich sein soll, einen ungewollten Request eines Angreifers innerhalb der eigenen legitimierten Session ausführen lassen zu können.

Alles im Fluss

Beginnen wir zunächst mit Faces Flows. Faces Flows sind ein neues Konzept, um zusammenhängende Seitenflüsse inklusive der Navigationslogik mod...

Java Magazin
Ausbau des Webshops mit JSF 2.2

Ausbau des Webshops mit JSF 2.2

Der Sprung von JSF 2.1 auf JSF 2.2 ist zunächst ein Minor Update. Dennoch sind in diesem vermeintlich kleinen Versionssprung sehr viele Neuerungen enthalten, die beinahe schon ein Major Update gerechtfertigt hätten. Interessant an dieser neuen Version ist, dass die Java-EE-Welt näher zusammenrückt und nicht mehr jeder Standard ein separates Dasein führt. So integriert sich JSF zusehends mit CDI und lässt eigene Ansätze im @ManagedBean-Bereich auslaufen.

Andy Bosch


Im ersten Teil dieses Tutorials haben wir einen T-Shirt-Webshop aufgebaut, der bereits viele neue Funktionen von JSF 2.2 einsetzte. Wir haben das Konzept von Resource Library Contracts kennen gelernt und verschiedene Templates als Module austauschbar in der Anwendung konfiguriert. Mittels ViewActions konnten wir speziell bei Get-Requests eine Aktion vor dem Darstellen der Seite aufrufen und ggf. sogar auf andere Seiten verweisen. Natürlich basiert unser Shop auf HTML5 und damit auch auf neuen Tags und Attributen, die wir mittels PassThroughAttributes und PassThroughElements auch problemlos verwenden konnten. Über den in JSF 2.2 standardisierten FileUpload waren wir in der Lage, Dateien mit JSF-Tags an den Server zu übertragen.

Das Ausbauvorhaben des Webshops

Im Webshop, den wir in Teil 1 begonnen haben, haben wir bereits etliche neue Funktionen aufgenommen. Dennoch gibt es ein paar Ecken, an denen wir noch feilen können und mittels weiterer neuer Funktion von JSF 2.2 Verbesserungen nutzen können. Ein großer Punkt wird das Thema Faces Flows sein. Mittels Faces Flows können (View-)Abläufe zusammengefasst werden und über fest definierte Ablauffolgen ausgeführt werden. Zudem können mit diesem Konzept wiederverwendbare Seitenfolgen als Module ausgelagert bzw. auch einer Anwendung als JAR-Bibliothek hinzugefügt werden.

Eine weitere wichtige Eigenschaft einer Webanwendung ist es häufig, Multi-Tab- bzw. Multi-Window-fähig zu sein. Das bedeutet, dass wir unsere Anwendung in mehreren Tabs oder Fenstern quasi parallel betreiben können. Hierzu konnte man in der Vergangenheit mittels CDI Conversations schon einiges erreichen, das JSF-Framework selbst hatte dazu jedoch nichts vorzuweisen. Neu hinzugekommen ist hier das ClientWindow, das es ermöglicht, neue Tab-/Fensterinstanzen über eine dynamisch erzeugte ID zu identifizieren.

Da unser Webshop auch sicher gegenüber Hackerangriffen sein soll, ist das Thema Security natürlich von großer Bedeutung. Ein in der Praxis häufig anzutreffender Angriffsvektor ist CSRF (Cross Site Request Forgery). Für eine ausführliche Definition verweise ich einfach auf den entsprechenden Wikipedia-Artikel [1]. Kurz zusammengefasst bedeutet CSRF, dass es nicht möglich sein soll, einen ungewollten Request eines Angreifers innerhalb der eigenen legitimierten Session ausführen lassen zu können.

Alles im Fluss

Beginnen wir zunächst mit Faces Flows. Faces Flows sind ein neues Konzept, um zusammenhängende Seitenflüsse inklusive der Navigationslogik mod...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang