Les servlets (on dit généralement une servlet) sont au serveur Web ce que les applets sont au navigateur pour le client. Les
servlets sont donc des applications Java fonctionnant du côté serveur au
même titre que les CGI et les langages de
script côté serveur tels que ASP ou bien
PHP. Les servlets permettent donc de gérer des requêtes HTTP
et de fournir au client une réponse HTTP dynamique
(donc de créer des pages web dynamiques).
Les servlets ont de nombreux avantages par rapport aux autres technologies côté serveur.
Tout d'abord, étant donné qu'il s'agit d'une technologie Java, les servlets fournissent
un moyen d'améliorer les serveurs web sur n'importe quelle plateforme, d'autant plus que
les servlets sont indépendantes du serveur web (contrairement aux modules apache ou à
l'API Netscape Server). En effet, les servlets s'exécutent dans un moteur de servlet
utilisé pour établir le lien entre
la servlet et le serveur web.
Ainsi le programmeur n'a pas à se soucier de détails techniques
tels que la connexion au réseau, la mise en forme de la réponse HTTP, ...
On appelle conteneur de servlet une classe permettant de manipuler la servlet.
D'autre part les servlets sont beaucoup plus performantes que les scripts, car il s'agit de pseudo-code,
chargé automatiquement lors du démarrage du serveur ou bien lors de la connexion du premier client.
Les servlets sont donc actives (résidentes en mémoire) et prêtes à traiter les demandes des clients grâce
à des threads, tandis qu'avec les langages de script traditionnels un nouveau processus est créé pour chaque requête HTTP.
Cela permet donc une charge moins importante au niveau du processeur du serveur (d'autant plus qu'un système de cache
peut permettre de stocker les calculs déjà accomplis), ainsi que de prendre une place moins importante en mémoire.
L'un des principaux atouts des servlets est la réusabilité (réutilisation), permettant de créer des composants
encapsulant des services similaires, afin de pouvoir les réutiliser dans des applications futures.
Enfin une servlet étant une application Java, peut utiliser toutes les API Java afin de communiquer avec des applications
extérieures, se connecter à des bases de données, accèder aux entrée-sorties (fichiers par exemple), ...
|