Struts vs Struts2
Struts (også kjent som Apache Struts eller Struts 1) er en plattform med åpen kildekode som er skrevet på Java, og som er ment for utvikling av Java EE-webapplikasjoner. Det var en av de første rammene for Java EE-applikasjoner. Men få år senere ankom Struts2 (eller Struts versjon 2), og det var et helt annet og forbedret rammeverk for webapplikasjoner. Den hadde adressert få problemer som ble oppfattet som mangler i den opprinnelige versjonen. Nå blir Struts2 brukt veldig tungt for å utvikle Java EE-applikasjoner i verden.
Hva er Struts?
Struts (Struts 1) rammeverk var en av de første rammene for webapplikasjon for utvikling av Java EE-webapplikasjoner. Struts framework oppmuntrer til bruk av MVC-arkitektur (Model-View-Controller). Det er en utvidelse av Java Servlet API. Craig McClanahan er den opprinnelige skaperen av Struts. Opprinnelig var det kjent som Jakaratha Struts og ble opprettholdt under Jakarta Project of Apache Software Foundation. Den er utgitt under Apache License 2.0. Struts framework kalles et forespørselsbasert rammeverk, og det består av tre hovedkomponenter: en forespørselsbehandler, en svarbehandler og et tagbibliotek. Standard URI (Uniform Resource Identifier) tilordnes til en forespørselsbehandler. Responsbehandler er ansvarlig for overføring av kontroll. For å lage interaktive applikasjoner med skjemaer, kan funksjonene som tilbys av tagbiblioteket brukes. Struts støtter REST-applikasjoner og forskjellige teknologier som SOAP, AJAX, etc.
Hva er Struts2?
Struts framework ble oppfattet å inneholde visse begrensninger (hovedsakelig mangelen på skille mellom presentasjonslaget, forespørselshåndteringslaget og modellen) av Java EE-utviklerne på den tiden, og følgelig få år senere kom Struts2. Egentlig var Struts2 helt annerledes enn Struts. Faktisk delte de ikke engang den samme kodebasen fordi Struts2 ganske enkelt var et resultat av å gi nytt navn til WebWork 2.2-rammeverket (dvs. WebWork og Struts-samfunn som jobbet hver for seg en stund til slutt gikk sammen med hendene for å komme opp med Struts2). Den nåværende stabile utgivelsen er versjon 2.2.3, som ble utgitt i mai 2011.
Hva er forskjellen mellom Struts og Struts2?
Et av de mange problemene med Struts framework var behovet for programmering til abstrakte klasser i stedet for grensesnitt. Dette ble løst av Struts2 framework. For eksempel krevde Struts-rammeverket at Action-klasser ble utvidet fra de abstrakte basisklassene, men Struts2 Actions kan implementere et Action-grensesnitt. På grunn av forskjellene i trådmodellen mellom de to versjonene, oppstår ikke trådsikkerhetsproblemer som kom opp i Struts framework angående Action-objekter i Struts2 framework. Årsaken er at Struts2 Action-objekter blir instantiert for hver forespørsel, mens en Action in Struts-ramme bare har en forekomst for å håndtere alle forespørsler om den handlingen. I motsetning til Actions in Struts framework, er Struts2 Actions ikke avhengig av Servlet API.
Testbarheten til Struts2 framework er relativt høyere enn Struts framework. Du kan teste Struts2 Actions ved å følge de tre trinnene: instantiering, innstilling av egenskaper og påkalling av metoder. Høsting av input er lettere i Struts2-rammeverket, da Action-egenskaper brukes som input-egenskaper, uten å beholde et andre input-objekt. Bortsett fra støtten til JSTL-integrasjon (som er tilstede i Struts), kan Struts2 framework bruke kraftigere og mer uttrykksfull OGNL (Object Graph Notation Language). For typekonvertering bruker Strut og Strut2 henholdsvis Commons-Beanutils og OGNL. På grunn av disse forbedringene betraktes Struts2 framework som et svært modent rammeverk, og det er veldig populært blant Java EE-programmerere. På den annen side er Struts framework nå ansett som foreldet.