mika-el
3/20/2018 - 3:13 PM

Web XML

  • Le fichier de configuration de routes doit impérativement se nommer web.xml et se situer juste sous le répertoire /WEB-INF de votre application.
  • La mise en place d'une servlet se déroule en deux étapes : nous devons d'abord déclarer la servlet, puis lui faire correspondre une URL.

Déclaration:

  • <servlet-name> permet de donner un nom à une servlet. C'est ensuite via ce nom qu'on fera référence à la servlet en question. Ici, j'ai nommé notre servlet Test.
  • <servlet-class> sert à préciser le chemin de la classe de la servlet dans votre application. Ici, notre classe a bien pour nom Test et se situe bien dans le package com.sdzee.servlets.
  • Trois autres blocs facultatifs:
    • <description> permet de décrire plus amplement le rôle de la servlet. Cette description n'a aucune utilité technique et n'est visible que dans ce fichier.
    • <init-param> permet de préciser des paramètres qui seront accessibles à la servlet lors de son chargement.
    • <load-on-startup> permet de forcer le chargement de la servlet dès le démarrage du serveur.
<servlet>
      <servlet-name>Test</servlet-name>
    <servlet-class>com.sdzee.servlets.Test</servlet-class>
    <description>Ma première servlet de test.</description>
    <init-param>
        <param-name>auteur</param-name> 
        <param-value>Coyote</param-value> 
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>```


Mapping: 
- Il faut ensuite faire correspondre notre servlet fraîchement déclarée à une URL, afin qu'elle soit joignable par les clients.
- Il est tout à fait possible de déclarer plusieurs sections ```<servlet-mapping>``` pour une même section ```<servlet>``` dans le fichier web.xml.
- L' ordre des sections de déclaration au sein du fichier est important : il est impératif de définir une servlet avant de spécifier son mapping.
- La balise responsable de la définition du mapping se nomme logiquement ```<servlet-mapping>```, et les deux balises obligatoires de cette section sont, là encore, très explicites: 
  - ```<servlet-name>``` permet de préciser le nom de la servlet à laquelle faire référence. Cette information doit correspondre avec le nom défini dans la précédente déclaration de la servlet.
  - ```<url-pattern>``` permet de préciser la ou les URL relatives au travers desquelles la servlet sera accessible.