Life cycle of Servlet

In this section, you will learn about the life cycle of servlets.

Life cycle of Servlet


This article is discussing about the Life cycle of Servlet and teaches you the Servlet Life cycle methods. As a beginner you should understand the different lifecycle methods of the Servlet.  You use these methods to for the Servlet initialization and the cleaning the resource at the end of Servlet lifecycle.

You can also view the example of Servlet Life Cycle which is explained with the help of code.

There are four phases in the life cycle of Servlet. The lifecycle phases are Loading and InstantiationInitialization, Servicing the Request and Destroying the Servlet.

Following steps are performed by the container when it receives the request from client:

  1. First of all Web container try to finds the Servlet instance and if it does not exists Server loads the Servlet. Then creates the instance of the Servlet class. Then it initializes the Servlet instance by calling the init method. Finally it calls the service methods.
  2. If Servlet instance exists then it calls the service methods.

The life cycle of a Servlet can be categorized into four parts:

  1. Loading and Instantiation: The servlet container loads the servlet during startup or when the first request is made. The loading of the servlet depends on the attribute <load-on-startup> of web.xml file. If the attribute <load-on-startup> has a positive value then the servlet is load with loading of the container otherwise it load when the first request comes for service. After loading of the servlet, the container creates the instances of the servlet.
  2. Initialization: After creating the instances, the servlet container calls the init() method and passes the servlet initialization parameters to the init() method. The init() must be called by the servlet container before the servlet can service any request. The initialization parameters persist untill the servlet is destroyed. The init() method is called only once throughout the life cycle of the servlet.

    The servlet will be available for service if it is loaded successfully otherwise the servlet container unloads the servlet.
  3. Servicing the Request: After successfully completing the initialization process, the servlet will be available for service. Servlet creates seperate threads for each request. The sevlet container calls the service() method for servicing any request. The service() method determines the kind of request and calls the appropriate method (doGet() or doPost()) for handling the request and sends response to the client using the methods of the response object.
  4. Destroying the Servlet: If the servlet is no longer needed for servicing any request, the servlet container calls the destroy() method . Like the init() method this method is also called only once throughout the life cycle of the servlet. Calling the destroy() method indicates to the servlet container not to sent the any request for service and the servlet  releases all the resources associated with it. Java Virtual Machine claims for the memory associated with the resources for garbage collection.

Above picture shows the Life Cycle of a Servlet 

Read more about Servlet at Servlet Home page.

Share on Google+Share on Google+

Life cycle of Servlet

Posted on: July 13, 2007 If you enjoyed this post then why not add us on Google+? Add us to your Circles



Discuss: Life cycle of Servlet   View All Comments

Post your Comment

Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
June 5, 2012

this metirial is very good and easy to understand.thank u for providing this type of metirial.
kulvant singh
August 27, 2012
Ask question

why are servlet's service method abstract
sagar thoriya
September 23, 2012

good explain..
October 18, 2012

December 31, 2012
Nice Explanation

Hi there, Really ur explanation was very nice:) and easily understable. Thanks and regards, Shruthi
jay raghav
April 13, 2013
interface creation

sir, give me a small code of java interface how i will i crete a intrface in java and give me short note on java how it will work in compile time also tell me about java i/o thnks
October 18, 2013
[email protected]

May 20, 2014
Life cycle of servlet

it is good but if u expalin it in quit deeply it would be better....
May 20, 2014