Stutten vs Struts2
Struts (ook bekend als Apache Struts of Struts 1) is een platformonafhankelijk open source framework geschreven in Java, dat bedoeld is voor het ontwikkelen van Java EE-webapplicaties. Het was een van de eerste Java EE-webapplicatieframeworks. Maar een paar jaar later arriveerde Struts2 (of Struts versie 2), en het was een heel ander en sterk verbeterd webapplicatieframework. Het had enkele problemen aangepakt die in de eerste versie als tekortkomingen werden gezien. Nu wordt Struts2 erg veel gebruikt voor het ontwikkelen van Java EE-applicaties in de wereld.
Wat is stutten?
Struts (Struts 1) framework was een van de eerste webapplicatieframeworks voor het ontwikkelen van Java EE-webapplicaties. Struts-framework stimuleert het gebruik van MVC-architectuur (Model-View-Controller). Het is een uitbreiding van de Java Servlet API. Craig McClanahan is de oorspronkelijke maker van Struts. Aanvankelijk stond het bekend als Jakaratha Struts en werd het onderhouden onder Jakarta Project van Apache Software Foundation. Het is vrijgegeven onder Apache-licentie 2.0. Struts-framework wordt een request-based framework genoemd en bestaat uit drie hoofdcomponenten: een request-handler, een response-handler en een tagbibliotheek. Standaard URI (Uniform Resource Identifier) wordt toegewezen aan een verzoekafhandelaar. Response handler is verantwoordelijk voor het overdragen van controle. Om interactieve toepassingen met formulieren te maken, kunnen de functies van de tagbibliotheek worden gebruikt. Struts ondersteunen REST-applicaties en verschillende technologieën zoals SOAP, AJAX, enz.
Wat is Struts2?
Struts-framework werd door de Java EE-ontwikkelaars in die tijd gezien als bepaalde beperkingen (voornamelijk het gebrek aan scheiding tussen de presentatielaag, de laag voor het verwerken van verzoeken en het model), en als gevolg daarvan kwam Struts2 enkele jaren later. Eigenlijk was Struts2 totaal anders dan Struts. In feite deelden ze niet eens dezelfde codebasis, omdat Struts2 eenvoudigweg het resultaat was van het hernoemen van het WebWork 2.2-framework (d.w.z. WebWork- en Struts-gemeenschappen die enige tijd afzonderlijk werkten, sloegen uiteindelijk de handen ineen om met Struts2 te komen). De huidige stabiele release is versie 2.2.3, die werd uitgebracht in mei 2011.
Wat is het verschil tussen Struts en Struts2?
Een van de vele problemen van het Struts-framework was de noodzaak om te programmeren om klassen te abstraheren in plaats van interfaces. Dit werd opgelost door Struts2 framework. Het Struts-framework vereiste bijvoorbeeld dat Action-klassen werden uitgebreid van de abstracte basisklassen, maar Struts2 Actions kan een Action-interface implementeren. Vanwege de verschillen in het threading-model tussen de twee versies komen thread-veiligheidsproblemen die naar voren kwamen in het Struts-framework met betrekking tot Action-objecten niet voor in het Struts2-framework. De reden hiervoor is dat Struts2 Action-objecten voor elk verzoek worden geïnstantieerd, terwijl een Action in Struts-framework slechts één instantie heeft om alle verzoeken voor die actie af te handelen. In tegenstelling tot het Actions in Struts framework, zijn Struts2 Actions niet afhankelijk van de Servlet API.
De testbaarheid van het Struts2-framework is relatief hoger dan het Struts-framework. U kunt Struts2 Actions testen door simpelweg de drie stappen te volgen: instantiëren, eigenschappen instellen en aanroepen van methoden. Het oogsten van invoer is gemakkelijker in het Struts2-framework omdat actie-eigenschappen worden gebruikt als invoereigenschappen, zonder dat u een tweede invoerobject hoeft te behouden. Afgezien van de ondersteuning voor JSTL-integratie (die aanwezig is in Struts), kan het Struts2-framework krachtigere en expressievere OGNL (Object Graph Notation Language) gebruiken. Voor typeconversie gebruiken Strut en Strut2 respectievelijk Commons-Beanutils en OGNL. Vanwege deze verbeteringen wordt het Struts2-framework beschouwd als een zeer volwassen framework en is het erg populair onder Java EE-programmeurs. Aan de andere kant wordt het Struts-framework nu als verouderd beschouwd.