Jakarta Struts

4,528 views
4,408 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,528
On SlideShare
0
From Embeds
0
Number of Embeds
52
Actions
Shares
0
Downloads
219
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Jakarta Struts

  1. 1. Jakarta Struts Jacopo Giudici [email_address]
  2. 2. Obbiettivi <ul><li>Questa parte del corso introdurrà lo struts framework. Si imparerà con queste slide a sviluppare semplici applicazioni Web robuste e basate sul paradigma MVC (Model-View-Controller) utilizzando il Jakarta struts framework. </li></ul>
  3. 3. Cosa è struts? <ul><li>Struts è l’implementazione del pattern Model-View-Controller (MVC) per le JSP. struts è parte dell’Apache Jakarta project ed è open source. Lo struts framework è creato per applicazioni di qualsiasi dimensione. </li></ul><ul><li>Struts si trova all’indirizzo Web </li></ul><ul><li>http://struts.apache.org </li></ul>
  4. 4. MVC Pattern MODELLO incapsula lo stato della applicazione risponde alle richieste della VISTA CONTROLLER mappa le richieste dell'utente in azioni da effetuare sul modello seleziona una vista in base alle richieste dell'utente e all'esito della azione sul modello VISTA invia al controller le richieste dell'utente gestisce la presentazione del modello all'utente seleziona una vista richiesta utente modifica lo stato interroga il modello
  5. 5. Vantaggi nell’utilizzo di MVC <ul><li>L'utilizzo del pattern MVC offre molteplici vantaggi tra i quali una separazione tra i livelli di presentazione e di transazione; ció permette di cambiare il look and feel di un'applicazione senza ricompilare il codice del Modello o del Controller. </li></ul><ul><li>In secondo luogo il tempo di sviluppo puó essere significativamente ridotto, perché i programmatori possono pensare alle transazioni, mentre i View programmers (HTML e JSP) si concentrano sull'interfaccia. </li></ul><ul><li>L'ultimo beneficio è la separazione della logica di presentazione da quella di business che rende più facile mantenere e modificare un'applicazione Web struts-based. </li></ul>
  6. 6. Il funzionamento di struts JSP struts-config .xml Action Servlet Action Mapping Action Form Action Action Forward Business Objects JSP 1 2 3 4 4 4 5 6 7 7
  7. 7. Spiegazione (I) <ul><li>Il Client invia una richiesta http; </li></ul><ul><li>La richiesta viene ricevuta dalla servlet di struts, che provvede a popolare l'ActionForm associato alla richiesta con i dati della request; </li></ul><ul><li>Viene popolato l'ActionMapping associato alla richiesta. Tutti i dati sono stati letti dal file struts-config.xml in fase di start up. </li></ul>
  8. 8. Spiegazione (II) <ul><li>L' ActionServlet delega l'elaborazione dati alla relativa Action passandole in input request e response http, l'ActionForm e l'ActionMapping precedentemente valorizzati. </li></ul><ul><li>La Action si interfaccia con lo strato di business object. </li></ul><ul><li>Al termine dell'elaborazione la Action restituisce alla ActionServlet un ActionForward contenente il path della vista da fornire all'utente. </li></ul><ul><li>La Action esegue il forward alla vista specifica nell'ActionForward e la ActionServlet resituisce il controllo all’utente. </li></ul>
  9. 9. QUINDI… <ul><li>In struts, il modello è costituito da un database e dalle relative classi di interfaccia </li></ul><ul><li>La vista è costituita da pagine JSP (potrebbero essere HTML ma senza la possibilità di usare i custom-tags) </li></ul><ul><li>Il controllore è struts stesso che funziona tramite la ActionServlet e viene configurato da XML. </li></ul>
  10. 10. Prima applicazione <ul><li>Installare il JDK </li></ul><ul><li>Installare Tomcat, JBoss, … </li></ul><ul><li>Scaricare struts dal sito </li></ul><ul><li>http://struts.apache.org </li></ul><ul><li>Decomprimere il file .zip in una cartella </li></ul><ul><li>Eseguire il deploy dell’applicazione struts-blank.war </li></ul>
  11. 11. I componenti di struts (I) <ul><li>Struts, come ogni application framework, è un insieme di classi e interfacce che costituiscono lo scheletro per costruire le nostre Web application. I componenti base su cui si appoggia sono: </li></ul><ul><li>ActionServlet : È la servlet di controllo che gestisce tutte le richieste dell'applicazione. Come tutte le servlet estende la classe javax.servlet.http.HttppServlet e che quindi implementa tutti i metodi di lifecycle, incluso init(), doGet(), doPost() ed il destroy. </li></ul><ul><li>struts-config.xml : È il cuore di tutta l'applicazione. In tale file XML si vanno a settare ed a definire i vari elementi della nostra applicazione e le loro associazioni. Tale file viene letto in fase di start-up dell'applicazione dalla ActionServlet. </li></ul>
  12. 12. I componenti di struts (II) <ul><li>Action : Le Action sono le classi alle quali le ActionServlet delegal'elaborazione della richiesta. </li></ul><ul><li>ActionMapping : Contiene gli oggetti associati ad una Action nello struts-config come ad esempio gli ActionForward. </li></ul><ul><li>ActionForm : Sono considerati dei veri contenitori di dati. Fanno riferimento ad uno specifico form e vengono popolati automaticamente dal framework con i dati contenuti nella request http. </li></ul><ul><li>ActionForward : Contengono i path ai quali la servlet di struts inoltra il flusso in base alla logica dell'applicazione. </li></ul><ul><li>Custom-tags : Sono tag particolari forniti dal framework struts per assolvere a molti dei più comuni compiti delle pagine JSP. </li></ul>
  13. 13. L’applicazione blank <ul><li>Una volta rinominato e copiato il file struts-blank-1.x.x.war nella cartella webapps , tomcat ne eseguirà automaticamente il deployment </li></ul><ul><li>Verrà creata una cartella con il nome dato al file .war (Web ARchive) </li></ul><ul><li>La pagina principale dell’applicazione è la seguente: </li></ul>
  14. 14. Pagina index di struts-blank
  15. 15. Componenti dell’applicazione blank <ul><li>I componenti principali dell’applicazione struts-blank sono: </li></ul><ul><li>il file WEB-INF/web.xml </li></ul><ul><li>il file WEB-INF/struts-config.xml </li></ul><ul><li>i file .jsp ( index.jsp, pages/Welcome.jsp ) </li></ul><ul><li>il file WEB-INF/classes/message.properties </li></ul><ul><li>le api di struts (in WEB-INF/lib ) </li></ul>
  16. 16. File WEB-INF/web.xml <ul><li>È un file web.xml standard </li></ul><ul><li>Definisce come configurazione di struts il file /WEB-INF/struts-config.xml </li></ul><ul><li>Dice di passare alla servlet org.apache.struts.action.ActionServlet </li></ul><ul><li>tutti i file che abbiano estensione .do </li></ul><ul><li>Definisce come file di partenza index.jsp </li></ul>
  17. 17. WEB-INF/struts-config.xml <ul><li>È il file di configurazione della servlet org.apache.struts.action.ActionServlet </li></ul><ul><li>Definisce il comportamento delle varie applicazioni struts, ad es: </li></ul><ul><li><forward name=&quot;welcome&quot; path=&quot;/Welcome.do&quot;/> </li></ul><ul><li>Definisce il comportamento delle azioni: </li></ul><ul><li><action path=&quot;/Welcome“ forward=&quot;/pages/Welcome.jsp&quot;/> </li></ul>
  18. 18. index.jsp e pages/Welcome.jsp <ul><li>Il file index.jsp utilizza una tag library per struts. </li></ul><ul><li>Il file Welcome.jsp utilizza le tre tag library principali di struts: </li></ul><ul><ul><li><%@ taglib uri = &quot;http://struts.apache.org/tags-bean&quot; prefix = &quot;bean&quot; %> </li></ul></ul><ul><ul><li><%@ taglib uri = &quot;http://struts.apache.org/tags-html&quot; prefix = &quot;html&quot; %> </li></ul></ul><ul><ul><li><%@ taglib uri = &quot;http://struts.apache.org/tags-logic&quot; prefix = &quot;logic&quot; %> </li></ul></ul><ul><li>Usa dei costrutti particolari per recuperare delle stringhe di testo: </li></ul><ul><ul><li>< bean:message key = &quot;welcome.title&quot; /> </li></ul></ul>

×