Cycle de vie des servlets en Java : méthodes, architecture, comparaison et configuration

Publié: 2021-03-03

Table des matières

introduction

Les servlets fournissent une méthode non seulement basée sur les composants et indépendante de la plate-forme, mais également très utile pour la création d'applications Web. Les servlets ont accès aux API java et à l'API JDBC pour accéder aux bases de données. Dans le cas des servlets Java, bien qu'il n'y ait pas de restrictions en termes de performances du programme CGI (Common Gateway Interface), il existe tout de même quelques inconvénients.

Qu'est-ce qu'un servlet ?

Servlet est une technologie très bénéfique pour la création de pages Web dynamiques. Il agit comme une couche intermédiaire entre le navigateur Web et les clients ou serveurs HTTP. Avec l'aide de servlets, dans un premier temps, nous collectons les entrées des utilisateurs, puis créons des pages Web de manière dynamique. Servlet étend les capacités des serveurs et des applications hôtes. Les servlets étendent les capacités des serveurs et répondent également à tout type de requêtes des utilisateurs.

La source

CGI contre les servlets

Avant les servlets, CGI était largement utilisé. CGI est un moyen de transmettre la demande reçue de l'utilisateur à un programme d'application. Bien que CGI soit un moyen pour un serveur Web, il obtient également la réponse du navigateur (client). Lorsque l'utilisateur demande une page Web au navigateur, le serveur la lui renvoie.

Lorsqu'un client souhaite remplir un formulaire sur une page Web et essaie de le renvoyer, il est traité par le programme d'application. Le serveur transmet les informations à un petit programme d'application Web. Ce programme traite d'abord les données, puis les renvoie via un message de confirmation.

Méthodes de cycle de vie des servlets en bref

Il existe principalement trois méthodes de cycle de vie d'une servlet, que nous pouvons décrire comme suit :

  1. init()
  2. service()
  3. détruire()

La source

Architecture des servlets

  • Tout d'abord, il lit les données envoyées par les clients. Ensuite, il insère un formulaire HTML dans une page web puis envoie les requêtes envoyées par les clients.
  • Après cela, le servlet traite les données et se connecte à un système de gestion de base de données, exécutant RMI en appelant des services Web.
  • Après traitement, les documents peuvent être envoyés aux formats texte et gif.
  • Enfin, il envoie le HTTP au client.

La source

Nous allons maintenant discuter de ces méthodes en détail

1. init()

La méthode init() est appelée une seule fois après la création de l'instance de servlet. Au début, il initialise le servlet. Servlet.init() indique que l'instance de servlet a été créée avec succès.

La syntaxe de la méthode init() est donnée par :

public void init (configuration de ServletConfig) lance ServletException {

//code d'initialisation

}

2.service()

Chaque fois que le servlet reçoit la requête, le conteneur Web appelle la méthode service().

  • Pour collecter les données demandées b
  • Pour le client, l' objet demande de service est utilisé.
  • Pour générer le contenu de sortie, l' objet ServletResponse est utilisé.

La signature de la méthode service() est donnée par :

service vide public (demande ServletRequest, réponse ServletREsponse)

lance ServletEXception , IOException {

//demande de code de traitement

}

La méthode service() utilise doGet, doPost, doPut, doDelete et de nombreuses autres méthodes.

3. détruire()

L'utilisateur appelle la méthode destroy() au moins une fois dans un cycle de vie d'un servlet . Il est utilisé pour mettre fin à la connexion à la base de données, pour libérer la mémoire et les ressources allouées. Cela aide également à des fins de nettoyage, et la collecte des ordures est associée à cela.

La signature de la méthode destroy() est

public void destroy(){

// Code de finalisation

}

Lire aussi : Servlet vs JSP

Configuration de l'environnement d'un servlet

Pour créer une application Servlet, dans un premier temps, nous devons suivre certaines étapes telles que l'installation de Tomcat Server, qui est décrite ci-dessous.

1. Création d'une structure de répertoire

La source

Tout d'abord, nous devons créer la structure de répertoires ci-dessus dans un répertoire nommé Apache - Répertoire Tomcat\webapps. Nous devons conserver tous les fichiers HTML, fichiers statiques, images sous l'application Web en créant un dossier. Les servlets doivent être conservés dans le dossier de classe. Enfin, le fichier web.xml doit se trouver dans le dossier WEB-INF.

2. Création d'un servlet

Il existe trois manières différentes de créer un servlet.

  1. En implémentant l'interface Servlet.
  2. En étendant la classe GenericServlet.
  3. Il est nécessaire d'étendre la classe de servlet HTTP.

Un servlet peut être principalement formé si nous pouvons étendre la classe abstraite httpServlet.

3. Compilation du servlet

Pour compiler le servlet, un fichier JAR est requis -

  1. En définissant le classpath.
  2. En collant le jar dans le dossier JRE/lib/ext.

4. Créer un descripteur de déploiement

DD peut être défini comme un fichier XML utilisé par les serveurs Web afin que

ils peuvent facilement exécuter des servlets. DD est utilisé à plusieurs fins importantes.

  1. En mappant l'URL à la classe Servlet.
  2. En initialisant les paramètres.
  3. En définissant la page Erreur.
  4. Par rôles de sécurité.
  5. En déclarant des bibliothèques de balises.

5. Démarrez le serveur

Pour démarrer le serveur Apache Tomcat, nous devons double-cliquer sur le fichier startup.bat sous le répertoire apache-tomcat/bin, et il commencera à fonctionner.

6. Démarrer le serveur Tomcat pour la première fois

Pour démarrer Tomcat Server pour la première fois, nous devons définir JAVA_HOME dans la variable d'environnement. Les étapes suivantes sont mentionnées ci-dessous. Faites un clic droit sur Poste de travail , et nous devons aller dans Propriétés .

La source

  1. Ensuite, nous irons dans l'onglet Avancé et nous devrons cliquer sur le bouton Variables d'environnement .

La source

  1. Par conséquent, nous allons cliquer sur le bouton Nouveau et saisir JAVA_HOME dans le champ de texte Nom de la variable et le chemin du JDK dans le champ de texte Valeur de la variable. Ensuite, nous devons l'enregistrer en cliquant sur OK.

La source

7. Exécution de l'application servlet

Lorsque nous exécutons le bouton servlet, il ressemblera à -

Après avoir ouvert le navigateur, nous devons taper http:localhost:8080/First/hello

Paiement : salaire d'un développeur Java en Inde

Interface de demande de servlet

ServletRequest vise à fournir au client des informations authentiques sur une servlet qui

inclut le type de contenu, la longueur, les valeurs des paramètres et bien d'autres.

Méthodes

1. getAttribute (chaîne)

Renvoie la valeur des attributs comme demandé, si les attributs n'existent pas

renvoie alors NULL.

2. getAttributeNames()

Il renvoie les noms des attributs actuels qui sont demandés par les clients.

3. getCharacterEncoding()

Renvoie un ensemble de caractères.

4. getContentLength()

Renvoie la taille de l'entité de données demandée .

5. getContentType()

Dans un premier temps, il demande l'identité de l'objet. S'il n'est pas trouvé, il renvoie une valeur NULL.

6. getInputStream()

Renvoie un flux binaire de données reçu par le client, puis renvoie les chaînes.

7. getParameter(String)

Renvoie une chaîne des paramètres.

8. getParameterNames()

Il renvoie les noms des paramètres.

9. getParameterValues ​​(chaîne)

Il renvoie les valeurs des paramètres. Ils existent toujours sous la forme d'une chaîne.

10. getProtocol()

Il renvoie le protocole et la version sous la forme <protocole>/<version majeure>.<version mineure>.

11. getReader()

Il renvoie un lecteur tamponné pour lire le texte dans le corps de la requête.

12. getRealPath(String)

évite le chemin virtuel et renvoie le chemin réel.

13. getRemoteAddr()

Il renvoie l'adresse IP.

14. getRemoteHost()

Il renvoie le nom d'hôte complètement structuré de l'agent.

15. getScheme()

Il renvoie l'URL utilisée dans la requête.

16. getServerName()

Il renvoie le nom d'hôte du serveur.

17. getServerPort()

Il renvoie le numéro de port.

18. setAttribute (chaîne, objet)

Cette méthode accumule un attribut pour tout type de requêtes.

Réponse de servlet

ServletResponse appelle un objet et la réponse de divers utilisateurs est enregistrée. Le conteneur Web est responsable de toutes ces activités. L'étape pour créer ceci est très importante. L'étape consiste à créer un objet.

Parlons maintenant de ServletConfig et ServletContext ci- dessous en détail.

ServletConfig

1. Le conteneur Web crée l'objet de configuration en fonction des paramètres d'initialisation.

2. Un ServletConfig par Servlet doit être présent.

Méthodes

1. Égal (Objet)

vérifie si l'objet courant a la même valeur que l'objet donné.

2. GetHashCode()

Fonctionne comme fonction de hachage par défaut.

3. GetType()

Renvoie le Type de l'instance actuelle.

4. MemberwiseClone()

Si nous invoquons cet objet, une copie superficielle peut être créée. Il fait référence à l'objet actuel par défaut .

5. ToString()

Renvoie une chaîne, qui représente l'objet actuel.

ServletContext

Discutons de ServletContext ci-dessous :

  1. Il est absolument nécessaire de rendre l'objet de référence accessible à chaque servlet de l'application Web.
  2. L'objet de référence est en fait l'implémentation d'exécution de ceux-ci.

Les deux types de servlets peuvent être définis comme :

1. Servlets génériques

Nous nous référons aux servlets génériques comme indépendants des protocoles, et aussi, il est nécessaire de l'invoquer en remplaçant. Nous pouvons invoquer des servlets génériques de trois manières :

  • Fichier HTML

Nous pouvons créer un fichier HTML très simple qui peut ressembler à WebContent/index.html.

  • Fichier de classe Java

Un servlet générique peut être créé en étendant la classe GenericServlet. Si nous pouvons créer un nouveau fichier de classe simple, nous pouvons le renommer générique. Le chemin du fichier ressemble à :/ javaResouces/src/default package/generic.java.

  • Fichier XML

Nous pouvons trouver ce fichier dans le chemin WebContent/WEB-INF/web.xml. Nous pouvons mapper le servlet avec une URL spécifique.

2. Servlet HTTP

Ce type de servlets n'est rien d'autre qu'une extension des classes Servlet. Bien qu'il dépende de HTTP, il définit certaines règles qui aident le navigateur Web et les serveurs à communiquer, et le servlet HTTP peut également remplacer les méthodes doGet() ou doPost(). En outre, il peut remplacer les deux méthodes.

Avantages des servlets

Voyons maintenant quelques avantages des servlets -

  1. Les performances sont exceptionnelles.
  2. Les servlets peuvent s'exécuter dans l'espace d'adressage d'un serveur. Par conséquent, nous pouvons dire qu'il n'est pas nécessaire de créer un espace d'adressage séparé pour gérer la demande du client.
  3. Ils sont indépendants de la plate-forme et principalement basés sur des composants.
  4. Les servlets sont sécurisés car le gestionnaire de sécurité définit certaines restrictions pour protéger les ressources et les données.
  5. Pendant qu'ils travaillent, les utilisateurs n'ont pas à se soucier de libérer de la mémoire en tant que technique d'allocation de mémoire.
  6. Les servlets fournissent toutes les fonctionnalités car toutes les bibliothèques sont disponibles. Il peut facilement communiquer avec des applets et d'autres mécanismes.

La source

Inconvénients des servlets

Les limites des servlets sont décrites comme suit :

  1. Un seul servlet peut être chargé dans la JVM à la fois. Donc, on peut dire que c'est important le nombre de demandes.
  2. Lorsqu'il y a une demande, il ne peut y avoir qu'un thread. Aucun processus ne doit y être présent.
  3. Concevoir un servlet est coûteux, et parfois, c'est assez problématique.
  4. Nous avons besoin d'autres configurations dans le navigateur comme JRE (Java Runtime Environment) sur le serveur pour exécuter des servlets.

Lisez également : Idées et sujets de projet Java

Apprenez des cours de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Conclusion

Dans cette ère moderne du monde numérique, la technologie et Internet sont devenus la force motrice de tous. Internet est agité. Chaque seconde, il est occupé à transférer de grandes quantités de données.

Mais en raison du transfert massif de données, Internet ralentit, car nous avons également besoin de vitesse. Ainsi, les sites dynamiques sont créés par des développeurs de logiciels. Ces sites sont modifiés et mis à jour à chaque instant. Pour en savoir plus sur les servlets en Java et le développement, consultez le programme Executive PG d'upGrad dans le développement de logiciels à pile complète et démarrez votre voyage.

Le principal objectif de cet article est de fournir aux lecteurs un concept de base des servlets afin qu'ils puissent obtenir une idée fondamentale sur les servlets.

Décrochez le job de vos rêves

Postulez maintenant pour le programme Executive PG en développement Full Stack