Struts vs Struts2
Struts (også kjent som Apache Struts eller Struts 1) er et åpen kildekode-rammeverk på tvers av plattformer skrevet i Java, som er ment for utvikling av Java EE-nettapplikasjoner. Det var et av de første Java EE-nettapplikasjonsrammene. Men noen år senere kom Struts2 (eller Struts versjon 2), og det var et helt annet og sterkt forbedret nettapplikasjonsrammeverk. Den hadde tatt opp få problemer som ble oppfattet som mangler i den opprinnelige versjonen. Nå brukes Struts2 veldig mye for å utvikle Java EE-applikasjoner i verden.
Hva er Struts?
Struts (Struts 1)-rammeverket var et av de første nettapplikasjonsrammene for utvikling av Java EE-nettapplikasjoner. Struts-rammeverket 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-rammeverket kalles et forespørselsbasert rammeverk, og det består av tre hovedkomponenter: en forespørselsbehandler, en responsbehandler og et tag-bibliotek. Standard URI (Uniform Resource Identifier) er tilordnet en forespørselsbehandler. Responsbehandler er ansvarlig for å overføre kontroll. For å lage interaktive applikasjoner med skjemaer, kan funksjonene som tilbys av tag-biblioteket brukes. Struts støtter REST-applikasjoner og ulike teknologier som SOAP, AJAX osv.
Hva er Struts2?
Struts-rammeverket ble oppfattet å inneholde visse begrensninger (hovedsakelig mangelen på separasjon mellom presentasjonslaget, forespørselshåndteringslaget og modellen) av Java EE-utviklerne på den tiden, og følgelig noen å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-fellesskap som jobbet hver for seg i noen tid gikk til slutt sammen 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-rammeverket var behovet for programmering til abstrakte klasser i stedet for grensesnitt. Dette ble løst av Struts2 rammeverk. 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ådingsmodellen mellom de to versjonene forekommer ikke trådsikkerhetsproblemer som dukket opp i Struts-rammeverket angående Action-objekter i Struts2-rammeverket. Årsaken er at Struts2 Action-objekter instansieres for hver forespørsel, mens et Action in Struts-rammeverk bare har én instans for å håndtere alle forespørsler for den handlingen. I motsetning til Actions in Struts-rammeverket, er ikke Struts2 Actions avhengig av Servlet API.
Testbarheten til Struts2-rammeverket er relativt høyere enn Struts-rammeverket. Du kan teste Struts2 Actions ganske enkelt ved å følge de tre trinnene: instansiering, innstilling av egenskaper og påkalling av metoder. Innhøsting av input er enklere i Struts2-rammeverket ettersom handlingsegenskaper brukes som input-egenskaper, uten å måtte beholde et andre input-objekt. Bortsett fra støtten for JSTL-integrasjon (som er til stede i Struts), kan Struts2-rammeverket bruke kraftigere og uttrykksfulle OGNL (Object Graph Notation Language). For typekonvertering bruker Strut og Strut2 henholdsvis Commons-Beanutils og OGNL. På grunn av disse forbedringene regnes Struts2-rammeverket som et svært modent rammeverk, og det er veldig populært blant Java EE-programmerere. På den annen side anses Struts rammeverk nå som foreldet.