Important :
L'ordre des éléments dans <servlet> est important.
-
<servlet-name>
L'élément <servlet-name> définit un nom logique pour la servlet.
Ce nom peut être utilisé par les requêtes http par exemple; le conteneur Web va charger la classe de la servlet associée à ce nom.
Notes :
- Le nom doit être unique pour l'application web (fichier web.xml).
- Le nom peut être différent du nom de la classe Java.
Note:
La méthode getServletName()
,
définie dans l'interface ServletConfig
et implémentée dans GenericServlet
,
donne la valeur de cet élément (MyServlet1Name1).
-
<servlet-class>
L'élément <servlet-class> définit le nom complet (y compris le nom du package) d'une classe servlet.
Notes:
- les parties du nom du package doivent être séparés par des points (com.mtitek.servlets.test1.
).
- le nom de la classe ne doit pas avoir l'extension .class
.
Comme montré dans l'exemple ci-dessus, la valeur de l'élément <servlet-class> n'a pas besoin d'être unique ;
la classe "com.mtitek.servlets.test1.MyServlet1" a deux noms différents (MyServlet1Name1 & MyServlet1Name2).
Ceci est important quand on a besoin de :
- forcer le conteneur Web à exécuter une instance séparée de la servlet
(sinon le conteneur Web peut décider d'utiliser la même instance de la servlet (recyclage) pour traiter différentes requêtes qui ciblent le même nom logique d'une servlet).
- fournir des paramètres d'initialisation différents à une servlet.
La méthode getServletName()
peut être utilisée pour savoir quelle instance est en cours d'exécution.
Note: La classe doit étendre HttpServlet
(ou GenericServlet
) sinon vous obtiendrez une erreur lorsque le conteneur Web essaiera d'exécuter la classe :