Struts vs Struts2
Struts (cunoscut și sub numele de Apache Struts sau Struts 1) este un cadru open-source multiplataforma scris în Java, care este destinat dezvoltării aplicațiilor web Java EE. A fost unul dintre cadrul inițial de aplicații web Java EE. Dar câțiva ani mai târziu, a sosit Struts2 (sau versiunea Struts 2) și a fost un cadru de aplicații web complet diferit și extrem de îmbunătățit. A abordat câteva probleme care au fost percepute ca deficiențe în versiunea inițială. Acum, Struts2 este utilizat foarte mult pentru dezvoltarea de aplicații Java EE în lume.
Ce este Struts?
Struts (Struts 1) framework a fost unul dintre framework-urile 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 Java Servlet API. Craig McClanahan este creatorul original al 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 licența Apache 2.0. Struts Framework este denumit cadru bazat pe cereri și este alcătuit din trei componente principale: un gestionar de cereri, un gestionar de răspuns și o bibliotecă de etichete. URI-ul standard (Uniform Resource Identifier) este mapat la un handler de solicitare. Manipulatorul 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. Struturile acceptă aplicații REST și diverse tehnologii precum SOAP, AJAX etc.
Ce este Struts2?
Structura Struts a fost percepută ca conținând anumite limitări (în principal lipsa de separare între stratul de prezentare, stratul de gestionare a cererilor și modelul) de către dezvoltatorii Java EE la acel moment și, în consecință, câțiva ani mai târziu, a sosit Struts2. De fapt, Struts2 era complet diferit de Struts. De fapt, nici măcar nu au împărtășit aceeași bază de cod, deoarece Struts2 a fost pur și simplu rezultatul redenumirii cadrului WebWork 2.2 (adică comunitățile WebWork și Struts care au lucrat separat pentru o perioadă de timp s-au unit în cele din urmă pentru a veni cu Struts2). Versiunea sa actuală stabilă este versiunea 2.2.3, care a fost lansată în mai 2011.
Care este diferența dintre Struts și Struts2?
Una dintre numeroasele probleme ale cadrului Struts a fost necesitatea programării în clase abstracte în loc de interfețe. Acest lucru a fost rezolvat prin cadrul Struts2. De exemplu, cadrul Struts a necesitat extinderea claselor de acțiuni din clasele de bază abstracte, dar Struts2 Actions poate implementa o interfață de acțiune. Datorită diferențelor în modelul de filetare între cele două versiuni, problemele de siguranță ale firelor apărute în cadrul Struts în ceea ce privește obiectele de acțiune nu apar în cadrul Struts2. Motivul este că obiectele de acțiune Struts2 sunt instanțiate pentru fiecare solicitare, în timp ce o acțiune în cadrul Struts are o singură instanță pentru a gestiona toate cererile pentru acțiunea respectivă. Spre deosebire de Acțiunile din cadrul Struts, Acțiunile Struts2 nu depind de API-ul Servlet.
Testabilitatea cadrului Struts2 este comparativ mai mare decât a cadrului Struts. Puteți testa Acțiunile Struts2 urmând pur și simplu cei trei pași: instanțierea, setarea proprietăților și invocarea metodelor. Recoltarea intrării este mai ușoară în cadrul Struts2, deoarece proprietățile de acțiune sunt utilizate ca proprietăți de intrare, fără a fi nevoie să păstrați un al doilea obiect de intrare. În afară de suportul pentru integrarea JSTL (care este prezent în Struts), Struts2 framework poate folosi OGNL (Object Graph Notation Language) mai puternic și mai expresiv. Pentru conversia de tip, Strut și Strut2 folosesc Commons-Beanutils și, respectiv, OGNL. Datorită acestor îmbunătățiri, cadrul Struts2 este considerat un cadru extrem de matur și este foarte popular printre programatorii Java EE. Pe de altă parte, cadrul Struts este acum considerat învechit.