Fichier web.xml

Le fichier web.xml fournit des informations de configuration et de déploiement pour les composants d'une application Web.

La spécification Java™ Servlet définit le fichier de descripteur de déploiement web.xml en termes de document de schéma XML. Pour des raisons de compatibilité avec les versions antérieures, tout fichier web.xml écrit sur le servlet 2.2 ou version ultérieure qui fonctionnait dans les versions précédentes de WebSphere® Application Server est pris en charge par le conteneur Web.

Si vous utilisez Rational® Application Developer version 6 pour créer vos portlets, vous devez supprimer la référence suivante à std-portlet.tld du fichier web.xml :
<taglib id="PortletTLD">
  <taglib-uri>http://java.sun.com/portlet</taglib-uri>
  <taglib-location>/WEB-INF/tld/std-portlet.tld</taglib-location>
</taglib>

Emplacement

Le fichier web.xml doit résider dans leWEB-INFdans le contexte de la hiérarchie des répertoires qui existent pour une application Web.

[z/OS]Par exemple, si l'application est client.war, le fichier web.xml est placé dans le répertoire racine_install/client war/WEB-INF:NONE.

Notes d'utilisation

  • Ce fichier est-il en lecture seule ?

    Non

  • Ce fichier est-il mis à jour par un composant produit ?

    Ce fichier est mis à jour par l'outil d'assemblage.

  • Auquel cas, qu'est-ce qui déclenche sa mise à jour ?

    L'outil d'assemblage met à jour le fichier web.xml lors de l'assemblage des composants Web dans un module Web, ou lorsque vous modifiez les propriétés des composants Web ou du module Web.

  • Comment et quand le contenu de ce fichier est-il utilisé ?

    Les fonctions WebSphere Application Server utilisent les informations de ce fichier lors des phases de configuration et de déploiement du développement d'applications Web.

Configurations prises en charge: Le fichier web.xml ne représente pas la totalité de la configuration disponible pour l'application Web. D'autres filtres de servlet et écouteurs peuvent être définis à l'aide de configurations programmées, d'annotations et de fragments Web.
Eviter les problèmes: Le marquage des métadonnées de l'application Web comme étant terminées empêchera les annotations et les fragments Web de pouvoir configurer des composants.

Exemple de fichier

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	<display-name>Servlet 3.0 application</display-name>
	<filter>
    <filter-name>ServletMappedDoFilter_Filter</filter-name>
    <filter-class>tests.Filter.DoFilter_Filter</filter-class>
    <init-param>
      <param-name>attribute</param-name>
      <param-value>tests.Filter.DoFilter_Filter.SERVLET_MAPPED</param-value>
    </init-param>
  </filter>
	<filter-mapping>
		<filter-name>ServletMappedDoFilter_Filter</filter-name>
		<url-pattern>/DoFilterTest</url-pattern>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>
	<filter-mapping>
		<filter-name>ServletMappedDoFilter_Filter</filter-name>
		<url-pattern>/IncludedServlet</url-pattern>
		<dispatcher>INCLUDE</dispatcher>
	</filter-mapping>
	<filter-mapping>
		<filter-name>ServletMappedDoFilter_Filter</filter-name>
		<url-pattern>ForwardedServlet</url-pattern>
		<dispatcher>FORWARD</dispatcher>
	</filter-mapping>
	<listener>
		<listener-class>tests.ContextListener</listener-class>
	</listener>
	<listener>
		<listener-class>tests.ServletRequestListener.RequestListener</listener-class>
	</listener>
	<servlet>
		<servlet-name>welcome</servlet-name>
		<servlet-class>WelcomeServlet</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>ServletErrorPage</servlet-name>
		<servlet-class>tests.Error.ServletErrorPage</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>IncludedServlet</servlet-name>
		<servlet-class>tests.Filter.IncludedServlet</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>ForwardedServlet</servlet-name>
		<servlet-class>tests.Filter.ForwardedServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>welcome</servlet-name>
		<url-pattern>/hello.welcome</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>ServletErrorPage</servlet-name>
		<url-pattern>/ServletErrorPage</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>IncludedServlet</servlet-name>
		<url-pattern>/IncludedServlet</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>ForwardedServlet</servlet-name>
		<url-pattern>/ForwardedServlet</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>hello.welcome</welcome-file>
	</welcome-file-list>
	<error-page>
		<exception-type>java.lang.ArrayIndexOutOfBoundsException</exception-type>
		<location>/ServletErrorPage</location>
	</error-page>
  <error-page>
	  <error-code>404</error-code>
	  <location>/error404.html</location>
  </error-page>
</web-app>
Meilleures pratiques: pour chaque<error-page>déclaration, sélectionnez l'une des deux<exception-type>ou<error-code>, mais pas les deux. :NONE.<location>est obligatoire.