Struts vs Struts2
Struts (známé také jako Apache Struts nebo Struts 1) je platforma open source napříč platformami napsaná v Javě, která je určena pro vývoj webových aplikací Java EE. Byl to jeden z počátečních rámců webových aplikací Java EE. Ale o několik let později dorazila Struts2 (nebo Struts verze 2) a šlo o zcela odlišný a vysoce vylepšený rámec webových aplikací. Zabývalo se několika otázkami, které byly v původní verzi vnímány jako nedostatky. Nyní je Struts2 velmi používán pro vývoj aplikací Java EE ve světě.
Co je Struts?
Struts (Struts 1) framework byl jedním z počátečních webových aplikačních rámců pro vývoj webových aplikací Java EE. Rámec Struts podporuje použití architektury MVC (Model-View-Controller). Jedná se o rozšíření Java Servlet API. Craig McClanahan je původním tvůrcem Struts. Zpočátku to bylo známé jako Jakaratha Struts a byl udržován v rámci Jakarta Project of Apache Software Foundation. Je vydán pod licencí Apache License 2.0. Rámec Struts se nazývá rámec založený na žádostech a skládá se ze tří hlavních komponent: obsluhy požadavků, obsluhy odpovědí a knihovny značek. Standardní identifikátor URI (Uniform Resource Identifier) je mapován do obsluhy požadavků. Obsluha odpovědí je odpovědná za přenos kontroly. Pro vytvoření interaktivních aplikací s formuláři lze využít funkce nabízené knihovnou značek. Vzpěry podporují REST aplikace a různé technologie jako SOAP, AJAX atd.
Co je Struts2?
Rámec Struts byl vnímán tak, aby obsahoval určitá omezení (hlavně chybějící oddělení mezi prezentační vrstvou, vrstvou pro zpracování požadavků a modelem) vývojáři Java EE v té době, a následně o několik let později dorazili Struts2. Ve skutečnosti byl Struts2 úplně odlišný od Struts. Ve skutečnosti dokonce nesdílili stejnou kódovou základnu, protože Struts2 byl jednoduše výsledkem přejmenování rámce WebWork 2.2 (tj. Komunity WebWork a Struts, které nějakou dobu pracovaly samostatně, aby nakonec přišly se Struts2). Jeho aktuální stabilní verze je verze 2.2.3, která byla vydána v květnu 2011.
Jaký je rozdíl mezi Struts a Struts2?
Jedním z mnoha problémů Struts frameworku byla potřeba programování na abstraktní třídy místo rozhraní. Toto bylo vyřešeno Struts2 framework. Například rámec Struts vyžadoval, aby třídy Action byly rozšířeny z abstraktních základních tříd, ale akce Struts2 mohou implementovat rozhraní Action. Kvůli rozdílům v modelu podprocesů mezi dvěma verzemi se problémy s bezpečností vláken, které se objevily v rámci Struts týkající se objektů Action, v rámci Struts2 nevyskytují. Důvodem je, že objekty Action Struts2 Action jsou instance pro každý požadavek, zatímco rámec Action in Struts framework má pouze jednu instanci, která zpracovává všechny požadavky na tuto akci. Na rozdíl od rámce Akce v Struts nejsou akce Struts2 závislé na rozhraní Servlet API.
Testovatelnost Struts2 framework je relativně vyšší než Struts framework. Akce Struts2 můžete vyzkoušet jednoduše podle těchto tří kroků: instance, nastavení vlastností a vyvolání metod. Sběr vstupů je v rámci Struts2 jednodušší, protože vlastnosti Action se používají jako vstupní vlastnosti, aniž by bylo nutné ponechat druhý vstupní objekt. Kromě podpory integrace JSTL (která je přítomna ve Struts), Struts2 framework může používat výkonnější a expresivnější OGNL (Object Graph Notation Language). Pro převod typu Strut a Strut2 použijte Commons-Beanutils a OGNL. Z důvodu těchto vylepšení je rámec Struts2 považován za vysoce vyspělý rámec a mezi programátory Java EE je velmi oblíbený. Na druhé straně rámec Struts je nyní považován za zastaralý.