Struts vs Struts2
Struts (cunoscut și ca Apache Struts sau Struts 1) este un cadru open source multiplatformă scris în Java, care este destinat dezvoltării de aplicații web Java EE. A fost unul dintre cadrele inițiale de aplicații web Java EE. Dar câțiva ani mai târziu, a sosit Struts2 (sau Struts versiunea 2) și a fost un cadru de aplicații web complet diferit și foarte îmbunătățit. A abordat câteva probleme care au fost percepute ca deficiențe în versiunea inițială. Acum, Struts2 este folosit foarte mult pentru dezvoltarea aplicațiilor Java EE în lume.
Ce este Struts?
Cadrul Struts (Struts 1) a fost unul dintre cadrele inițiale de aplicații web pentru dezvoltarea aplicațiilor web Java EE. Struts framework încurajează utilizarea arhitecturii MVC (Model-View-Controller). Este o extensie a API-ului Java Servlet. Craig McClanahan este creatorul original al lui Struts. Inițial a fost cunoscut sub numele de Jakaratha Struts și a fost menținut în cadrul proiectului Jakarta al Apache Software Foundation. Este lansat sub Apache License 2.0. Struts Framework se numește cadru bazat pe cereri și este alcătuit din trei componente principale: un handler de cereri, un handler de răspuns și o bibliotecă de etichete. URI standard (Uniform Resource Identifier) este mapat la un handler de solicitare. Managerul de răspuns este responsabil pentru transferul controlului. Pentru a crea aplicații interactive cu formulare, pot fi utilizate funcțiile oferite de biblioteca de etichete. Struts acceptă aplicații REST și diverse tehnologii precum SOAP, AJAX etc.
Ce este Struts2?
Cadrul Struts a fost perceput ca conține anumite limitări (în principal lipsa de separare între stratul de prezentare, stratul de gestionare a cererilor și model) de către dezvoltatorii Java EE la acea vreme și, în consecință, câțiva ani mai târziu a sosit Struts2. De fapt, Struts2 era complet diferit de Struts. De fapt, ei nici măcar nu împărtășeau aceeași bază de cod, deoarece Struts2 a fost pur și simplu rezultatul redenumiri cadrului WebWork 2.2 (adică comunitățile WebWork și Struts care au lucrat separat de ceva timp, în cele din urmă, s-au unit pentru a veni cu Struts2). Versiunea sa stabilă actuală este versiunea 2.2.3, care a fost lansată în mai 2011.
Care este diferența dintre Struts și Struts2?
Una dintre multele probleme ale framework-ului Struts a fost necesitatea de a programa pentru a abstrae clase în loc de interfețe. Acest lucru a fost rezolvat de Struts2 framework. De exemplu, Struts framework a cerut ca clasele Action să fie extinse de la clasele de bază abstracte, dar Struts2 Actions poate implementa o interfață Action. Datorită diferențelor de model de threading între cele două versiuni, problemele de siguranță ale thread-urilor care au apărut în cadrul Struts cu privire la obiectele Action nu apar în cadrul Struts2. Motivul este că obiectele Struts2 Action sunt instanțiate pentru fiecare cerere, în timp ce un cadru Action în Struts are o singură instanță pentru a gestiona toate solicitările pentru acea Acțiune. Spre deosebire de cadrul Actions in Struts, Struts2 Actions nu depind de API-ul Servlet.
Testability of Struts2 framework este comparativ mai mare decât Struts framework. Puteți testa Struts2 Actions pur și simplu urmând cei trei pași: instanțiere, setarea proprietăților și invocarea metodelor. Recoltarea intrărilor este mai ușoară în cadrul Struts2, deoarece proprietățile de acțiune sunt folosite ca proprietăți de intrare, fără a fi nevoie să păstrați un al doilea obiect de intrare. Pe lângă suportul pentru integrarea JSTL (care este prezentă în Struts), cadrul Struts2 poate folosi OGNL (Object Graph Notation Language) mai puternic și mai expresiv. Pentru conversia tipului, Strut și Strut2 folosesc Commons-Beanutils și, respectiv, OGNL. Datorită acestor îmbunătățiri, framework-ul Struts2 este considerat un cadru foarte matur și este foarte popular printre programatorii Java EE. Pe de altă parte, framework-ul Struts este acum considerat învechit.