18
Jakarta Struts Jacopo Giudici [email protected]

Jakarta Struts

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Jakarta Struts

Jakarta StrutsJacopo Giudici

[email protected]

Page 2: Jakarta Struts

ObbiettiviQuesta 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.

Page 3: Jakarta Struts

Cosa è struts?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. Struts si trova all’indirizzo Web http://struts.apache.org

Page 4: Jakarta Struts

MVC PatternMODELLO

incapsula lo stato della applicazione

risponde alle richieste della VISTA

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

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

VISTA

invia al controller le richieste dell'utente

gestisce la presentazione del modello all'utente

seleziona una vista

richiesta utente

modifica lo statointerroga il modello

Page 5: Jakarta Struts

Vantaggi nell’utilizzo di MVC

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.

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.

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.

Page 6: Jakarta Struts

Il funzionamento di struts

JSP struts-config.xml

ActionServlet

ActionMapping

ActionForm

Action

ActionForward

BusinessObjects

JSP

1

2

3

4

4

45

6

77

Page 7: Jakarta Struts

Spiegazione (I)

1) Il Client invia una richiesta http;2) La richiesta viene ricevuta dalla servlet di

struts, che provvede a popolare l'ActionForm associato alla richiesta con i dati della request;

3) Viene popolato l'ActionMapping associato alla richiesta. Tutti i dati sono stati letti dal file struts-config.xml in fase di start up.

Page 8: Jakarta Struts

Spiegazione (II)1) L' ActionServlet delega l'elaborazione dati alla relativa

Action passandole in input request e response http, l'ActionForm e l'ActionMapping precedentemente valorizzati.

2) La Action si interfaccia con lo strato di business object. 3) Al termine dell'elaborazione la Action restituisce alla

ActionServlet un ActionForward contenente il path della vista da fornire all'utente.

4) La Action esegue il forward alla vista specifica nell'ActionForward e la ActionServlet resituisce il controllo all’utente.

Page 9: Jakarta Struts

QUINDI…In struts, il modello è costituito da un

database e dalle relative classi di interfacciaLa vista è costituita da pagine JSP

(potrebbero essere HTML ma senza la possibilità di usare i custom-tags)

Il controllore è struts stesso che funziona tramite la ActionServlet e viene configurato da XML.

Page 10: Jakarta Struts

Prima applicazioneInstallare il JDKInstallare Tomcat, JBoss, …Scaricare struts dal sito

http://struts.apache.org Decomprimere il file .zip in una cartellaEseguire il deploy dell’applicazione struts-

blank.war

Page 11: Jakarta Struts

I componenti di struts (I)

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: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. 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.

Page 12: Jakarta Struts

I componenti di struts (II)Action: Le Action sono le classi alle quali le

ActionServlet delegal'elaborazione della richiesta. ActionMapping: Contiene gli oggetti associati ad una

Action nello struts-config come ad esempio gli ActionForward.

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.

ActionForward: Contengono i path ai quali la servlet di struts inoltra il flusso in base alla logica dell'applicazione.

Custom-tags: Sono tag particolari forniti dal framework struts per assolvere a molti dei più comuni compiti delle pagine JSP.

Page 13: Jakarta Struts

L’applicazione blankUna volta rinominato e copiato il file struts-blank-1.x.x.war nella cartella webapps, tomcat ne eseguirà automaticamente il deployment

Verrà creata una cartella con il nome dato al file .war (Web ARchive)

La pagina principale dell’applicazione è la seguente:

Page 14: Jakarta Struts

Pagina index di struts-blank

Page 15: Jakarta Struts

Componenti dell’applicazione blankI componenti principali dell’applicazione struts-blank sono: il file WEB-INF/web.xml il file WEB-INF/struts-config.xml i file .jsp (index.jsp, pages/Welcome.jsp) il file WEB-INF/classes/message.properties le api di struts (in WEB-INF/lib)

Page 16: Jakarta Struts

File WEB-INF/web.xmlÈ un file web.xml standardDefinisce come configurazione di struts il

file /WEB-INF/struts-config.xmlDice di passare alla servlet org.apache.struts.action.ActionServlet tutti i file che abbiano estensione .do

Definisce come file di partenza index.jsp

Page 17: Jakarta Struts

WEB-INF/struts-config.xml

È il file di configurazione della servlet org.apache.struts.action.ActionServlet

Definisce il comportamento delle varie applicazioni struts, ad es:

<forward name="welcome" path="/Welcome.do"/>

Definisce il comportamento delle azioni:<action path="/Welcome“ forward="/pages/Welcome.jsp"/>

Page 18: Jakarta Struts

index.jsp e pages/Welcome.jspIl file index.jsp utilizza una tag library per struts.Il file Welcome.jsp utilizza le tre tag library principali di

struts:- <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

- <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>

- <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>

●Usa dei costrutti particolari per recuperare delle stringhe di testo:- <bean:message key="welcome.title"/>