Struts vs Struts2
Struts (også kendt som Apache Struts eller Struts 1) er en open source-ramme på tværs af platforme skrevet i Java, som er beregnet til at udvikle Java EE-webapplikationer. Det var et af de oprindelige Java EE-webapplikationsrammer. Men få år senere ankom Struts2 (eller Struts version 2), og det var en helt anden og meget forbedret ramme for webapplikationer. Den havde behandlet få spørgsmål, der blev opfattet som mangler i den oprindelige version. Nu bruges Struts2 meget kraftigt til at udvikle Java EE-applikationer i verden.
Hvad er stivere?
Struts (Struts 1) -ramme var en af de oprindelige rammer for webapplikationer til udvikling af Java EE-webapplikationer. Struts-ramme tilskynder til brug af MVC (Model-View-Controller) -arkitektur. Det er en udvidelse af Java Servlet API. Craig McClanahan er den oprindelige skaber af Struts. Oprindeligt blev det kendt som Jakaratha Struts og blev vedligeholdt under Jakarta Project af Apache Software Foundation. Det frigives under Apache License 2.0. Struts-rammer kaldes en anmodningsbaseret ramme, og den består af tre hovedkomponenter: en anmodningshåndterer, en svarhåndterer og et tagbibliotek. Standard URI (Uniform Resource Identifier) er kortlagt til en anmodningshåndterer. Response handler er ansvarlig for at overføre kontrol. For at oprette interaktive applikationer med formularer kan funktionerne, der tilbydes af tagbiblioteket, bruges. Struts understøtter REST-applikationer og forskellige teknologier som SOAP, AJAX osv.
Hvad er Struts2?
Struts-rammen blev opfattet for at indeholde visse begrænsninger (hovedsagelig manglen på adskillelse mellem præsentationslaget, anmodning om håndteringslag og modellen) af Java EE-udviklere på det tidspunkt, og følgelig ankom der få år senere Struts2. Faktisk var Struts2 helt anderledes end Struts. Faktisk delte de ikke engang den samme kodebase, fordi Struts2 simpelthen var resultatet af at omdøbe WebWork 2.2-rammerne (dvs. WebWork og Struts-samfund, der arbejdede separat i nogen tid, sluttede i sidste ende hænderne på at komme med Struts2). Dens nuværende stabile udgivelse er version 2.2.3, som blev frigivet i maj 2011.
Hvad er forskellen mellem Struts og Struts2?
Et af de mange problemer i Struts-rammerne var behovet for programmering til abstrakte klasser i stedet for grænseflader. Dette blev løst ved hjælp af Struts2-rammerne. For eksempel krævede Struts-rammerne, at handlingsklasser skulle udvides fra de abstrakte baseklasser, men Struts2-handlinger kan implementere en handling-grænseflade. På grund af forskellene i gevindmodellen mellem de to versioner forekommer tråd-sikkerhedsproblemer, der kom op i Struts-rammen vedrørende Handlingsobjekter ikke i Struts2-rammer. Årsagen er, at Struts2-handlingsobjekter er instantieret for hver anmodning, mens en handling i struts-rammen kun har én forekomst til at håndtere alle anmodninger om den handling. I modsætning til Actions in Struts-rammen er Struts2 Actions ikke afhængige af Servlet API.
Testbarhed af Struts2-rammen er relativt højere end Struts-rammen. Du kan teste Struts2-handlinger ved blot at følge de tre trin: instantiering, indstilling af egenskaber og tilkaldelse af metoder. Høsting af input er lettere i Struts2-rammerne, da handlingegenskaber bruges som inputegenskaber uden at skulle beholde et andet inputobjekt. Bortset fra understøttelsen til JSTL-integration (som findes i Struts), kan Struts2-rammer bruge mere kraftfulde og ekspressive OGNL (Object Graph Notation Language). Til typekonvertering bruger Stut og Strut2 henholdsvis Commons-beanutils og OGNL. På grund af disse forbedringer betragtes Struts2-rammerne som en meget moden ramme, og den er meget populær blandt Java EE-programmerere. På den anden side betragtes Struts-rammer nu forældede.