Aller au contenu

Apache Struts

Un article de Wikipédia, l'encyclopédie libre.
Apache Struts
Description de l'image Apache Struts 2 logo.svg.

Informations
Développé par Apache Software FoundationVoir et modifier les données sur Wikidata
Première version et [1]Voir et modifier les données sur Wikidata
Dernière version 6.6.0 ()[2]Voir et modifier les données sur Wikidata
Dépôt github.com/apache/strutsVoir et modifier les données sur Wikidata
Écrit en JavaVoir et modifier les données sur Wikidata
Environnement Machine virtuelle JavaVoir et modifier les données sur Wikidata
Type Framework webVoir et modifier les données sur Wikidata
Licence Licence ApacheVoir et modifier les données sur Wikidata
Site web struts.apache.orgVoir et modifier les données sur Wikidata

Apache Struts est un framework libre servant au développement d'applications web Java EE. Il utilise et étend l'API Servlet Java afin d'encourager les développeurs à adopter l'architecture Modèle-Vue-Contrôleur (MVC).

Apache Struts 1

[modifier | modifier le code]

Apache Struts a été créé par Craig McClanahan et donné à la fondation Apache en mai 2000. Struts a fait partie du projet Jakarta de jusqu'en [4],[5].

Struts 1.3.10, produite en 2008, est la dernière version de production de Struts 1.

Le , Apache annonce officiellement, en utilisant le terme End-Of-Life (EOL), que la version Struts 1 n'est plus supportée[6],[7].

En , Struts a joint ses forces avec un autre canevas J2EE populaire, WebWork.

Initialement nommé Webwork2, ce nouveau framework dont les caractéristiques n'ont plus rien à voir avec la version 1 de Struts, prendra cependant le nom de Apache Struts 2[8].

Apache Struts 2

[modifier | modifier le code]

C'est le nouveau framework de présentation de la communauté Open Source Apache. C'est un framework Java EE développé à partir de deux autres framework Java EE : Struts 1 (Apache Struts) et WebWork. Il devait initialement être publié sous le nom de WebWork2, avant d'être finalement publié sous son nom actuel[9].

Mise à jour sécurité: 2.5.14.1 .

Liste des vulnérabilités par années: https://www.cvedetails.com/product/6117/Apache-Struts.html?vendor_id=45

Caractéristiques

[modifier | modifier le code]

Apache Struts 2 est un framework Java, pour le développement d'applications Web. Ce n'est pas une extension de Apache Struts 1.

Struts 2 regroupe les avantages de deux précédents outils, WebWork et Struts 1, mais c'est une refonte complète.; Cette seconde génération de framework MVC (Modèle-vue-contrôleur) utilise les notions suivantes : intercepteurs, annotations, langage d'expression OGNL [10], l'intégration d'outils comme JSTL (JavaServer Pages Standard Tag Library) ou Spring framework.

Ouvrages de référence

[modifier | modifier le code]
  • « Struts 2 : Le framework de développement d'applications Java EE », par Jérôme LAFOSSE aux Éditions ENI
  • « Struts 2 for Beginners » par Sharanam Shah et Vaishali Shah, aux Éditions Arizona Business Alliance, 3e édition,
  • « Struts 2 with Hibernate 4 Project for Beginners » par Sharanam Shah et Vaishali Shah, aux Éditions Arizona Business Alliance,
  • « Apache Struts 2 Web Application Development» par Dave Newton, aux Éditions Packt Publishing
  • «Struts 2 Design And Programming : A Tutorial » par Budi Kurniawan, seconde édition BrainySoftware ()
  • « Struts 2 in Action » par Don Brown, Chad Michael Davis, Scott Stanlick ()
  • «Practical Apache Struts 2 Web 2.0 Projects » (série Practical Projects) aux Éditions Apress, par Ian Roughley,
  • « Struts2 Black Book » par Kogent SolutionsInc., 2e édition, aux Éditions Wiley

Utilisation

[modifier | modifier le code]

Cette infrastructure permet la conception et l'implémentation d'applications Web de taille importante par différents groupes de personnes. En d'autres termes, les designers, développeurs de composants logiciels peuvent gérer leur propre part du projet de manière découplée.

Struts permet la structuration d'une application Java sous forme d'un ensemble d'actions représentant des événements déclenchés par les utilisateurs de l'application. Ces actions sont décrites dans un fichier de configuration de type XML décrivant les cheminements possibles entre les différentes actions. En plus de cela, Struts permet d'automatiser la gestion de certains aspects comme la validation des données entrées par les utilisateurs via l'interface de l'application. Plus besoin de venir coder le contrôle de chaque donnée fournie par un utilisateur, il suffit de décrire les vérifications à effectuer dans un fichier XML affecté à cette tâche.

En utilisant Struts, le développeur simplifie son travail au niveau des vues et des contrôleurs du modèle MVC. Mais il serait inadapté d'utiliser ce framework dans des projets de petite taille car il introduit une certaine complexité. Struts montre toute sa puissance dans des applications d'une certaine envergure.

Struts est un logiciel libre distribué selon les termes de la licence Apache.

Concurrents

[modifier | modifier le code]

Struts est une application mature et correctement documentée. Elle fait face à de nouvelles infrastructures MVC plus légères telles que Apache Tapestry ou JSF.

Parmi les autres canevas MVC non basés sur Java, on peut citer Ruby on Rails, Zend, Django, Symfony, Catalyst, et Turbogears.

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]

Références

[modifier | modifier le code]
  1. a et b « https://projects.apache.org/json/projects/struts.json » (consulté le )
  2. « Release 6.6.0 », (consulté le )
  3. (en) Struts 1.3.10.
  4. (en) New Struts Subproject Started.
  5. (en) Jakarta Struts' graduation with honors into Apache Struts.
  6. (en) Apache Struts 1 End-Of-Life (EOL) Announcement.
  7. (en) AApache Struts 1 End-Of-Life (EOL) Press Release.
  8. Jérôme Lafosse, Struts 2 : : Le framework de développement d'applications Java EE, Saint-Herblain, eni-éditions, coll. « Expert IT », , 480 p. (ISBN 978-2-7460-5054-9, BNF 42113332, présentation en ligne), p. 17
  9. (en) Annonce de publication de Struts v2.0.1 Development Build en octobre 2006
  10. (en) OGNL Object-Graph Navigation Language.