Struts vs Struts2
Struts (taip pat žinomas kaip „Apache Struts“arba „Struts 1“) yra „cross-platform“atvirojo kodo sistema, parašyta „Java“, 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. Joje buvo nagrinėjami keli klausimai, kurie pradinėje versijoje buvo suvokiami kaip trūkumai. Dabar „Struts2“yra labai naudojamas kuriant „Java EE“programas pasaulyje.
Kas yra statramsčiai?
Struts (Struts 1) sistema buvo viena iš pradinių žiniatinklio programų struktūrų kuriant „Java EE“žiniatinklio programas. Struts sistema skatina naudoti MVC (Model-View-Controller) architektūrą. Tai yra „Java Servlet“API plėtinys. Craigas McClanahanas yra originalus „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šleidžiamas pagal „Apache License 2.0“. Struts sistema vadinama užklausomis paremta sistema, kurią sudaro trys pagrindiniai komponentai: užklausų tvarkytuvas, atsakymų tvarkytuvas ir žymų biblioteka. Standartinis URI (vienodas išteklių identifikatorius) yra susietas su užklausų tvarkytuvu. Atsakymo tvarkytojas yra atsakingas už kontrolės perdavimą. Norėdami sukurti interaktyvias programas su formomis, galima naudoti žymių bibliotekos siūlomas funkcijas. Struts palaiko REST programas ir įvairias technologijas, tokias kaip SOAP, AJAX ir kt.
Kas yra Struts2?
Tuo metu „Java EE“kūrėjai suprato, kad „Struts“sistemoje yra tam tikrų apribojimų (daugiausia trūksta atskyrimo tarp pateikimo sluoksnio, užklausų tvarkymo sluoksnio ir modelio), todėl po kelerių metų atsirado „Struts2“. Tiesą sakant, „Struts2“buvo visiškai kitoks nei „Struts“. Tiesą sakant, jie net nesidalijo ta pačia kodų baze, nes „Struts2“buvo tiesiog „WebWork 2.2“sistemos pervadinimo rezultatas (ty „WebWork“ir „Struts“bendruomenės, kurios kurį laiką dirbo atskirai, galiausiai susikibo rankomis, kad sugalvotų „Struts2“). Dabartinis stabilus jo leidimas yra 2.2.3 versija, išleista 2011 m. Gegužės mėn.
Koks skirtumas tarp statramsčių ir atramų2?
Viena iš daugelio „Struts“sistemos problemų buvo poreikis programuoti abstrakčias klases, o ne sąsajas. Tai išsprendė „Struts2“sistema. Pavyzdžiui, „Struts“sistemai reikėjo išplėsti „Action“klases nuo abstrakčių bazinių klasių, tačiau „Struts2“veiksmai gali įdiegti „Action“sąsają. Dėl abiejų versijų sriegimo modelio skirtumų „Struts2“sistemoje „Struts“sistemoje iškilo siūlų saugos problemų, susijusių su veiksmo objektais. Priežastis yra Struts2 veiksmo objektai yra išvedami kiekvienai užklausai, o „Action in Struts“sistemoje yra tik vienas egzempliorius, skirtas tvarkyti visas to veiksmo užklausas. Skirtingai nei „Actions in Struts“sistemoje, „Struts2“veiksmai nėra priklausomi nuo „Servlet“API.
„Struts2“sistemos testavimas yra palyginti aukštesnis nei „Struts“pagrindo. „Struts2“veiksmus galite išbandyti atlikdami tris veiksmus: egzempliorių nustatymą, ypatybių nustatymą ir metodų iškvietimą. Struts2 sistemoje lengviau surinkti įvestį, nes veiksmo ypatybės naudojamos kaip įvesties ypatybės, nereikia laikyti antrojo įvesties objekto. Be JSTL integracijos palaikymo (kuris yra Struts), Struts2 sistema gali naudoti galingesnę ir išraiškingesnę OGNL (Object Graph Notation Language). Tipo keitimui „Strut“ir „Strut2“naudoja atitinkamai „Commons-Beanutils“ir „OGNL“. Dėl šių patobulinimų „Struts2“sistema yra laikoma labai brandžia sistema ir yra labai populiari tarp „Java EE“programuotojų. Kita vertus, „Struts“sistema dabar laikoma pasenusia.