Stutten versus stutten 2
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 frameworks voor Java EE-webtoepassingen. Maar een paar jaar later arriveerde Struts2 (of Struts versie 2), en het was een compleet ander en sterk verbeterd framework voor webapplicaties. Het had enkele problemen aangepakt die in de eerste versie als tekortkomingen werden ervaren. Nu wordt Struts2 zeer intensief gebruikt voor het ontwikkelen van Java EE-applicaties in de wereld.
Wat zijn stutten?
Het Struts (Struts 1) -raamwerk was een van de eerste frameworks voor webapplicaties voor het ontwikkelen van Java EE-webapplicaties. Struts-framework moedigt het gebruik van MVC-architectuur (Model-View-Controller) aan. 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 License 2.0. Struts-raamwerk wordt een op verzoeken gebaseerd raamwerk genoemd en bestaat uit drie hoofdcomponenten: een verzoekbehandelaar, een antwoordhandler en een tagbibliotheek. Standaard URI (Uniform Resource Identifier) wordt toegewezen aan een verzoekbehandelaar. 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, etc.
Wat is Struts2?
Het raamwerk van Struts werd toentertijd door de Java EE-ontwikkelaars gezien als een aantal beperkingen (voornamelijk het gebrek aan scheiding tussen de presentatielaag, de verzoekafhandelingslaag en het model), en bijgevolg kwam Struts2 enkele jaren later aan. Eigenlijk was Struts2 totaal anders dan Struts. In feite deelden ze niet eens dezelfde codebasis omdat Struts2 simpelweg het resultaat was van het hernoemen van het WebWork 2.2-framework (dwz WebWork- en Struts-gemeenschappen die enige tijd afzonderlijk werkten, sloegen uiteindelijk de handen in elkaar om Struts2 te bedenken). 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 is 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 draadsnijmodel tussen de twee versies komen draadveiligheidsproblemen die in het Struts-framework naar voren kwamen 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-raamwerk is relatief hoger dan het Struts-raamwerk. U kunt Struts2 Actions eenvoudig testen door de drie stappen te volgen: instantiatie, eigenschappen instellen en methoden aanroepen. Het oogsten van invoer is eenvoudiger in het Struts2-framework omdat Action-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 krachtiger en expressiever 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-raamwerk nu als achterhaald beschouwd.