30 JSP Web Training
Principes de fonctionnement des servlets
Une servlet, (prononcez servlette) tout comme une applet (prononcez
applette), est un programme écrit en langage Java. Une applet est un
programme qui s'exécute sur la machine du client (le visiteur) après
avoir été rapatriée (téléchargée) depuis le site du serveur ; l'exécution
est réalisée sous le contrôle de la machine virtuelle JVM (Java Virtual
Machine) intégrée au navigateur. Une applet ne comporte pas obligatoi-
rement de partie visuelle, mais presque toutes en ont une. La taille n'est
pas limitée mais, dans la pratique, les applets restent de taille réduite
pour ne pas entraîner des temps de téléchargement inacceptables pour
le visiteur. En revanche, une servlet n'est jamais téléchargée ; elle réside
et est exécutée sur le serveur. Vous pouvez considérer les servlets com-
me une infrastructure pour les applications Web se servant de Java. Une
servlet a accès à toutes les fonctions des interfaces de programmation
API de Java ; elle est donc indépendante de la plate-forme d'exécution
et peut aisément servir à enrichir les capacités fonctionnelles de la plu-
part des logiciels serveurs Web.
Une servlet se distingue d'une application Java classique de par ses ca-
pacités à gérer les requêtes HTTP. Une telle requête est émise par le na-
vigateur du client suite au clic d'un lien hypertexte, à l'envoi d'un
formulaire, ou encore à la saisie d'une adresse URL dans un champ ap-
proprié.
Pour d'autres détails au sujet de HTTP, voyez le
Chapitre 19.
Lorsqu'un serveur Web reçoit une requête HTTP, il analyse la chaîne
d'adresse URL demandée pour savoir quel type de page a été demandé
par le navigateur. Si le navigateur a demandé une servlet, le serveur Web
transmet la requête au conteneur de servlets. Le programme conteneur
gère la création, l'utilisation et la destruction des servlets, soit le cycle
de vie de ces servlets. Le conteneur de servlets que nous allons utiliser
tout au long de ce livre est Tomcat (installé lors du Chapitre 2).
Pour chaque demande d'exécution d'une servlet via une requête HTTP,
le conteneur charge la servlet en mémoire et crée un objet instance à
partir de la classe nommée Servlet. Le conteneur n'a plus ensuite qu'à