Struts vs Struts2
Struts (cunoscut și sub numele de Apache Struts sau Struts 1) este un cadru open-source de tip open-source, scris în Java, destinat dezvoltării aplicațiilor web Java EE. A fost unul dintre cadrele inițiale ale aplicațiilor 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 îmbunătățit. Ea sa adresat câtorva aspecte care au fost percepute ca deficiențe în versiunea inițială. Acum, Struts2 este folosit foarte mult pentru dezvoltarea aplicațiilor Java EE din lume.
Ce este Struts?
Struts (Struts 1) a fost unul dintre cadrele inițiale de aplicații web pentru dezvoltarea aplicațiilor web Java EE. Structura Struts încurajează utilizarea arhitecturii MVC (Model-View-Controller). Este o extensie a Java Servlet API. Craig McClanahan este creatorul original al Struts. Initial a fost cunoscut sub numele de Jakaratha Struts si a fost mentinuta sub Proiectul Jakarta al Fundatiei Apache Software. Este lansat sub Apache License 2.0. Stratul de cadre se numește un cadru bazat pe cerere și este alcătuit din trei componente principale: un handler de solicitare, un handler de răspuns și o bibliotecă de etichete. Standard URI (Uniform Resource Identifier) este mapat la un handler de solicitare. Operatorul de răspuns este responsabil pentru transferul de control. Pentru a crea aplicații interactive cu formulare, pot fi utilizate funcțiile oferite de biblioteca de etichete. Struts sprijină aplicațiile REST și diverse tehnologii precum SOAP, AJAX, etc.
Ce este Struts2?
Stratul de cadre a fost perceput că conține anumite limitări (în principal lipsa de separare între stratul de prezentare, stratul de manevrare a cererii și modelul) de dezvoltatorii Java EE la acel moment și, prin urmare, câțiva ani mai târziu a sosit Struts2. De fapt, Struts2 era complet diferit de Struts. De fapt, aceștia nu au nici măcar aceeași bază de cod, deoarece Struts2 a fost pur și simplu rezultatul redenumizării cadrului WebWork 2.2 (adică comunitățile WebWork și Struts care au lucrat separat de ceva timp și au aderat mâinile 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 multele probleme ale cadrului lui Struts a fost nevoia de programare la clase abstracte în loc de interfețe. Acest lucru a fost rezolvat prin cadrul Struts2. De exemplu, Cadrul lui Struts a impus ca clasele de acțiuni să fie extinse din clasele de bază abstracte, dar acțiunile Struts2 pot implementa o interfață Action. Datorită diferențelor dintre modelul de filetare dintre cele două versiuni, problemele de siguranță a firului care au apărut în cadrul Struts cu privire la obiectele Action nu apar în cadrul Struts2. Motivul este că obiectele de acțiune Struts2 sunt instanțiate pentru fiecare solicitare, în timp ce un cadru Action in Struts are doar o instanță care să se ocupe de toate solicitările pentru acea acțiune. Spre deosebire de acțiunile din cadrul Struts, acțiunile Struts2 nu depind de API-ul Servlet.
Testabilitatea structurii Struts2 este relativ mai mare decât cadrul Struts. Puteți testa acțiunile Struts2 pur și simplu urmând cei trei pași: instanțierea, setarea proprietăților și invocarea metodelor. Intrările de recoltare sunt mai ușor î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. În afară de 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 de tip, Strut și Strut2 utilizează Commons-Beanutils și OGNL, respectiv. Din cauza acestor îmbunătățiri, structura Struts2 este considerată un cadru foarte matur și este foarte popular printre programatorii Java EE. Pe de altă parte, structura Struts este acum considerată depășită.