View
7.256
Download
3
Category
Preview:
DESCRIPTION
Citation preview
Jakarta StrutsJacopo Giudici
jacopo@ubitek.org
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.
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
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
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.
Il funzionamento di struts
JSP struts-config.xml
ActionServlet
ActionMapping
ActionForm
Action
ActionForward
BusinessObjects
JSP
1
2
3
4
4
45
6
77
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.
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.
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.
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
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.
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.
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:
Pagina index di struts-blank
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)
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
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"/>
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"/>
Recommended