Struts vs Struts2
Struts (auch als Apache Struts oder Struts 1 bekannt) ist ein plattformübergreifendes Open Source-Framework, das in Java geschrieben wurde und für die Entwicklung von Java EE-Webanwendungen vorgesehen ist. Es war eines der ersten Java EE-Webanwendungsframeworks. Einige Jahre später kam Struts2 (oder Struts Version 2) und es war ein völlig anderes und stark verbessertes Webanwendungsframework. Es wurden nur wenige Probleme behoben, die in der ursprünglichen Version als Mängel wahrgenommen wurden. Jetzt wird Struts2 sehr häufig für die Entwicklung von Java EE-Anwendungen in der Welt verwendet.
Was ist Streben?
Das Struts (Struts 1) -Framework war eines der ersten Webanwendungsframeworks 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. Ursprünglich war es als Jakaratha Struts bekannt und wurde im Rahmen des Jakarta-Projekts der Apache Software Foundation unterhalten. Es wird unter Apache License 2.0 veröffentlicht. Das Struts-Framework wird als anforderungsbasiertes Framework bezeichnet und besteht aus drei Hauptkomponenten: einem Anforderungshandler, einem Antworthandler und einer Tag-Bibliothek. Der Standard-URI (Uniform Resource Identifier) wird einem Anforderungshandler zugeordnet. Der Response-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 verwendet werden. Streben unterstützen REST-Anwendungen und verschiedene Technologien wie SOAP, AJAX usw.
Was ist Struts2?
Das Struts-Framework wurde von den Java EE-Entwicklern zu diesem Zeitpunkt als mit bestimmten Einschränkungen behaftet (hauptsächlich die fehlende Trennung zwischen Präsentationsschicht, Anforderungsbearbeitungsschicht und Modell), und folglich kam Struts2 einige Jahre später an. Eigentlich war Struts2 völlig anders als Struts. Tatsächlich teilten sie nicht einmal dieselbe Codebasis, da Struts2 einfach das Ergebnis der Umbenennung des WebWork 2.2-Frameworks war (dh WebWork- und Struts-Communities, die einige Zeit getrennt arbeiteten, schlossen sich schließlich zusammen, um Struts2 zu entwickeln). Die 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, auf abstrakte Klassen anstatt auf Schnittstellen zu programmieren. Dies wurde durch das Struts2-Framework gelöst. Für das Struts-Framework mussten beispielsweise Aktionsklassen aus den abstrakten Basisklassen erweitert werden, aber Struts2-Aktionen können eine Aktionsschnittstelle implementieren. Aufgrund der Unterschiede im Threading-Modell zwischen den beiden Versionen treten im Struts2-Framework keine Thread-Sicherheitsprobleme auf, die im Struts-Framework in Bezug auf Aktionsobjekte aufgetreten sind. Der Grund dafür ist, dass Struts2-Aktionsobjekte für jede Anforderung instanziiert werden, während eine Aktion im Struts-Framework nur eine Instanz hat, um alle Anforderungen für diese Aktion zu verarbeiten. Im Gegensatz zum Framework "Aktionen in Struts" sind Struts2-Aktionen nicht von der Servlet-API abhängig.
Die Testbarkeit des Struts2-Frameworks ist vergleichsweise höher als die des Struts-Frameworks. Sie können Struts2-Aktionen einfach anhand der drei folgenden Schritte testen: Instanziierung, Festlegen von Eigenschaften und Aufrufen von Methoden. Das Ernten von Eingaben ist im Struts2-Framework einfacher, da Aktionseigenschaften als Eingabeeigenschaften verwendet werden, ohne dass ein zweites Eingabeobjekt beibehalten werden muss. Abgesehen von der Unterstützung der JSTL-Integration (die in Struts vorhanden ist) kann das Struts2-Framework leistungsfähigere und ausdrucksstärkere OGNL (Object Graph Notation Language) verwenden. Für die Typkonvertierung verwenden Strut und Strut2 Commons-Beanutils bzw. OGNL. Aufgrund dieser Verbesserungen wird das Struts2-Framework als hoch ausgereiftes Framework angesehen und ist bei Java EE-Programmierern sehr beliebt. Auf der anderen Seite wird das Struts-Framework jetzt als veraltet angesehen.