Maison >Problème commun >Quel est le cycle de vie d'une servlet
Cycle de vie du servlet : chargez d'abord la classe servlet, instanciez le servlet, puis initialisez le servlet et appelez la méthode init(), puis appelez la méthode service du service pour traiter le doGet et les méthodes doPost, et enfin la méthode destroy est appelée lorsque le conteneur est fermé.
Le cycle de vie du Servlet peut être défini comme l'ensemble du processus, de la création à la destruction. Voici le processus suivi par une servlet :
·Une servlet est initialisée en appelant la méthode init().
·Servlet appelle la méthode service() pour gérer la demande du client.
·Le servlet est terminé (terminé) en appelant la méthode destroy().
·Enfin, Servlet est un garbage collection par le garbage collector de la JVM.
Parlons maintenant en détail des méthodes de cycle de vie.
Méthode init()
La méthode init est conçue pour être appelée une seule fois. Il est appelé lors de la première création du servlet et n'est plus appelé à chaque demande utilisateur ultérieure. Par conséquent, il est utilisé pour une initialisation unique, tout comme la méthode init de l'applet.
Une Servlet est créée lorsqu'un utilisateur appelle pour la première fois l'URL correspondant à la Servlet, mais vous pouvez également spécifier que la Servlet est chargée au premier démarrage du serveur.
Lorsqu'un utilisateur appelle un Servlet, une instance de Servlet sera créée. Chaque requête utilisateur générera un nouveau thread et le transmettra à la méthode doGet ou doPost le cas échéant. La méthode init() crée ou charge simplement des données qui seront utilisées tout au long du cycle de vie du servlet.
la méthode init est définie comme suit :
public void init() throws ServletException { // 初始化代码... }
la méthode service()
la méthode service() consiste à effectuer des tâches réelles tâches Principales méthodes. Le conteneur Servlet (c'est-à-dire le serveur Web) appelle la méthode service() pour gérer la demande du client (navigateur) et réécrit la réponse formatée au client.
Chaque fois que le serveur reçoit une requête Servlet, le serveur génère 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 les méthodes doGet, doPost, doPut, doDelete, etc. le cas échéant.
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, et la méthode service appelle doGet, doPost, doPut, doDelete et d'autres méthodes le cas échéant . Ainsi, vous n'avez rien à faire avec la méthode service(), il vous suffit de remplacer doGet() ou doPost() selon le type de requête du client.
Les méthodes doGet() et doPost() sont les méthodes les plus couramment utilisées dans chaque demande de service. Vous trouverez ci-dessous les caractéristiques des deux méthodes.
Méthode doGet()
La requête GET provient d'une requête normale vers une URL, ou d'un formulaire HTML sans spécifier METHODE. la méthode doGet().
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Servlet 代码 }
Méthode doPost()
La requête POST provient d'un formulaire HTML qui spécifie spécifiquement METHOD comme POST, qui est utilisé par doPost() méthode traiter.
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Servlet 代码 }
méthode destroy()
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 la connexion à la base de données, d'arrêter le thread d'arrière-plan, d'écrire la liste des cookies ou de cliquer sur le compteur sur le disque et d'effectuer d'autres activités de nettoyage similaires.
Après avoir appelé la méthode destroy(), l'objet servlet est marqué pour le garbage collection. La méthode de destruction est définie comme suit :
public void destroy() { // 终止化代码... }
Schéma d'architecture
La figure suivante montre un schéma typique du cycle de vie d'un servlet.
·La première requête HTTP qui atteint le serveur est déléguée au conteneur Servlet.
·Le conteneur Servlet charge le Servlet avant d'appeler la méthode service().
·Ensuite, le conteneur Servlet gère plusieurs requêtes générées par plusieurs threads, chaque thread exécutant la méthode service() d'une seule instance de Servlet.
Pour plus de FAQ, veuillez visiter le site Web PHP chinois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!