Unterschied zwischen Struts und Struts2

Anonim

Struts vs Struts2

Source-Framework, das in Java geschrieben ist und zur Entwicklung von Java EE-Webanwendungen dient. Es war eines der ersten Java EE Web Application Frameworks. Aber wenige Jahre später kam Struts2 (oder Struts Version 2) und es war ein völlig anderes und stark verbessertes Framework für Webanwendungen. Es hatte wenige Probleme angesprochen, die in der ursprünglichen Version als Mängel wahrgenommen wurden. Struts2 wird jetzt sehr stark für die Entwicklung von Java EE-Anwendungen in der Welt verwendet.

Was ist Struts?

Das Struts-Framework (Struts 1) war eines der ersten Webanwendungs-Frameworks für die Entwicklung von Java EE-Webanwendungen. Das Struts-Framework unterstützt die Verwendung der MVC-Architektur (Model-View-Controller). Es ist eine Erweiterung der Java Servlet API. Craig McClanahan ist der ursprüngliche Schöpfer von Struts. Anfangs war es als Jakaratha Struts bekannt und wurde unter Jakarta Project der Apache Software Foundation unterhalten. Es wird unter der Apache-Lizenz 2 veröffentlicht. Das Struts-Framework wird als anforderungsbasiertes Framework bezeichnet und besteht aus drei Hauptkomponenten: einem Request-Handler, einem Response-Handler und einer Tag-Bibliothek. Standard-URI (Uniform Resource Identifier) ​​wird einem Request-Handler zugeordnet. Der Antwort-Handler ist für die Übertragung der Kontrolle verantwortlich. Um interaktive Anwendungen mit Formularen zu erstellen, können die von der Tag-Bibliothek angebotenen Funktionen genutzt werden. Struts unterstützen REST-Anwendungen und verschiedene Technologien wie SOAP, AJAX, etc.

Was ist Struts2?

Das Struts-Framework wurde von den Java EE-Entwicklern zu dieser Zeit als begrenzt eingeschätzt (hauptsächlich durch die fehlende Trennung zwischen der Präsentationsschicht, der Request-Handling-Schicht und dem Modell), und folglich kam Struts2 wenige Jahre später. Eigentlich war Struts2 völlig anders als Struts. Tatsächlich hatten sie nicht einmal dieselbe Code-Basis, weil Struts2 einfach das Ergebnis der Umbenennung des WebWork 2. Frameworks war (WebWork- und Struts-Communitys, die einige Zeit separat arbeiteten). Seine aktuelle stabile Version ist Version 2. 2. 3, die im Mai 2011 veröffentlicht wurde.

Was ist der Unterschied zwischen Struts und Struts2?

Eines der vielen Probleme des Struts-Frameworks war die Notwendigkeit der Programmierung, um Klassen anstelle von Schnittstellen zu abstrakten. Dies wurde durch Struts2 Framework gelöst. Beispielsweise benötigt das Struts-Framework Aktionsklassen, die von den abstrakten Basisklassen erweitert werden sollen, Struts2-Aktionen können jedoch eine Aktionsschnittstelle implementieren. Aufgrund der Unterschiede im Threading-Modell zwischen den beiden Versionen treten Thread-Sicherheitsprobleme, die im Struts-Framework für Action-Objekte auftauchten, nicht im Struts2-Framework vor.Der Grund dafür ist, dass Struts2-Aktionsobjekte für jede Anforderung instanziiert werden, während ein Action in Struts-Framework nur eine Instanz hat, um alle Anforderungen für diese Aktion zu verarbeiten. Im Gegensatz zum Struts-Framework für Aktionen sind Struts2-Aktionen nicht von der Servlet-API abhängig.

Die Testbarkeit des Struts2-Frameworks ist vergleichsweise höher als das Struts-Framework. Sie können Struts2-Aktionen einfach nach den drei Schritten testen: Instanziierung, Eigenschaften festlegen und Methoden aufrufen. Das Sammeln von Eingaben ist im Struts2-Framework einfacher, da Action-Eigenschaften als Eingabe-Eigenschaften verwendet werden, ohne dass ein zweites Eingabeobjekt beibehalten werden muss. Neben der Unterstützung für die JSTL-Integration (die in Struts vorhanden ist) kann das Struts2-Framework eine leistungsfähigere und ausdrucksstärkere OGNL (Object Graph Notation Language) verwenden. Für die Typkonvertierung verwenden Strut und Strut2 jeweils Commons-Beanutils bzw. OGNL. Aufgrund dieser Verbesserungen wird das Struts2-Framework als ein sehr ausgereiftes Framework angesehen und ist bei Java EE-Programmierern sehr beliebt. Auf der anderen Seite gilt das Struts-Framework als überholt.