Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Il deployment descriptor per Struts

Come impostare il file web.xml in una applicazione Struts
Come impostare il file web.xml in una applicazione Struts
Link copiato negli appunti

Il web.xml è il descrittore di deploy usato per configurare qualsiasi Web application sviluppata con tecnologia J2EE, quindi anche un'applicazione Struts avrà il suo descrittore. In più, per la configurazione di una applicazione Struts, abbiamo bisogno di un secondo file, parimenti importante: lo struts-config.xml.

In questa lezione però analizziamo i passi necessari a scrivere un web.xml per Struts, mentre approfondiremo lo struts-config.xml nella prossima lezione.

Il file web.xml contiene le informazioni di configurazione necessarie all'application server, per caricare i componenti necessari all'avvio dell'applicazione.

Questo file serve infatti a descrivere tutti i componenti dell'applicazione Web, contiene informazioni come:

  • Parametri ed inizializzazione ServletContext
  • Contenuto localizzato
  • Configurazione della sessione
  • Definizione Servlet/JSP
  • Mapping Servlet/JSP
  • Riferimenti a tag library
  • Mappature a tipi MIME
  • Lista di file di Welcome
  • Pagine di errore
  • Informazioni sulla sicurezza

Se lo apriamo con un tool come Eclipse, riusciamo ad esaminarne meglio le aree principali:

Figura 5. Web.xml su Eclipse
Web.xml su Eclipse

Una curiosità interessante: Eclipse mette in verdino, vicino ad ogni tag, i tag children previsti dal suo XML Schema.

Sebbene oggi gli ambienti di sviluppo provvedano alla compilazione automatica di questo file, è sempre bene conoscerne la struttura. Perciò possiamo provare a creare un file web.xml per la nostra applicazione, a partire da uno vuoto:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web app_2_3.dtd">
<web-app>
</web-app>

Configurare la ActionServlet

Il primo passo, uno dei più importanti, consiste nel configurare la ActionServlet che si occuperà di ricevere e smistare tutte le richieste dell'applicazione (il nostro controller). Quindi provvediamo a configurare l'istanza della servlet nel seguente modo:

<servlet>
<servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
</servlet>

È importante notare che abbiamo associato alla servlet il file di configurazione (struts-config.xml), che, in questo modo, sarà caricato all'avvio dell'applicazione.

Il mapping delle servlet

Il passo successivo, necessario a configurare la servlet controller di Struts nel web.xml, lo compiamo scrivendo il "mapping delle servlet". Utilizziamo l'elemento <servlet-mapping> nel seguente modo:

<servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

In altre parole abbiamo detto all'application server di girare tutte le richieste che hanno il suffisso .do, alla servlet ActionServlet.

La taglib

Struts mette a disposizione dei tag JSP e per utilizzarli dobbiamo dichiarane l'uso all'avvio dell'applicazione. Per farlo elenchiamo le librerie di tag nel web.xml, grazie all'elemento <taglib>:

<taglib>
  <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

In questo caso abbiamo dichiarato la libreria struts-html ma come vedremo più avanti non è l'unica messa a disposizione da Struts.

Pagina di benvenuto ed errori

Infine nel deployment descriptor, anche se non vale per le applicazioni che usano Struts, può essere gestita la pagina di benvenuto dell'applicazione:

<welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

e gli errori HTTP, inserendo i relativi codici (404, 500, etc.):

<error-page>
  <error-code>404.jsp</error-code>
  <location>404.jsp</location>
</error-page>

Per effettuare prove o verifiche è ecco un esempio completo di web.xml per un'applicazione Struts.

Ti consigliamo anche