Applets et Servlets, deux modèles d'interaction client/serveur

Présentant chacun leurs avantages et inconvénients, ils s'exécutent respectivement côté client et côté serveur. Moins lourds qu'un langage de script, ces composants bénéficient de la richesse et de la portabilité de Java.

Une applet est une application Java côté client. C'est un petit programme s'exécutant dans un navigateur, sous forme d'objet graphique au sein des pages Web. En Java, les composants graphiques sont gérés avec la librairie graphique AWT. Mais une applet est aussi un environnement très orienté réseau car elle est téléchargée depuis un serveur Web.


L'applet apparaît dans le document HTML au sein des balises <Applet>. Elle renvoie à un objet qui hérite de la classe Applet.

 Elle s'exécute dans un conteneur, un programme chargé d'invoquer les méthodes de cette classe. Par exemple, une applet pourra hériter d'une classe représentant un point sur une courbe, défini par les attributs x et y,deux méthodes exécutées dans son conteneur retournant la valeur de ces deux attributs.

 

L'applet peut être testée par un navigateur supportant Java ou par le viewer Java, un programme faisant partie du SDK de Sun conçu pour exécuter l'applet dans une frame (fenêtre). Une applet peut agir sur son conteneur et appeler ses méthodes. Le navigateur servant de conteneur pour l'applet, cette dernière peut effectuer des actions sur le navigateur. En cas d'utilisation de plusieurs applets dans un même document HTML, il est possible de les faire communiquer entre elles. 

 

Une applet mal contrôlée est dangereuse pour le système


Une applet peut être très dangereuse car elle se téléchargeable à partir d'un serveur Web. Elle se positionne dans un rectangle défini du document HTML et peut être invisible si ses valeurs sont à 0, mais elle s'exécutera quand même. Pour éviter tout problème, les conteneurs d'applets des navigateurs présentent donc des options de restriction. C'est pour cela que l'applet s'appelle aussi "bac à sable", car ses fonctionnalités sont limitées au divertissement visuel. Ces restrictions peuvent être assouplies en utilisant la certification des applets. Mais l'acceptation d'une applet certifiée dépend du niveau de confiance attribué à l'auteur du certificat.


Applets, servlets et protocole HTTP sont suffisants pour créer un site Web dynamique

Une servlet est une application Java côté serveur. Les servlets gèrent les données dynamiquement. Elles reçoivent des requêtes HTTP et retournent une réponse HTTP. Elles peuvent être utilisées pour créer des sites Web dynamiques. Ecrites en Java, les servlets sont indépendantes de la plate-forme et du serveur Web où elles s'exécutent.


Les servlets peuvent aussi être utilisées pour ajouter des fonctionnalités côté serveur. Les servlets s'exécutent dans un conteneur de servlets, qui fait le lien entre les servlets et le serveur Web. Les servlets sont chargées automatiquement au démarrage du serveur ou lors de la première connexion du client, elles restent ensuite en mémoire (elles sont actives) et gèrent les demandes grâce au mécanisme des threads. A l'inverse, un langage de script crée un nouveau processus à chaque requête HTTP, son exécution est donc plus lourde pour le processeur et prend plus de place en mémoire.

 

Une servlet nécessite un conteneur de servlets pour fonctionner


Pour utiliser une servlet, il faut donc d'abord installer un conteneur de servlets sur le serveur Web, qui va gérer le cycle de vie de la servlet. Il va accéder aux méthodes nécessaires à l'appel, l'exécution et la suppression de la servlet. Il existe des serveurs Web qui intègrent un support de servlets. Comme exemples de conteneur de servlets intégrés, on peut citer Tomcat d'Apache, Web Service Entreprise Edition de iPlanet (Netscape), Website, Zeus Web Server, Java Web Server de Sun ou encore Weblogic.


Il existe des conteneurs de servlets additionnels qui fonctionnent comme des plug-in à installer sur le serveur, comme par exemple Jrun d'Allaire. Tomcat peut être utilisé uniquement comme conteneur de servlets, et ainsi être connecté à d'autres serveurs Web. Enfin, des conteneurs de servlets peuvent être embarqués dans une autre application, cette dernière agissant alors comme un serveur.


L'avantage des applets et des servlets se situe dans leur caractère réutilisable par la création de composants encapsulants des services, afin d'être exploitables dans d'autres applications. De plus, comme ce sont des applications Java, elles peuvent accéder à toutes les API Java.

Serveurs / Script