Architecture d’une Servlet
Architecture d’une Servlet
-
Objectifs
- Connaitre le fonctionnement d’une Servlet
-
Présentation
- L’architecture de servlet repose sur un langage de programmation java utilisé pour créer des applications Web dynamiques.
- Les servlets sont principalement utilisés pour développer des applications côté serveur.
- Les servlets sont très robustes et évolutifs. Avant l’introduction des servlets, CGI (interface de passerelle commune) était utilisée.
- Une servlet est une classe Java qui doit étendre la classe HttpServlet. Elle comporte trois méthodes fondamentales :
- Une méthode init(), qui est appelée une fois que Tomcat a instancié cette servlet, l’a chargée en mémoire.
- Une méthode doGet() et une méthode doPost(). Ces deux méthodes sont celles qui "font le travail".
- Les moteurs peuvent
- Les moteurs peuvent être directement intégrés aux serveurs Web ou ajoutés comme modules par la suite
- Parmi tous les serveurs supportant les servlets, on peut noter :
- Tomcat, Resin, JRun, BEA Weblogic Server, IBM Websphere, Oracle Application Server, …
-
Composants de l’architecture de servlet
- Le diagramme ci-dessous montre comment les composants fonctionnent sur l’architecture de servlet.
-
Client
- Dans cette architecture, le navigateur Web agit comme un client. Client ou utilisateur connecté avec un navigateur Web. Le client est responsable de l’envoi des requêtes ou HttpRequest au serveur Web et du traitement des réponses reçues par le serveur Web.
-
Serveur Web
- Le serveur Web contrôle la manière dont les utilisateurs Web accèdent aux fichiers hébergés et est responsable du traitement des demandes et des réponses des utilisateurs.
- Ici, le serveur est un logiciel qui comprend les URL et le protocole HTTP. Chaque fois que le navigateur a besoin d’héberger un fichier sur la demande du client de traitement du serveur Web à l’aide de la requête HTTP, s’il trouve le fichier demandé, il le renvoie au navigateur via la réponse HTTP.
- Il existe deux types de serveurs Web Static et Dynamic webservers.in Le serveur Web statique envoie le fichier tel quel, mais dans le serveur Web dynamique, le fichier hébergé est mis à jour avant d’être envoyé au navigateur.
-
Conteneur Web
- Le conteneur Web est le composant du serveur Web qui interagit avec les servlets Java. Un conteneur Web est responsable de la gestion du cycle de vie des servlets et exécute également la tâche de mappage d’URL.
- Le conteneur Web gère les requêtes des servlets, JSP et autres fichiers côté serveur.
- Les tâches importantes effectuées par les servlets sont le chargement et le déchargement des servlets, la création et la gestion des requêtes et des objets de réponse et effectue la tsk globale de la gestion des servlets.
-
Les méthodes utilisées
-
La méthode service()
- L’interface Servlet définit un nombre limité de méthodes. Les méthodes init() et destroy() ne gèrent pas les requêtes.
- La seule méthode concernée par cette tâche est service(). Les HttpServlet sont conçues pour répondre aux requêtes HTTP. Elles doivent donc traiter des requêtes GET, POST, HEAD…
- La méthode doGet(…) traite les requêtes de type GET.
- Si la méthode utilisée est GET, il suffit de redéfinir la méthode :
public void doGet( HttpServletRequest request, HttpServletResponse response )
- La méthode doPost(…) les requêtes de type POST.
- Si la méthode utilisée est POST, il suffit de redéfinir la méthode :
public void doPost( HttpServletRequest request, HttpServletResponse response)
- Il existe autant de méthodes doXXX(…) qu’il existe de type de requêtes HTTP.
-
La méthode init()
- L’interface
javax.servlet.Servlet
fournit des méthodes qui correspondent au cycle de vie de la Servlet : initialisation, en service, destruction. - Lorsque la Servlet est chargée en mémoire suite à une instanciation par le conteneur Web, la méthode
init(...)
de la Servlet est exécutée. -
La méthode destroy()
- Lors de l’arrêt du conteneur Web, les instances de Servlets chargées en mémoire sont détruites (par le Garbage Collector) mais avant la réalisation de cette étape, le conteneur exécute la méthode destroy() de chaque Servlet chargée.
-
Avantages de l’architecture de servlet
- Voici quelques avantages importants du servlet:
- Les servlets sont indépendants du serveur, car ils sont compatibles avec n’importe quel serveur Web. Par rapport à d’autres technologies Web côté serveur comme ASP et JavaScript, elles sont spécifiques au serveur.
- Les servlets sont indépendants du protocole, c’est-à-dire qu’ils prennent en charge FTP, SMTP, etc. Principalement, ils fournissent un support étendu aux fonctionnalités du protocole HTTP.
- Les servlets sont persistants car ils restent en mémoire jusqu’à ce qu’ils soient explicitement détruits, ce qui facilite le traitement de plusieurs requêtes et une connexion à la base de données peut gérer plusieurs requêtes à la base de données.
- Les servlets sont portables puisque les servlets sont écrits en java, ils sont portables et prennent en charge n’importe quel serveur Web.
- Plus rapides en exécution, les servlets sont compilés en octets et s’exécutent plus rapidement par rapport aux autres langages de script. La conversion de code d’octet donne de meilleures performances et aide à la vérification de type et aux erreurs.
Bibliographie
- Livre:Java EE Guide de développement d’applications web en Java de Jérôme LAFOSSE
- Site web: https://www.educba.com/servlet-architecture/