Struts vs Struts2
Struts (također poznat kao Apache Struts ili Struts 1) je višeplatformski okvir otvorenog koda napisan u Javi, koji je namijenjen razvoju Java EE web aplikacija. Bio je to jedan od početnih Java EE okvira web aplikacija. Ali nekoliko godina kasnije, stigao je Struts2 (ili Struts verzija 2) i bio je to potpuno drugačiji i vrlo poboljšani okvir web aplikacije. Obratio se na nekoliko pitanja koja su u početnoj verziji percipirana kao nedostaci. Sada se Struts2 uveliko koristi za razvoj Java EE aplikacija u svijetu.
Šta je Struts?
Struts (Struts 1) okvir je bio jedan od početnih okvira web aplikacija za razvoj Java EE web aplikacija. Struts framework podstiče upotrebu MVC (Model-View-Controller) arhitekture. To je proširenje Java Servlet API-ja. Craig McClanahan je originalni tvorac Strutsa. U početku je bio poznat kao Jakaratha Struts i održavan je u okviru Jakarta projekta Apache Software Foundation. Izdat je pod Apache licencom 2.0. Struts framework se naziva okvir zasnovan na zahtjevima i sastoji se od tri glavne komponente: rukovatelja zahtjeva, rukovatelja odgovora i biblioteke oznaka. Standardni URI (Uniform Resource Identifier) je mapiran u obrađivač zahtjeva. Rukovalac odgovora je odgovoran za prijenos kontrole. Za kreiranje interaktivnih aplikacija sa obrascima, mogu se koristiti funkcije koje nudi biblioteka oznaka. Struts podržavaju REST aplikacije i razne tehnologije kao što su SOAP, AJAX, itd.
Šta je Struts2?
Struts framework je smatran da sadrži određena ograničenja (uglavnom nedostatak razdvajanja između sloja prezentacije, sloja za rukovanje zahtjevima i modela) od strane Java EE programera u to vrijeme, pa je nekoliko godina kasnije stigao Struts2. Zapravo, Struts2 je bio potpuno drugačiji od Struts-a. Zapravo, nisu čak ni dijelili istu bazu koda jer je Struts2 bio jednostavno rezultat preimenovanja WebWork 2.2 okvira (tj. WebWork i Struts zajednice koje su radile odvojeno neko vrijeme na kraju su se udružile kako bi osmislile Struts2). Njegovo trenutno stabilno izdanje je verzija 2.2.3, koja je objavljena u maju 2011.
Koja je razlika između Struts i Struts2?
Jedan od mnogih problema Struts framework-a bila je potreba za programiranjem za apstraktne klase umjesto interfejsa. Ovo je riješeno Struts2 frameworkom. Na primjer, Struts framework zahtijeva da se Action klase prošire iz apstraktnih osnovnih klasa, ali Struts2 Actions mogu implementirati Action interfejs. Zbog razlika u modelu niti između dvije verzije, problemi sa sigurnošću niti koji su se pojavili u Struts okviru u vezi s Action objektima ne pojavljuju se u Struts2 okviru. Razlog je to što se Struts2 Action objekti instanciraju za svaki zahtjev, dok Akcija u Struts okviru ima samo jednu instancu za obradu svih zahtjeva za tu radnju. Za razliku od Actions in Struts frameworka, Struts2 Akcije ne zavise od Servlet API-ja.
Testabilnost Struts2 okvira je relativno veća od Struts frameworka. Možete testirati Struts2 Akcije jednostavno slijedeći tri koraka: instanciranje, postavljanje svojstava i pozivanje metoda. Sakupljanje unosa je lakše u Struts2 okviru jer se svojstva akcije koriste kao ulazna svojstva, bez potrebe da se zadrži drugi ulazni objekat. Osim podrške za JSTL integraciju (koja je prisutna u Struts), Struts2 framework može koristiti moćniji i izražajniji OGNL (Object Graph Notation Language). Za konverziju tipa, Strut i Strut2 koriste Commons-Beanutils i OGNL, respektivno. Zbog ovih poboljšanja, Struts2 framework se smatra veoma zrelim okvirom i veoma je popularan među Java EE programerima. S druge strane, Struts framework se sada smatra zastarjelim.