Servlet Life Cycle

Servlet Life Cycle

A servlet life cycle can be defined as the entire process from its creation to its destruction. The following are the paths followed by a servlet.

· The servlet is initialized by calling the init() method.

· The servlet calls service() method to process a client's request.

· The servlet is terminated by calling the destroy() method.

· Finally, the servlet is garbage collected by the garbage collector of the JVM.


The init() Method:

  • init(): called when the servlet is instantiated; must return before any other methods will be called.

  • The init method is called only once when the servlet is created, and not called for any user requests afterward.

  • So, it is used for one-time initializations.

  • The servlet is normally created when a user first invokes a URL corresponding to the servlet.

  • When a user invokes a servlet, a single instance of each servlet gets created, with each user request resulting in a new thread that is handed off to doGet or doPost as appropriate.

  • The init() method simply creates or loads some data that will be used throughout the life of the servlet. The basic syntax is given below:

public void init() throws ServletException 
{
   // Initialization code...
}

The service() Method:

  • service(): This method is called directly by the server when an HTTP request is received

  • The default service() method calls doGet() (or related methods)

    · The service() method is the main method to perform the actual task.

    · The servlet container (i.e. web server) calls the service() method to handle the client’s requests coming from the client( browsers).

  • Generate/create/ write the formatted response to the client.

  • The service method checks the HTTP request type (GET, POST, PUT, DELETE, etc.) and calls appropriate methods (doGet, doPost, doPut, doDelete, etc).

  • The doGet() Method

    A GET request results from a normal request for a URL or from an HTML form that has no METHOD specified and it should be handled by doGet() method. The basic syntax is given below:

 public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException 
{
   // Servlet code
}

The doPost() Method

A POST request results from an HTML form that specifically lists POST as the METHOD and it should be handled by doPost() method.

 public void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException 
{
   // Servlet code
}

The destroy() Method

  • destroy(): called when the server shuts down.

  • The destroy() method is called only once at the end of the life cycle of a servlet. This method gives your servlet a chance to close database connections, Halt background threads, Write cookie lists or hit counts to disk, and Perform other such ,cleanup activities.

  • After the destroy() method is called, the servlet object is marked for garbage collection.

  • The syntax is given below:

      public void destroy() {
         // Finalization code...
      }
    

    Thank you.