Struts vs Struts2
Struts (també conegut com Apache Struts o Struts 1) és un marc de codi obert multiplataforma escrit en Java, que està pensat per desenvolupar aplicacions web Java EE. Va ser un dels marcs inicials d'aplicacions web de Java EE. Però pocs anys després, va arribar Struts2 (o Struts versió 2), i era un marc d'aplicacions web completament diferent i molt millorat. S'havia abordat pocs problemes que es van percebre com a deficiències en la versió inicial. Ara, Struts2 s'utilitza molt per desenvolupar aplicacions Java EE al món.
Què és Struts?
El marc Struts (Struts 1) va ser un dels marcs inicials d'aplicacions web per desenvolupar aplicacions web Java EE. Struts framework fomenta l'ús de l'arquitectura MVC (Model-View-Controller). És una extensió de l'API Java Servlet. Craig McClanahan és el creador original de Struts. Inicialment es coneixia com a Jakaratha Struts i es va mantenir sota el projecte Jakarta d'Apache Software Foundation. Es publica sota la llicència Apache 2.0. El marc Struts s'anomena marc basat en peticions i està format per tres components principals: un gestor de sol·licituds, un gestor de respostes i una biblioteca d'etiquetes. L'URI estàndard (identificador uniforme de recursos) s'assigna a un gestor de sol·licituds. El gestor de respostes és responsable de transferir el control. Per crear aplicacions interactives amb formularis, es poden utilitzar les funcions que ofereix la biblioteca d'etiquetes. Struts admet aplicacions REST i diverses tecnologies com SOAP, AJAX, etc.
Què és Struts2?
El marc Struts va ser percebut que contenia certes limitacions (principalment la manca de separació entre la capa de presentació, la capa de gestió de sol·licituds i el model) pels desenvolupadors de Java EE en aquell moment i, en conseqüència, pocs anys després va arribar Struts2. De fet, Struts2 era completament diferent de Struts. De fet, ni tan sols compartien la mateixa base de codi perquè Struts2 va ser simplement el resultat del canvi de nom del marc WebWork 2.2 (és a dir, les comunitats WebWork i Struts que van treballar per separat durant un temps, finalment, es van unir per crear Struts2). La seva versió estable actual és la 2.2.3, que es va publicar el maig de 2011.
Quina diferència hi ha entre Struts i Struts2?
Un dels molts problemes del framework Struts va ser la necessitat de programar per abstraure classes en lloc d'interfícies. Això es va resoldre amb Struts2 framework. Per exemple, el marc Struts requeria que les classes d'acció s'ampliessin a partir de les classes base abstractes, però Struts2 Actions pot implementar una interfície d'acció. A causa de les diferències en el model de fils entre les dues versions, els problemes de seguretat de fils que van sorgir al marc Struts pel que fa als objectes Action no es produeixen al marc Struts2. La raó és que els objectes d'acció de Struts2 s'instanciïn per a cada sol·licitud, mentre que un marc d'acció en Struts només té una instància per gestionar totes les sol·licituds d'aquesta acció. A diferència del marc d'Accions a Struts, les accions de Struts2 no depenen de l'API Servlet.
La provabilitat del marc Struts2 és comparativament superior a la del marc Struts. Podeu provar les accions Struts2 simplement seguint els tres passos: creació d'instancies, configuració de propietats i invocació de mètodes. La recollida d'entrada és més fàcil al marc Struts2, ja que les propietats d'acció s'utilitzen com a propietats d'entrada, sense haver de mantenir un segon objecte d'entrada. A part del suport per a la integració JSTL (que està present a Struts), el marc Struts2 pot utilitzar OGNL (Llenguatge de notació gràfic d'objectes) més potent i expressiu. Per a la conversió de tipus, Strut i Strut2 utilitzen Commons-Beanutils i OGNL, respectivament. A causa d'aquestes millores, el marc Struts2 es considera un marc molt madur i és molt popular entre els programadors de Java EE. D' altra banda, el marc Struts ara es considera obsolet.