Struts vs Struts2
Struts (noto anche come Apache Struts o Struts 1) è un framework open source multipiattaforma scritto in Java, destinato allo sviluppo di applicazioni Web Java EE. Era uno dei primi framework di applicazioni web Java EE. Ma pochi anni dopo, è arrivato Struts2 (o Struts versione 2) ed era un framework per applicazioni Web completamente diverso e altamente migliorato. Aveva affrontato alcuni problemi che erano percepiti come carenze nella versione iniziale. Ora, Struts2 viene utilizzato molto pesantemente per lo sviluppo di applicazioni Java EE nel mondo.
Cos'è Struts?
Il framework Struts (Struts 1) è stato uno dei framework di applicazioni Web iniziali per lo sviluppo di applicazioni Web Java EE. Il framework Struts incoraggia l'utilizzo dell'architettura MVC (Model-View-Controller). È un'estensione dell'API Java Servlet. Craig McClanahan è il creatore originale di Struts. Inizialmente era noto come Jakaratha Struts ed è stato mantenuto nell'ambito del progetto Jakarta della Apache Software Foundation. È rilasciato con licenza Apache 2.0. Il framework Struts è chiamato framework basato su richiesta ed è composto da tre componenti principali: un gestore delle richieste, un gestore delle risposte e una libreria di tag. L'URI standard (Uniform Resource Identifier) è mappato a un gestore di richieste. Il gestore della risposta è responsabile del trasferimento del controllo. Per creare applicazioni interattive con moduli, è possibile utilizzare le funzionalità offerte dalla libreria di tag. Struts supportano applicazioni REST e varie tecnologie come SOAP, AJAX, ecc.
Cos'è Struts2?
Il framework Struts è stato percepito dagli sviluppatori Java EE come contenesse alcune limitazioni (principalmente la mancanza di separazione tra il livello di presentazione, il livello di gestione delle richieste e il modello) e di conseguenza pochi anni dopo è arrivato Struts2. In re altà, Struts2 era completamente diverso da Struts. In effetti, non condividevano nemmeno la stessa base di codice perché Struts2 era semplicemente il risultato della ridenominazione del framework WebWork 2.2 (cioè le comunità WebWork e Struts che hanno lavorato separatamente per qualche tempo alla fine si sono unite per creare Struts2). La sua attuale versione stabile è la versione 2.2.3, rilasciata a maggio 2011.
Qual è la differenza tra Struts e Struts2?
Uno dei tanti problemi del framework Struts era la necessità di programmare per astrarre classi anziché interfacce. Questo è stato risolto dal framework Struts2. Ad esempio, il framework Struts richiedeva che le classi Action venissero estese dalle classi base astratte, ma Struts2 Actions può implementare un'interfaccia Action. A causa delle differenze nel modello di threading tra le due versioni, i problemi di sicurezza dei thread emersi nel framework Struts per quanto riguarda gli oggetti Action non si verificano nel framework Struts2. Il motivo è che gli oggetti Action di Struts2 vengono istanziati per ogni richiesta, mentre un framework Action in Struts ha solo un'istanza per gestire tutte le richieste per quell'azione. A differenza del framework Actions in Struts, le Actions Struts2 non dipendono dall'API Servlet.
La verificabilità del framework Struts2 è relativamente superiore al framework Struts. Puoi testare le azioni Struts2 semplicemente seguendo i tre passaggi: creazione di un'istanza, impostazione delle proprietà e chiamata dei metodi. La raccolta dell'input è più semplice nel framework Struts2 poiché le proprietà Action vengono utilizzate come proprietà di input, senza dover mantenere un secondo oggetto di input. Oltre al supporto per l'integrazione JSTL (che è presente in Struts), il framework Struts2 può utilizzare OGNL (Object Graph Notation Language) più potente ed espressivo. Per la conversione del tipo, Strut e Strut2 utilizzano rispettivamente Commons-Beanutils e OGNL. A causa di questi miglioramenti, il framework Struts2 è considerato un framework altamente maturo ed è molto popolare tra i programmatori Java EE. D' altra parte, il framework Struts è ora considerato obsoleto.