Statramsčiai prieš statramsčius2
„Struts“ (taip pat žinomas kaip „Apache Struts“ arba „Struts 1“) yra „Java“ tinkle parašyta atvirojo kodo platforma, skirta Java Java žiniatinklio programoms kurti. Tai buvo viena iš pradinių „Java EE“ internetinių programų struktūrų. 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 nagrinėjami keli klausimai, kurie buvo suvokiami 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ų interneto 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 originalus „Struts“ kūrėjas. Iš pradžių ji buvo žinoma kaip Jakaratha Struts ir buvo prižiūrima vadovaujant „Apache Software Foundation“ Jakarta projektui. Jis išleistas naudojant „Apache License 2.0“. „Struts“ sistema vadinama užklausomis pagrįsta sistema, kurią sudaro trys pagrindiniai komponentai: užklausų tvarkytojas, atsakymų tvarkytojas ir žymų biblioteka. Standartinis URI (vienodas išteklių identifikatorius) priskiriamas užklausų tvarkytojui. Atsakomybės tvarkytojas yra atsakingas už kontrolės perdavimą. Norėdami kurti interaktyvias programas su formomis, galima naudoti žymų bibliotekos siūlomas funkcijas. Statramsčiai 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 tai, kad nėra atskyrimo tarp pateikimo sluoksnio, užklausų tvarkymo sluoksnio ir modelio), todėl keleriais metais vėliau „Struts2“ atvyko. Tiesą sakant, „Struts2“ visiškai skyrėsi nuo „Struts“. Tiesą sakant, jie net nebendravo su ta pačia kodo baze, nes „Struts2“ buvo paprasčiausiai pervadintos „WebWork 2.2“ sistema (t. Y. „WebWork“ ir „Struts“ bendruomenės, kurios kurį laiką dirbo atskirai, galų gale sudėjo rankas, kad sugalvotų „Struts2“). Dabartinė stabili versija yra 2.2.3 versija, kuri buvo išleista 2011 m. Gegužės mėn.
Kuo skiriasi „Struts“ nuo „Struts2“??
Viena iš daugelio „Struts“ sistemos problemų buvo poreikis programuoti abstrakčias klases, o ne sąsajas. Tai buvo išspręsta naudojant „Struts2“ sistemą. Pavyzdžiui, „Struts“ sistemai reikėjo išplėsti veiksmų klases iš abstrakčių bazinių klasių, tačiau „Struts2“ veiksmai gali įgyvendinti „Action“ sąsają. Dėl skirtingų versijų sriegimo modelio skirtumų, „Struts“ sistemoje iškilę „thread“ saugos klausimai, susiję su „Action“ objektais, „Struts2“ sistemoje neatsiranda. Priežastis yra „Struts2“ veiksmo objektai yra akimirksniu paverčiami kiekviena užklausa, tuo tarpu „Action in Struts“ sistemoje yra tik vienas egzempliorius, skirtas tvarkyti visas to veiksmo užklausas. Skirtingai nei veiksmai „Struts“ sistemoje, „Struts2“ veiksmai nepriklauso nuo „Servlet“ API.
„Struts2“ struktūros testavimas yra palyginti didesnis nei „Struts“ sistemos. Galite išbandyti „Struts2“ veiksmus atlikdami tris veiksmus: momentinę informaciją, savybių nustatymą ir metodų iškvietimą. „Struts2“ sistemoje lengviau surinkti įvestį, nes veiksmo savybės naudojamos kaip įvesties savybės, nereikia laikyti antro įvesties objekto. Be palaikymo JSTL integracijai (kurios yra „Struts“), „Struts2“ sistema gali naudoti galingesnę ir išraiškingesnę OGNL (objekto grafiko žymėjimo kalbą). Norėdami pakeisti tipą, „Strut“ ir „Strut2“ atitinkamai naudokite „Commons-Beanutils“ ir OGNL. Dėl šių patobulinimų „Struts2“ karkasas laikomas labai brandžiu ir yra labai populiarus tarp „Java EE“ programuotojų. Kita vertus, „Struts“ sistema dabar laikoma pasenusia.