Struts vs Struts2
Struts (även känd som Apache Struts eller Struts 1) är en öppen plattform för öppen källkod skrivet i Java, som är avsedd att utveckla Java EE webbapplikationer. Det var en av de första Java EE webbapplikationsramarna. Men några år senare kom Struts2 (eller Struts version 2), och det var en helt annan och mycket förbättrad webbapplikationsram. Det hade tagit upp några problem som uppfattades som brister i den ursprungliga versionen. Nu används Struts2 mycket för att utveckla Java EE-applikationer i världen.
Vad är Struts?
Struts (Struts 1) ramverket var en av de första webbapplikationsramarna för att utveckla Java EE webbapplikationer. Struts Framework uppmuntrar användningen av MVC (Model-View-Controller) arkitektur. Det är en förlängning av Java Servlet API. Craig McClanahan är den ursprungliga skaparen av Struts. Ursprungligen var det känt som Jakaratha Struts och upprätthölls under Jakarta Project of Apache Software Foundation. Den släpps under Apache License 2.0. Struts-ramverket kallas en begäranbaserad ram och består av tre huvudkomponenter: en begäranhanterare, en svarhanterare och ett tagbibliotek. Standard URI (Uniform Resource Identifier) är mappad till en begäranhanterare. Response Handler ansvarar för överföring av kontroll. För att skapa interaktiva applikationer med formulär kan funktionerna som erbjuds av taggbiblioteket utnyttjas. Struts stödjer REST applikationer och olika teknologier som SOAP, AJAX, etc..
Vad är Struts2?
Struts Framework uppfattades att innehålla vissa begränsningar (främst avsaknaden av separation mellan presentationsskiktet, begäran om hanteringsskikt och modellen) av Java EE-utvecklarna vid den tiden och följaktligen några år senare kom Struts2 fram. I själva verket var Struts2 helt annorlunda än Struts. Faktum är att de inte ens delar samma kodbas eftersom Struts2 helt enkelt var ett resultat av att namnge WebWork 2.2-ramverket (det vill säga WebWork och Struts-grupper som arbetade separat för en tid i slutändan med handen för att komma fram till Struts2). Den nuvarande stabila versionen är version 2.2.3, som släpptes i maj 2011.
Vad är skillnaden mellan Struts och Struts2?
Ett av de många problemen med Struts-ramverket var behovet av programmering till abstrakta klasser i stället för gränssnitt. Detta löstes av Struts2-ramverket. Exempelvis krävde Struts-ramar åtgärdsklasser att utökas från abstrakta basklasser, men Struts2-åtgärder kan implementera ett Action-gränssnitt. På grund av skillnaderna i trålemodellen mellan de två versionerna, uppstår tråksäkerhetsproblem som uppstod i Struts-ramverket om åtgärdsobjekt inte i Struts2-ramverket. Orsaken är Struts2 Handlingsobjekt är instansierade för varje förfrågan, medan en Action in Struts-ram har endast en instans för att hantera alla förfrågningar för åtgärden. Till skillnad från Actions in Struts-ramar är Struts2-åtgärder inte beroende av Servlet API.
Testbarhet för Struts2-ramverket är relativt högre än Struts-ramverket. Du kan testa Struts2 Åtgärder som bara följer de tre stegen: instantiering, inställningsegenskaper och påkallning av metoder. Inmatning av inmatning är lättare i Struts2-ramen eftersom åtgärdsegenskaper används som inmatningsegenskaper utan att behöva behålla ett andra inmatningsobjekt. Förutom stöd för JSTL-integration (som finns i Struts) kan Struts2-ramverket använda kraftfullare och uttrycksfulla OGNL (Object Graph Notation Language). För typkonvertering använder Strut och Strut2 Commons-Beanutils respektive OGNL. På grund av dessa förbättringar anses Struts2-ramverket vara en mycket mogen ram och det är mycket populärt bland Java EE-programmerare. Å andra sidan är Struts-ramverket nu ansett föråldrat.