Vous êtes sur la page 1sur 8

Auteur : Laura Zunarelli Etudiante en Master 2me anne professionnel Gnie Informatique en apprentissage Mail : Laura.Zunarelli@gmail.

com

Synthse ralise dans le cadre de lU.E. : Etude et Projet dIntergiciels Rsum : De nos jours, il existe de plus en plus dapplications web et celles-ci sont de plus en plus compliques. Cest pourquoi afin daider leur dveloppement, on utilise des frameworks. Ces frameworks permettent dassurer lvolution et la fiabilit de ces applications web.

Struts et JavaServerFaces (JSF) sont des standards parmi les frameworks de ce type. En sappuyant sur le modle MVC ils permettent une meilleure sparation entre les mtiers dinformaticiens et ceux dinfographistes. Actuellement, la plupart des applications web utilisent Struts ou JSF voir les deux Devenus incontournables dans ce domaine, nous allons, au cours de ce document, explorer plus en dtails ces deux frameworks. Mots cls : Struts, JavaServerFaces, JSF, framework, modle MVC, applications web.

Abstract: Nowadays, there is more and more web applications and they are more and more complicated. Thats why, to help their development, we use frameworks. These frameworks enable to ensure web application reliability and evolving. Struts and JavaServerFaces (JSF) are standards among these frameworks. Based on the MVC model, they enable a better separation between computer scientists and infographists. Currently, the majority of web applications use Struts or JSF or the two Became inescapable in this domain, during this document, we explore in more details these two frameworks. Key Words: Struts, JavaServerFaces, JSF, framework, MVC model, web applications.

Introduction : Ce document porte sur deux frameworks standards pour la construction dapplications web : Struts et JavaServerFaces. Aprs une brve introduction sur les frameworks, lapplication du modle MVC dans Struts et dans JavaServerFaces (JSF) sera explique. Puis

chacun des deux frameworks seront explors plus en dtails. Pour conclure, une constatation sur les principales diffrences entre ces deux frameworks et sur leur futur sera dresse. 1. Les frameworks Avant larrive des frameworks, le dveloppement d'applications Web tait simplement constitu dune page HTML et dun navigateur. Aujourd'hui nous sommes confronts au dveloppement d'applications bien plus complexes. Pour cela nous utilisons des frameworks. Ces frameworks, ou : cadre de conception sont des espaces de travail modulaire. Il sagit dun ensemble de bibliothques, d'outils et de conventions permettant le dveloppement rapide d'applications. Leur but est daccrotre la productivit des dveloppeurs dans le dveloppement des interfaces utilisateurs, en fournissant une architecture facilitant leur maintenance. Ils permettent donc damliorer la rutilisabilit des applications, den accrotre la fiabilit, de diminuer les cots et dlais de dveloppement et dassurer leur volutivit. Avec leur apparition, de nombreux outils ont vu le jour. Parmi eux, Struts et JavaServerFaces (JSF). Ceux-ci constituent aujourdhui les deux standards dans le domaine de la conception dapplications web. Ce sont ces deux standards que nous allons donc tudier plus en dtails 2. JSF, Struts, et le Modle MVC a) Le modle MVC Lun des principaux atouts de ces deux frameworks est lutilisation du patron de conception MVC (Modle, Vue, Contrleur). Celui-ci, leur permet de mieux dissocier les mtiers dinfographistes et dinformaticiens. En effet, ce modle darchitecture est constitu de trois parties. La premire : le contrleur, reoit les actions de lutilisateur et gre la rpartition des traitements entre la vue et le modle. Cest cette partie qui gre toutes les entres de lapplication. Le modle reprsente la partie mtier de lapplication : on y retrouve les tats et la logique de lapplication. La dernire partie : la vue, est la partie graphique destine aux infographistes, dans laquelle seul laffichage est gr. b) Lapplication du modle MVC dans Struts et JavaServerFaces Le framework Struts est construit autour dun puissant contrleur, tandis que JSF, est principalement ddi la couche vue. Craig McClanahan est le crateur de Struts et lun des principaux acteurs de JSF. Il a donc occup une place importante pour la cration de ces deux frameworks, et est bien plac pour dire que JSF et Struts sont diffrents mais ne sont pourtant pas incompatibles. Il a ainsi suggr une mthode dintgration afin de combiner les deux frameworks. Le but tant de combiner les avantages de chacun. Cependant, Struts et JavaServerFaces nont pas t conus de prime abord pour fonctionner ensemble dans une mme application. En effet, Struts propose des tags libs pour la gestion des vues et une dfinition de la navigation au travers des pages. JSF, lui, fournit un manageur des cycles de vie de lapplication au travers de servlets de contrle. 3. Prsentation de Struts a) Prsentation gnrale

Struts, fut le premier des deux frameworks arriver sur le march. Apparu en 1998, il eu beaucoup de succs. Compatible avec la plate-forme J2EE de Sun, Struts fait parti du projet Jakarta (men par l'ASF, l'Apache Software Foundation). L'adresse officielle de Struts est : http://jakarta.apache.org/struts. Le succs de ce framework repose sur sa capacit rpondre aux besoins des dveloppeurs actuels en termes de cration d'applications et en termes de rapidit de mise en uvre. Struts est une combinaison des servlets Java, des JSP, des balises personnalises et des ressources messages qui forment une base unifie. Struts est puissant, rpandu, et mature. Ds son arrive, il a su simposer pour les applications de grandes tailles. Cependant son utilisation de nos jours perd tout son sens pour les applications simples. En effet, pour les petites applications, lapplication de Struts pourrait prendre bien plus de temps que la construction de lapplication elle-mme b) Principes de mise en uvre de Struts Une application basique de Struts est compose des trois parties du modle MVC. Ces trois parties sont gnralement situes dans trois dossiers diffrents. Les pages jsp exploitent des balises personnalises de Struts : Exemple : <%@ taglib prefix="s" uri="/struts-tags" %> Il est cependant conseill dutiliser aussi la bibliothque JSTL. Les servlets sont utilises de manire transparente via des classes. La structure de lapplication web doit tre dcrite dans un fichier: struts.xml. Ce fichier contient toutes les rgles de navigations ncessaires lapplication. Exemple : <action name="HelloWorld" class="example.HelloWorld"> <result>/example/HelloWorld.jsp</result> </action> Dans cet exemple, en tapant ladresse pour accder la page de bienvenue dans le navigateur, une redirection sera effectue pour consulter la page HelloWorld la place. c) Les bibliothques de Struts: Voici un petit rsum des bibliothques que lon retrouve dans Struts : Les librairies Struts*.jar: contiennent les classes java distribues par le projet Struts. Les fichiers commons*.jar sont utiliss par limplmentation. Les autres fichiers *.jar sont imports par Struts mais proviennent dautres projets. Cest ainsi le cas de la librairie : struts-jsf-plugin.jar qui est un plug-in jsf pour Struts. Au dploiement de lapplication les archives ncessaires sont copies dans le rpertoire WEB-INF/lib.

4. Prsentation de JavaServerFaces (JSF) a) Prsentation gnrale

JavaServerFaces est paru en 2004 aprs Struts. JSF a t ralis par Sun pour J2EE1. Ladresse officielle de JavaServerFaces est : http://java.sun.com/javaee/javaserverfaces/ Beaucoup crurent que larrive de JSF allait craser son concurrent. En effet, bien intgr aux projets de Sun tels que Java Enterprise Edition (Java EE), JSF a su simposer par sa simplicit. La partie Vue de JSF a t bien pense et est trs simple dutilisation. Ainsi son utilisation simpose pour les projets de petites tailles. b) Principes de mise en uvre de JavaServerFaces Une application basique de JSF est constitue de deux dossiers : lun contient la partie modle de lapplication. Tandis que lautre contient la partie Vue de lapplication ainsi quun dossier WEB-INF qui constitue le contrleur. De manire permettre aux dveloppeurs web de se concentrer uniquement sur leurs besoins, JSF utilise XML ou des proprits. Les pages jsp (java server pages) utilisent des balises personnalises JSF : Exemples : <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> La structure de lapplication web doit tre dcrite dans un fichier: faces-config.xml. Ce fichier contient toutes les rgles de navigations ncessaires lapplication. Exemple : <navigation-rule> <description> The decision rules used by the NavigationHandler to determine which view must be displayed after the current view, response.jsp is processed. </description> <from-view-id>/response.jsp</from-view-id> <navigation-case> <description> Indicates to the NavigationHandler that the greeting.jsp view must be displayed if the Action referenced by a UICommand component on the response.jsp view returns the outcome "success". </description> <from-outcome>success</from-outcome> <to-view-id>/greeting.jsp</to-view-id> </navigation-case> </navigation-rule> Dans cet exemple on voit que laction success permet de passer de la page response.jsp la page greeting.jsp

c) Les bibliothques de JavaServerFaces: Voici un petit rsum des bibliothques que lon retrouve dans Struts : Les librairies jsf-api.jar : contiennent les classes standards de JSF ainsi que les interfaces satisfaire par les implmentations de JSF. Nous parlerons ici de limplmentation de rfrence de Sun mais il faut savoir quil existe une autre implmentation de ce framework : Apache MyFaces qui fait parti du projet Jakarta.
1

Les archives jsf-ri.jar : reprsente limplmentation de rfrence de Sun pour lAPI de JSF. Les librairies jstl.jar & standard.jar contiennent les fichiers JSTL. Limplmentation de rfrence tant base sur JSTL. Les fichiers commons*.jar sont utiliss par limplmentation de rfrence de Sun. De mme que pour Struts, au dploiement de lapplication les archives ncessaires sont copies dans le rpertoire WEB-INF/lib. 5. Conclusion a) Struts vs JSF Comparons maintenant ces deux frameworks. Lutilisation des tags rend lutilisation de JavaServerFaces plus concise, plus puissante et plus simple que celle de Struts. De plus, JSF ne se limite pas http et html : contrairement Struts, JSF utilise aussi les formats : XUL, XML et WML Cependant la documentation de JavaServerFaces si elle est varie, reste nanmoins confuse et pas assez dtaille. Il peut donc tre difficile de sy retrouver. On peut commettre des confusions au niveau des noms des pages utilisant la bibliothque JSF : les pages se terminent par .jsp alors que leurs url se terminent par .jsf (ou .faces dans le cas limplmentation dApache). Mais leur diffrences, et en particulier le fait que Struts soit plus centr sur la partie contrleur que sur la partie Vue contrairement JSF ont permis aux deux frameworks de coexister. b) Struts Shale Le futur ? En dehors de Struts et de JavaServerFaces, dautres framework pour applications web peuvent tre utilis tels que Spring MVC, barracuda, webwork Cependant, Struts et JSF continuent de dominer les autres frameworks en matire dapplications web. De nos jours, Struts a autant de succs que son principal concurrent : JSF. Les constructeurs de Struts lont compris et ont tent de combiner les avantages de Struts et ceux de JSF au travers de Struts Shale. Apparu en 2005, Struts Shale est un nouveau framework MVC (Modle Vue Contrleur), bas sur Javas Server Faces. Cependant, celui-ci se concentre sur la partie Contrleur tout comme Struts en intgrant de puissants outils pour cette partie. La partie Vue reste dlgue une implmentation de JSF. Struts Shale est encore un framework trs rcent, mais en combinant les avantages de chacun des deux standards daujourdhui, il pourrait, en devenant plus mature, les supplanter

Rfrences :

Rfrences sur Struts: Document pdf de la socit serli informatique raliss par mickal Baron en 2007. Titre : Tutoriel Jakarta Struts http://tahe.developper.com/java/struts Ce tutoriel permet de dcouvrir la structure de struts : ses composants et leurs fonctionnements, lintgration du modle MVC pour Struts

Bye-bye Struts, Hello Struts Shale de Pierre Tran en fvrier 2005 http://www.lemondeinformatique.fr/actualites/lire-bye-bye-struts-hello-struts-shale7856.html Le point sur Struts: entre Struts Shale, et les diffrentes versions de Struts Introduction au framework Struts Jakarta de Sue Spielman en mai 2001 http://projectomega.org/article.php?lg=fr&php=oreilly_jakarta1&p=1 Document sur la rdaction du fichier de configuration de Struts.

The Struts framework project de la foundation Apache http://struts.apache.org/1.2.7/userGuide/installation.html Ce document official relate le contenu de Struts, en particulier ce qui est distribu pour Struts. Autrement dit, ses bibliothques. Document pdf de bruno Clment ralis en 2002 http://www.guepard.asso.fr/ibm/sw2002/Struts.pdf Ce document explique brivement le modle MVC, puis parle de larchitecture de Struts.

Rfrences sur JavaServerFaces:

Tutoriel: introduction jsf avec netbeanss ralis par Olivier Schmitt en aot 2005 : http://schmitt.developpez.com/tutoriel/java/jsf/introduction Ce tutoriel permet de dcouvrir JavaServerFaces, et surtout de comprendre son fonctionnement au travers dun exemple simple que lon peut par la suite complexifier. Cependant cet exemple est mis en place avec netbeans et ce nest pas forcment la manire la plus simple de raliser un premier exemple avec JavaServerFaces Document pdf de la socit serli informatique raliss par mickal Baron en 2007 : Introduction au frameworf JSF http://mbaron.developpez.com/javaee/jsf Ce document permet de comparer un peu Struts JavaServerFaces. Il explique aussi le fonctionnement thorique de JavaServerFaces : son cycle de vie, sa configuration

JSF en quelques mots de Franois Goldgewicht datant de juin 2007 : http://blog.valtech.fr/wordpress/2007/06/28/jsf-en-quelques-mots Ce document prsente les concepts de base de JSF : origine, prsentation de ses bases

Autres : Understanding JavaServer Pages Model Architecture de: Govind Seshadri, JavaWorld.com, 12/29/99: http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html Explique les principes des pages JSP. The evolution of web application architectures de McClanahan en aot 2005 http://people.apache.org/~craigmcc/oscon_2005_web_architectures.pdf Document comparant diffrents frameworks.

JavaServerFaces vs Struts de Roland Barcia paru en septembre 2004 http://homepage1.nifty.com/algafield/barcia.html Evaluation sous diffrents critres (maturit, navigation, intgration) de JSF et de Struts