Struts vs Struts2
A Struts (más néven Apache Struts vagy Struts 1) egy platformközi, nyílt forráskódú keret, Java nyelven írva, amely a Java EE webes alkalmazások fejlesztésére szolgál. Ez volt az egyik eredeti Java EE webes alkalmazási keret. Néhány évvel később megérkezett a Struts2 (vagy a Struts 2-es verzió), és ez egy teljesen más és nagymértékben továbbfejlesztett webalkalmazási keret volt. Néhány olyan kérdéssel foglalkozott, amelyeket az eredeti változat hiányosságainak tekintett. Most a Struts2-t nagyon erősen használják a Java EE alkalmazások fejlesztésére a világon.
Mi az a Struts??
A Struts (Struts 1) keret volt a Java EE webes alkalmazások fejlesztésének egyik kezdeti webalkalmazási kerete. A Struts keret ösztönzi az MVC (Model-View-Controller) architektúra használatát. Ez a Java Servlet API kiterjesztése. Craig McClanahan a Struts eredeti alkotója. Kezdetben Jakaratha Struts néven ismerték, és az Apache Software Foundation Jakarta Projektje alatt tartották fenn. Az Apache License 2.0 alatt kerül kiadásra. A Struts keretrendszert kérési alapú keretnek nevezik, és három fő összetevőből áll: kéréskezelő, válaszkezelő és címkekönyvtár. A szabványos URI-t (egységes erőforrás-azonosító) leképezik egy kéréskezelőhöz. A válaszkezelő felel az irányítás átadásáért. Az űrlapokkal interaktív alkalmazások létrehozásához a címkekönyvtár által kínált szolgáltatások felhasználhatók. A támaszok támogatják a REST alkalmazásokat és a különböző technológiákat, mint például a SOAP, AJAX stb.
Mi az a Struts2??
A Struts-keretrendszer a Java EE fejlesztõi akkoriban bizonyos korlátozásokat (elsõsorban a bemutatási réteg, a kérelemkezelõ réteg és a modell közötti elválasztás hiányát) tartalmaztak, következésképpen néhány évvel késõbb a Struts2 érkezett. Valójában a Struts2 teljesen különbözött a Struts-tól. Valójában még nem osztották meg ugyanazt a kódbázist, mert a Struts2 egyszerűen a WebWork 2.2 keretrendszer átnevezésének eredménye (azaz a WebWork és a Struts közösségek, akik egy ideig külön dolgoztak, végül összefogtak, hogy feljussanak a Struts2-hez). Jelenlegi stabil kiadása a 2.2.3 verzió, amelyet 2011 májusában adtak ki.
Mi a különbség a Struts és az Struts2 között??
A Struts keretrendszer számos problémája az volt, hogy interfészek helyett absztrakciós osztályokra kellett programozni. Ezt a Struts2 keretrendszer oldotta meg. Például a Struts keretrendszerben az Action osztályokat ki kellett terjeszteni az absztrakt alaposztályoktól, de a Struts2 Actions végrehajthat egy Action felületet. A menetváltó modell eltérései miatt a két verzió között a szálbiztonsági kérdések, amelyek a Struts keretén belül felmerültek az Action objektumokkal kapcsolatban, nem fordulnak elő a Struts2 keretben. Ennek oka a Struts2. A műveletobjektumokat minden kéréshez pillanatképessé teszik, míg a Művelet a strutokban keretrendszernek csak egy példánya van az adott művelet összes kérésének kezelésére. Az Actions in Struts keretrendszerrel ellentétben a Struts2 műveletek nem függnek a Servlet API-tól.
Az Struts2 keret tesztelhetősége viszonylag magasabb, mint a Struts keret. A Struts2 műveleteket kipróbálhatja, egyszerűen a következő három lépésben: megvalósítás, tulajdonságok beállítása és módszerek meghívása. A bemenet összegyűjtése könnyebb a Struts2 keretben, mivel a műveleti tulajdonságokat bemeneti tulajdonságokként használják anélkül, hogy második bemeneti objektumot kellene megtartani. A JSTL-integráció támogatása mellett (amely jelen van a Struts-ban) az Struts2-keretrendszer hatékonyabb és kifejezőbb OGNL-t (Object Graph Notation Language) is használhat. A típuskonverzióhoz az Strut és az Strut2 a Commons-Beanutils és OGNL értékeket használja. Ezen fejlesztések miatt a Struts2 keretrendszert nagyon érett keretnek tekintik, és a Java EE programozók körében nagyon népszerű. Másrészt a Struts keretét elavultnak tekintik.