Diferență între Struts și Struts2

Struts vs Struts2

Struts (cunoscută și ca Apache Struts sau Struts 1) sursă scrisă în Java, care este 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, Struts2 (sau Struts versiunea 2) a sosit, și a fost un cadru complet diferit și foarte î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?

Cadrul 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. Acesta este lansat sub licență Apache 2. 0. Structura de cadre se numește 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 acceptă aplicații REST și diverse tehnologii precum SOAP, AJAX etc.

Ce este Struts2?

Cadrul Struts a fost perceput de către dezvoltatorii Java EE în acea perioadă și conținea anumite limitări (în principal lipsa de separare între stratul de prezentare, stratul de manevrare a cererii și modelul) și, în consecință, câțiva ani mai târziu a sosit Struts2. De fapt, Struts2 era complet diferit de Struts. De fapt, aceștia nu au avut nici măcar aceeași bază de cod, deoarece Struts2 a fost pur și simplu rezultatul redenumizării cadrului WebWork 2. 2 (de exemplu, comunitățile WebWork și Struts care au lucrat separat de ceva timp și s-au alăturat mâinilor pentru a veni cu Struts2). Versiunea actuală stabilă este versiunea 2. 2. 3, care a fost lansată în mai 2011.

Care este diferența dintre Struts și Struts2?

Una din multele probleme ale cadrului lui Struts a fost nevoia de programare în clase abstracte în locul interfețelor. Acest lucru a fost rezolvat prin cadrul Struts2. De exemplu, Cadrul lui Struts a impus ca clasele de acțiune 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.

Testarea cadrului 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ă.