pour les applications Web : Le développement MVC pour les applications Web : JSF et Struts Auteur: Laura Zunarelli
PLAN Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine
Motivations
MOTIVATIONS Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine De nos jours, les frameworks sont une alternative très avantageuse aux servlets et aux JSP en matière de développement d'applications Web en Java En effet, ils permettent: d'assurer l'évolutivité des applications Web, de diminuer les coûts et les délais de développement, d'accroître la fiabilité des applications.
MOTIVATIONS Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Struts et JavaServerFaces (JSF) sont des standards parmi les modèles d’architectures pour des applications web. Leur but est de séparer les infographistes des informaticiens. Pour cela, ils fournissent une architecture facilitant leur maintenance en utilisant MVC.
MOTIVATIONS Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Le modèle MVC est un patron de conception classique pour la construction d’interfaces graphiques. M pour modèle: représente les états et la logique de l’application. V pour Vue: partie affichage de l’application C pour Contrôleur: gère la synchronisation entre la vue et le modèle.
Source: http://www.guepard.asso.fr/ibm/sw2002/Struts.pdf MOTIVATIONS Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Modèle MVC Source: http://www.guepard.asso.fr/ibm/sw2002/Struts.pdf
Marchés & Acteurs
MARCHES et ACTEURS Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine JSF et Struts sont les frameworks pour les applications web les plus connus. Ils ne sont d’ailleurs pas complètement incompatibles: JSF est principalement dédié à la couche Vue de MVC, Struts est construit autour d’un puissant contrôleur.
MARCHES et ACTEURS Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Une méthode d’intégration a été suggérée par Craig MacClanahan afin de combiner les avantages de chacun. Pour autant JSF et Struts n’ont pas été conçus dans cet optique: Struts propose des tag libs pour les vues et une définition de la navigation au travers des pages. JSF fournit un manageur des cycles de vie de l’application au travers de servlets de contrôle.
MARCHES et ACTEURS Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Struts (1998), premier sur la marché, fut très plébiscité. Avec l’arrivée de JSF (2004), on cru, à tort, que ce dernier écraserait son concurrent. De nos jours il y a presque autant d’utilisateurs pour Struts que pour JSF. Les concepteurs de Struts l’ont bien compris et ont réalisé un autre framework: Struts Shale qui est basé sur JSF mais reprend les principes de Struts.
Solutions
SOLUTIONS Struts est soutenu par: apache software foundation. Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Struts est soutenu par: apache software foundation. Pour des applications simples, Struts est lourd: le niveau de complexité est assez important. Cependant l’application est mature et répandue. JSF a été réalisé par Sun pour J2EE. La mise en place de JSF est plus simple, plus rapide et sa spécification a été bien réfléchie.
SOLUTION 1: STRUTS Principes de mise en œuvre: Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Principes de mise en œuvre: Les servlets sont utilisées de manière transparente (via des classes) Les pages jsp exploitent des balises personnalisées de Struts. Il est cependant conseillé d’utiliser aussi la bibliothèque JSTL. La structure de l’application web est décrite dans un fichier: struts-config.xml
SOLUTION 1: STRUTS Bibliothèques Struts: Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Bibliothèques Struts: 1) Struts*.jar: contiens les classes java distribuées par le projet Struts. 2) Les fichiers commons*.jar sont utilisés par l’implémentation. 3) Les autres fichiers *.jar sont importés par Struts mais proviennent d’autres projets. Ex: struts-jsf-plugin.jar Au lancement de l’application les archives nécessaires sont copiées dans le répertoire WEB-INF/lib.
SOLUTION 2: JSF Principes de mise en œuvre: Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Principes de mise en œuvre: L’approche de JSF consiste à permettre aux développeurs web de se concentrer sur leurs besoins sans se soucier des langages informatiques tels que Java. Dans ce but JSF utilise XML ou des propriétés. La structure de l’application web est décrite dans un fichier: faces-config.xml
SOLUTION 2: JSF Bibliothèques JSF: Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine Bibliothèques JSF: 1) jsf-api.jar : contiens les classes standard de JSF et les interfaces à satisfaire par les implémentations de JSF. 2) jsf-ri.jar : représente l’implémentation de référence de Sun pour l’API de JSF. 3) jstl.jar & standard.jar contiennent les fichiers JSTL. L’implémentation de référence étant basée sur JSTL. 4) Les fichiers commons*.jar sont utilisés par l’implémentation de référence de Sun.
Conclusion
Les points durs de Struts Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine L’utilisation de Struts est limitée à http et html (contrairement à JSF qui utilise aussi: XUL, XML, WML…) Le langage est moins concis, moins puissant et moins simple pour Struts que pour JSF, car JSF utilise des tags.
Les points durs de JavaServerFaces Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine L’utilisation: JSF nécessite d’être à l’aise avec le standard JSP (Java Server Page) et les servlets. la documentation: assez variée aujourd’hui elle reste confuse … Confusion sur les noms: Les pages utilisant jsf se terminent en .jsp alors que leurs url se terminent en .faces ou .jsf…
Perspectives du domaine Motivations Problèmes abordés Qu’attend t on de la solution ? Marchés et acteurs Solutions Principes Principes de mise en œuvre Struts Principes de mise en œuvre JSF Conclusion Points durs et questions ouvertes Perspectives du domaine D’autres framework pour applications web peuvent être utilisé tels que Spring MVC, barracuda, webwork… Mais Struts et JSF continuent de dominer les autres frameworks en matière d’apllications web. Cependant, Struts Shale qui est encore un framework très récent (2005) pourrais en devenant plus mature les supplanter…
Références JSF: Tutoriel: « introduction à jsf » réalisé par: Olivier Schmitt en apût 2005 : http://schmitt.developpez.com/tutoriel/java/jsf/introduction Document pdf: Java Server Faces de la société serli informatique réalisés par mickaël Baron en 2007 http://mbaron.developpez.com/javaee/jsf/ Site internet: Officiel: http://java.sun.com/javaee/javaserverfaces/download.html Autres: plusieurs tutoriels disponibles à l’adresse: http://www.jsftutorials.net/
Références Struts: Document pdf: Struts de la société serli informatique réalisés par mickaël Baron en 2007 http://tahe.developpez.com/java/struts/ Site internet: Officiel: http://struts.apache.org/ Autres: http://www.guepard.asso.fr/ibm/sw2002/Struts.pdf http://struts.apache.org/1.2.7/userGuide/installation.html