Quatre étapes du cycle de vie du Servlet
1. Initialisation en appelant la méthode "init()"
Le 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.
@Override public void init(ServletConfig config) throws ServletException { this.config = config; this.init(); }
2. Appelez la méthode "service()" pour gérer la demande du client ;
la méthode service() est la méthode principale pour effectuer les tâches réelles. 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.
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getMethod(); if (method.equals(METHOD_GET)) { long lastModified = getLastModified(req); if (lastModified == -1) { // servlet doesn't support if-modified-since, no reason // to go through further expensive logic doGet(req, resp); } else { long ifModifiedSince; try { ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE); } catch (IllegalArgumentException iae) { // Invalid date header - proceed as if none was set ifModifiedSince = -1; } if (ifModifiedSince < (lastModified / 1000 * 1000)) { // If the servlet mod time is later, call doGet() // Round down to the nearest second for a proper compare // A ifModifiedSince of -1 will always be less maybeSetLastModified(resp, lastModified); doGet(req, resp); } else { resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED); } } } else if (method.equals(METHOD_HEAD)) { long lastModified = getLastModified(req); maybeSetLastModified(resp, lastModified); doHead(req, resp); } else if (method.equals(METHOD_POST)) { doPost(req, resp); } else if (method.equals(METHOD_PUT)) { doPut(req, resp); } else if (method.equals(METHOD_DELETE)) { doDelete(req, resp); } else if (method.equals(METHOD_OPTIONS)) { doOptions(req,resp); } else if (method.equals(METHOD_TRACE)) { doTrace(req,resp); } else { // // Note that this means NO servlet supports whatever // method was requested, anywhere on this server. // String errMsg = lStrings.getString("http.method_not_implemented"); Object[] errArgs = new Object[1]; errArgs[0] = method; errMsg = MessageFormat.format(errMsg, errArgs); resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg); } }
3. Terminez en appelant la 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.
@Override public void destroy() { // NOOP by default }
5. Le garbage collection est effectué par le garbage collector de la JVM.
Tutoriel recommandé : "Tutoriel Java"
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!