Struts vs Struts2
Struts (også kjent som Apache Struts eller Struts 1) er en åpen plattform for åpen kildekode skrevet i Java, som er beregnet på å utvikle Java EE webapplikasjoner. Det var en av de første Java EE webapplikasjonene. Men noen år senere kom Struts2 (eller Struts versjon 2), og det var et helt annet og sterkt forbedret webapplikasjonsramme. Det hadde adressert noen få problemer som ble oppfattet som mangler i den første versjonen. Nå blir Struts2 brukt svært tungt for å utvikle Java EE-applikasjoner i verden.
Hva er Struts?
Struts (Struts 1) rammeverket var en av de første webapplikasjonene for utvikling av Java EE web applikasjoner. Struts Framework støtter bruken av MVC (Model-View-Controller) arkitektur. Det er en forlengelse av Java Servlet API. Craig McClanahan er den opprinnelige skaperen av Struts. Det var i utgangspunktet kjent som Jakaratha Struts og ble opprettholdt under Jakarta Project of Apache Software Foundation. Den er utgitt under Apache License 2.0. Struts-rammen kalles en forespørselsbasert rammeverk, og består av tre hovedkomponenter: en forespørselsbehandler, en responsbehandler og et tagbibliotek. Standard URI (Uniform Resource Identifier) er kartlagt til en forespørselsbehandler. Response Handler er ansvarlig for overføring av kontroll. For å lage interaktive applikasjoner med skjemaer, kan funksjonene som tilbys av tagbiblioteket benyttes. Struts støtter REST applikasjoner og ulike teknologier som SOAP, AJAX, etc..
Hva er Struts2?
Struts-rammen ble oppfattet å inneholde visse begrensninger (hovedsakelig mangelen på separasjon mellom presentasjonslaget, forespørselshåndteringslaget og modellen) av Java EE-utviklerne på den tiden, og derfor kom noen år senere Struts2. Struts2 var faktisk helt forskjellig fra Struts. Faktisk deler de ikke en gang samme kodebase fordi Struts2 bare var et resultat av å omdøpe WebWork 2.2-rammen (det vil si WebWork og Struts-fellesskap som jobbet separat for en stund, til slutt fulgte hender for å komme opp med Struts2). Den nåværende stabile versjonen er versjon 2.2.3, som ble utgitt i mai 2011.
Hva er forskjellen mellom Struts og Struts2?
En av de mange problemene med Struts-rammen var behovet for programmering til abstrakte klasser i stedet for grensesnitt. Dette ble løst av Struts2 rammeverk. For eksempel krever Struts-rammeverk Action klasser som skal utvides fra abstrakte grunnklasser, men Struts2 Actions kan implementere et Action-grensesnitt. På grunn av forskjellene i trådemodellen mellom de to versjonene, oppstår tråksikkerhetsproblemer som kom opp i Struts-rammen angående Actionobjekter, ikke i Struts2-rammen. Årsaken er Struts2 Handlingsobjekter er instantiated for hver forespørsel, mens en Action in Struts-rammeverk kun har én forekomst for å håndtere alle forespørsler for den handlingen. I motsetning til handlingene i Struts-rammen, er Struts2-handlinger ikke avhengige av Servlet API.
Testbarhet av Struts2-rammen er relativt høyere enn Struts-rammen. Du kan teste Struts2-handlinger som bare følger de tre trinnene: instantiering, innstillingsegenskaper og innkalling av metoder. Innhøstingsinngang er lettere i Struts2-rammen, da Handlingsegenskaper brukes som inndataegenskaper, uten å behøve et annet inntaksobjekt. Bortsett fra støtten til JSTL-integrasjon (som er tilstede i Struts), kan Struts2-rammen bruke kraftigere og uttrykksfulle OGNL (Object Graph Notation Language). For type konvertering bruker henholdsvis Strut og Strut2 Commons-Beanutils og OGNL. På grunn av disse forbedringene er Struts2-rammen betraktet som et høyt modent rammeverk, og det er veldig populært blant Java EE-programmerere. På den annen side er Struts-rammen nå betraktet som foreldet.