Struts contre Struts2
Struts (également connu sous le nom d'Apache Struts ou Struts 1) est un framework open source multiplateforme écrit en Java, destiné au développement d'applications Web Java EE. C'était l'un des premiers frameworks d'applications Web Java EE. Mais quelques années plus tard, Struts2 (ou Struts version 2) est arrivé, et c'était un framework d'application Web complètement différent et hautement amélioré. Il avait résolu quelques problèmes qui étaient perçus comme des lacunes dans la version initiale. Maintenant, Struts2 est très utilisé pour développer des applications Java EE dans le monde.
Qu'est-ce que Struts ?
Struts (Struts 1) était l'un des premiers frameworks d'applications Web pour le développement d'applications Web Java EE. Le framework Struts encourage l'utilisation de l'architecture MVC (Model-View-Controller). C'est une extension de l'API Java Servlet. Craig McClanahan est le créateur original de Struts. Initialement, il était connu sous le nom de Jakaratha Struts et était maintenu dans le cadre du projet Jakarta d'Apache Software Foundation. Il est publié sous la licence Apache 2.0. Le framework Struts est appelé framework basé sur les requêtes et est composé de trois composants principaux: un gestionnaire de requêtes, un gestionnaire de réponses et une bibliothèque de balises. L'URI standard (Uniform Resource Identifier) est mappé à un gestionnaire de requêtes. Le gestionnaire de réponse est responsable du transfert de contrôle. Pour créer des applications interactives avec des formulaires, les fonctionnalités offertes par la bibliothèque de balises peuvent être utilisées. Struts prend en charge les applications REST et diverses technologies telles que SOAP, AJAX, etc.
Qu'est-ce que Struts2 ?
Le framework Struts était perçu comme contenant certaines limitations (principalement le manque de séparation entre la couche de présentation, la couche de gestion des requêtes et le modèle) par les développeurs Java EE à l'époque, et par conséquent, quelques années plus tard, Struts2 est arrivé. En fait, Struts2 était complètement différent de Struts. En fait, ils ne partageaient même pas la même base de code car Struts2 était simplement le résultat du changement de nom du framework WebWork 2.2 (c'est-à-dire que les communautés WebWork et Struts qui travaillaient séparément pendant un certain temps se sont finalement jointes pour créer Struts2). Sa version stable actuelle est la version 2.2.3, qui a été publiée en mai 2011.
Quelle est la différence entre Struts et Struts2 ?
L'un des nombreux problèmes du framework Struts était la nécessité de programmer des classes abstraites au lieu d'interfaces. Cela a été résolu par le framework Struts2. Par exemple, le framework Struts exigeait que les classes Action soient étendues à partir des classes de base abstraites, mais Struts2 Actions peut implémenter une interface Action. En raison des différences dans le modèle de threading entre les deux versions, les problèmes de sécurité des threads qui sont apparus dans le framework Struts concernant les objets Action ne se produisent pas dans le framework Struts2. La raison en est que les objets Struts2 Action sont instanciés pour chaque requête, tandis qu'une action dans le framework Struts n'a qu'une seule instance pour gérer toutes les requêtes pour cette action. Contrairement au framework Actions in Struts, les actions Struts2 ne dépendent pas de l'API Servlet.
La testabilité du framework Struts2 est comparativement plus élevée que celle du framework Struts. Vous pouvez tester les actions Struts2 en suivant simplement les trois étapes: instanciation, définition des propriétés et invocation des méthodes. La récolte des entrées est plus facile dans le cadre Struts2 car les propriétés Action sont utilisées comme propriétés d'entrée, sans avoir à conserver un deuxième objet d'entrée. Outre la prise en charge de l'intégration JSTL (qui est présente dans Struts), le framework Struts2 peut utiliser OGNL (Object Graph Notation Language) plus puissant et plus expressif. Pour la conversion de type, Strut et Strut2 utilisent respectivement Commons-Beanutils et OGNL. En raison de ces améliorations, le framework Struts2 est considéré comme un framework très mature et il est très populaire parmi les programmeurs Java EE. D'autre part, le framework Struts est désormais considéré comme obsolète.