Struts vs Struts2
Struts (taip pat žinomas kaip Apache Struts arba Struts 1) yra kelių platformų atvirojo kodo sistema, parašyta Java kalba, skirta Java EE žiniatinklio programoms kurti. Tai buvo viena iš pradinių Java EE žiniatinklio programų sistemų. Tačiau po kelerių metų pasirodė Struts2 (arba Struts 2 versija), ir tai buvo visiškai kitokia ir labai patobulinta žiniatinklio programų sistema. Jame buvo išspręstos kelios problemos, kurios buvo suvokiamos kaip pradinės versijos trūkumai. Dabar „Struts2“labai intensyviai naudojama kuriant „Java EE“programas pasaulyje.
Kas yra statramsčiai?
Struts (Struts 1) sistema buvo viena iš pradinių žiniatinklio programų struktūrų, skirtų Java EE žiniatinklio programoms kurti. Struts sistema skatina naudoti MVC (Model-View-Controller) architektūrą. Tai yra Java Servlet API plėtinys. Craigas McClanahanas yra pirmasis „Struts“kūrėjas. Iš pradžių jis buvo žinomas kaip „Jakaratha Struts“ir buvo prižiūrimas pagal „Apache Software Foundation“Džakartos projektą. Jis išleistas pagal Apache licenciją 2.0. Struts sistema vadinama užklausa pagrįsta sistema ir susideda iš trijų pagrindinių komponentų: užklausų tvarkyklės, atsakymų tvarkyklės ir žymų bibliotekos. Standartinis URI (Uniform Resource Identifier) susietas su užklausų tvarkykle. Atsakymo tvarkytojas yra atsakingas už valdymo perdavimą. Norint sukurti interaktyvias programas su formomis, galima naudoti žymų bibliotekos teikiamas funkcijas. Atramos palaiko REST programas ir įvairias technologijas, tokias kaip SOAP, AJAX ir kt.
Kas yra Struts2?
Java EE kūrėjai tuo metu suprato, kad Struts sistemoje yra tam tikrų apribojimų (daugiausia tai, kad nėra atskirties tarp pateikimo sluoksnio, užklausų apdorojimo sluoksnio ir modelio), todėl po kelerių metų pasirodė Struts2. Tiesą sakant, „Struts2“visiškai skyrėsi nuo „Struts“. Tiesą sakant, jie net nesidalijo ta pačia kodų baze, nes „Struts2“buvo tiesiog WebWork 2.2 sistemos pervadinimo rezultatas (t. y. „WebWork“ir „Struts“bendruomenės, kurios kurį laiką dirbo atskirai, galiausiai susijungė rankomis, kad sukurtų „Struts2“). Dabartinė stabili versija yra 2.2.3 versija, kuri buvo išleista 2011 m. gegužės mėn.
Kuo skiriasi Struts ir Struts2?
Viena iš daugelio Struts sistemos problemų buvo poreikis programuoti abstrakčias klases, o ne sąsajas. Tai išsprendė Struts2 framework. Pavyzdžiui, „Struts“sistema reikalauja, kad „Action“klasės būtų išplėstos iš abstrakčių bazinių klasių, tačiau „Struts2 Actions“gali įdiegti veiksmų sąsają. Dėl dviejų versijų gijų modelio skirtumų gijų saugos problemos, iškilusios Struts sistemoje, susijusios su veiksmo objektais, nekyla Struts2 sistemoje. Priežastis ta, kad Struts2 veiksmo objektai pateikiami kiekvienai užklausai, o veiksmas Struts sistemoje turi tik vieną egzempliorių, kad būtų galima apdoroti visas to veiksmo užklausas. Skirtingai nuo „Actions in Struts“sistemos, „Struts2 Actions“nepriklauso nuo „Servlet“API.
Struts2 sistemos išbandymas yra palyginti aukštesnis nei Struts karkaso. Galite išbandyti „Struts2 Actions“tiesiog atlikdami tris veiksmus: egzistavimo, savybių nustatymo ir metodų iškvietimo. Įvesties rinkimas yra paprastesnis Struts2 sistemoje, nes veiksmo ypatybės naudojamos kaip įvesties ypatybės, nereikia laikyti antrojo įvesties objekto. Be JSTL integracijos palaikymo (kuri yra Struts), Struts2 sistema gali naudoti galingesnę ir išraiškingesnę OGNL (Object Graph notation Language). Tipo konvertavimui Strut ir Strut2 atitinkamai naudoja Commons-Beanutils ir OGNL. Dėl šių patobulinimų „Struts2“sistema laikoma labai brandžia sistema ir yra labai populiari tarp „Java EE“programuotojų. Kita vertus, „Struts“sistema dabar laikoma pasenusia.