English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Le cycle de vie du Servlet peut être défini comme le processus complet de création à la destruction. Voici le processus suivi par le Servlet :
Appelé après l'initialisation du Servlet init () Méthode.
Appel du Servlet service() Méthode pour traiter les demandes du client.
Méthode appelée avant la destruction du Servlet destroy() Méthode.
Finalement, le Servlet est recyclé par le回收器 de JVM.
Maintenant, discutons en détail des méthodes de cycle de vie.
Le méthode init est conçue pour être appelée une seule fois. Elle est appelée lors de la création du premier Servlet et n'est plus appelée lors de chaque demande utilisateur ultérieure. Par conséquent, elle est utilisée pour l'initialisation unique, comme la méthode init d'Applet.
Le Servlet est créé lorsque l'utilisateur appelle pour la première fois l'URL correspondante du Servlet, mais vous pouvez également spécifier que le Servlet soit chargé lors du premier démarrage du serveur.
Lorsque l'utilisateur appelle un Servlet, une instance de Servlet est créée, chaque requête utilisateur génère un nouveau thread, et il est transféré à la méthode doGet ou doPost à l'heure appropriée. La méthode init() crée ou charge simplement des données, qui seront utilisées tout au long de la vie du Servlet.
La définition de la méthode init() est la suivante :
public void init() throws ServletException { // code d'initialisation... }
La méthode service() est la méthode principale pour exécuter des tâches. Le conteneur Servlet (c'est-à-dire le serveur Web) appelle la méthode service() pour traiter les requêtes provenant du client (navigateur) et écrire les réponses formatées au client.
Chaque fois que le serveur reçoit une requête Servlet, il crée un nouveau thread et appelle le service. La méthode service() vérifie le type de requête HTTP (GET, POST, PUT, DELETE, etc.) et appelle doGet, doPost, doPut, doDelete, etc. à l'heure appropriée.
Voici les caractéristiques de cette méthode :
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ }
La méthode service() est appelée par le conteneur, la méthode service appelle doGet, doPost, doPut, doDelete, etc. à l'heure appropriée. Par conséquent, vous n'avez pas besoin de faire quoi que ce soit pour la méthode service(), vous devez simplement redéfinir doGet() ou doPost() en fonction du type de requête provenant du client.
Les méthodes doGet() et doPost() sont les méthodes les plus couramment utilisées dans chaque requête de service. Voici les caractéristiques de ces deux méthodes.
Une requête GET provient d'une requête normale à partir d'une URL ou d'un formulaire HTML sans spécifier de METHOD, et elle est traitée par la méthode doGet().
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Code Servlet }
Requête POST provenant d'un formulaire HTML spécifiant METHOD comme POST, traitée par la méthode doPost().
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Code Servlet }
La méthode destroy() ne sera appelée qu'une seule fois, à la fin du cycle de vie du Servlet. La méthode destroy() permet à votre Servlet de fermer les connexions de base de données, d'arrêter les threads d'arrière-plan, d'écrire la liste des cookies ou le compteur de clics sur le disque, et d'exécuter d'autres activités de nettoyage similaires.
Après l'appel à la méthode destroy(), l'objet servlet est marqué pour la collecte de déchets. La méthode destroy() est définie comme suit :
public void destroy() { // Code de terminaison... }
La figure suivante montre un schéma de cycle de vie Servlet typique.
La première requête HTTP arrivant sur le serveur est déléguée au conteneur Servlet.
Le conteneur Servlet charge le Servlet avant de appeler la méthode service().
Ensuite, le conteneur Servlet traite plusieurs requêtes générées par plusieurs threads, chaque thread exécutant une seule méthode service() d'un exemple Servlet unique.