Créé le 28 avril 2004 Modifié le |
Les Servlets Java
Présentation des servlets JavaLa technologie des servlets Java est une technologie introduite par Sun jouant un rôle symétrique à celui des applets, mais côté serveur. Si les applets Java ont pour but d'enrichir les fonctionnalités d'un navigateur client, les servlets permettent d'étendre les fonctionnalités d'un serveur Web. Cette technologie serveur permet de générer des pages Web dynamiques, dont le contenu, issu de programmes d'applications sur le serveur, est adapté aux spécifications et aux requêtes d'utilisateurs particuliers. Tout comme pour les scripts CGI, les servlets Java réalisent la liaison entre des requêtes clientes et des données ou applications liées à un serveur. A quoi ressemble un servlet?Un servlet est un programme écrit en Java. Les différentes instructions du programme vont permettre de générer les données à intégrer dans le code HTML (afin d'être comprise par les navigateurs) et par l'intermédiaire de variables et d'objets, de créer des comportements dynamiques en fonction des actions des utilisateurs. En pratique, un servlet est le plus souvent invoqué par un appel depuis une page HTML. Dans ce cas, les variables sont exécutées, puis remplacées par du HTML pur à la place des balises. Mais il est également possible de générer entièrement une page HTML, uniquement à partir d'un servlet. Ceci n'est bien sûr pas très efficient, puisqu'on ne développe la page que sur base du langage Java, mais cela permet d'éclairer la syntaxe d'un servlet. Le programme génére en sortie un document formaté en HTML:
Fonctionnement des servletsLors de l'appel HTTP d'une page Web, un moteur de servlets reconnaît à l'URL si la page référence un servlet (dans ce cas, ce sera une URL longue). Le moteur de servlets prend alors en charge les servlets et leurs requêtes via des API standard (interface vers d'autres programmes d'application). C'est également le moteur de servlets, nommé container web dans l'architecture distribuée J2EE, qui après avoir récupéré les données dans des applications serveur, les renvoie au serveur HTTP. Les réponses renvoyées doivent être dans un format assimilable par tout navigateur. Ceci implique que le moteur de servlets transforme les réponses obtenues après un traitement dans un programme d'application (un SGBD le plus souvent), dans le format MIME (c'est-à-dire en HTML, en XML, en image GIF ...) et non pas dans le langage Java. Voici pour mieux comprendre le mécanisme, un schéma d'exécution classique d'un servlet (source: www.commentcamarche.net) Quel est l'avantage à utiliser des servlets par rapport à d'autres technologies permettant elles aussi d'accéder à des programmes d'application sur le serveur? L'avantage indéniable des servlets vient de leur capacité à supporter le multi-thread (multi-taches), c'est-à-dire d'accéder à plusieurs applications différentes et d'effectuer plusieurs traitements simultanés depuis un seul processus. De plus, lors de l'invocation d'un servlet, celui-ci est instancié par le serveur et stocké dans un répertoire avec une extension .class. Il y reste jusqu'à l'arrêt du serveur. Cette caractéristique offre des performances et une rapidité largement plus importantes que pour les CGI (pour lesquels, à chaque invocation d'un script, on lance un nouveau processus). Il n'est en effet pas nécessaire ici de relancer systématiquement un nouveau processus pour accéder aux programmes d'applications, le servlet étant chargé initialement et une seule fois lors du premier appel. A chaque requête HTTP, on alloue alors une thread (tâche) particulière au servlet. Une fois la réponse élaborée et transmise au moteur de servlets, la thread est libérée. Par contre, l'instance servlet n'est détruite qu'à la suite de la fermeture du serveur ou suite à un certain délai d'inactivité. Avantages et inconvénients des servletsLes servlets disposent des principaux avantages reconnus aux technologies développées par Sun, à savoir:
Néanmoins, les servlets présentent un inconvénient inhérent au fait qu'il s'agit de programme en langage compilé: l'observation du code d'un servlet montre bien que c'est en fait le code Java qui constitue la page et que le code HTML est contenu à l'intérieur du programme Java. L'intégration avec HTML n'est donc pas optimale. Aujourd'hui, la technologie des JSP (Java Server Page) permet de générer des pages avec des scripts dynamiques très bien intégrés dans HTML, tout en continuant à utiliser la technologie des servlets. Par ailleurs, si les servlets offrent un support très complet pour la gestion multi-tâches des scripts serveur, les très nombreuses API proposées pour accéder aux programmes d'applications sont fortement complexes et nécessitent par conséquent de bonnes connaissances en programmation. Mais est-ce réellement un défaut? :-) Liens utileshttp://java.sun.com/products/servlet/ http://www.commentcamarche.net/servlets/servintro.php3 http://www.infini-fr.com/Sciences/Informatique/Langages/Imperatifs/Java/servletsJsp/servlets.html http://java.developpez.com/cours/servlets/ http://eva.univ-tlse1.fr/berro/cours/igsi/exemple/Exemple.html |
|||
|
|||
|
|||