Servlet Lifecycle method

Categories: Servlet

Content Image

  Life Cycle of Servlet

 

Servlet life cycle contains five steps: 1) Loading of Servlet 2) Creating instance of Servlet 3) Invoke init() once 4) Invoke service() repeatedly for each client request 5) Invoke destroy()

 

For those who are wondering what is instance and invoke means: Instance and objects are same thing. Invoking a method means calling a method, it is just a fancy word that we use in programming world in place of calling :)

 

Let’s back to the main topic. Here are the five steps of servlet life cycle.

 

Step 1: Loading of Servlet

When the web server (e.g. Apache Tomcat) starts up, the servlet container deploy and loads all the servlets.

 

Step 2: Creating instance of Servlet

Once all the Servlet classes loaded, the servlet container creates instances of each servlet class. Servlet container creates only once instance per servlet class and all the requests to the servlet are executed on the same servlet instance.

 

Step 3: Invoke init() method

Once all the servlet classes are instantiated, the init() method is invoked for each instantiated servlet. This method initializes the servlet. There are certain init parameters that you can specify in the deployment descriptor (web.xml) file. For example, if a servlet has value >=0 then its init() method is immediately invoked during web container startup.

 

You can specify the element in web.xml file like this:

 

<servlet>

 <servlet-name>MyServlet</servlet-name>

 <servlet-class>com.beginnersbook.MyServletDemo</servlet-class>

 <load-on-startup>1</load-on-startup>

</servlet>

Now the init() method for corresponding servlet class com.beginnersbook.MyServletDemo would be invoked during web container startup.

 

Note: The init() method is called only once during the life cycle of servlet.

 

Step 4: Invoke service() method

Each time the web server receives a request for servlet, it spawns a new thread that calls service() method. If the servlet is GenericServlet then the request is served by the service() method itself, if the servlet is HttpServlet then service() method receives the request and dispatches it to the correct handler method based on the type of request.

 

For example if its a Get Request the service() method would dispatch the request to the doGet() method by calling the doGet() method with request parameters. Similarly the requests like Post, Head, Put etc. are dispatched to the corresponding handlers doPost(), doHead(), doPut() etc. by service() method of servlet.

 

Note: Unlike init() and destroy() that are called only once, the service() method can be called any number of times during servlet life cycle. As long as servlet is not destroyed, for each client request the service() method is invoked.

 

Out of all the 5 steps in life cycle, this is the only step that executes multiple times.

 

Step 5: Invoke destroy() method

When servlet container shuts down(this usually happens when we stop the web server), it unloads all the servlets and calls destroy() method for each initialized servlets.

Top articles
Servlet interview questions and answers for experienced Published at:- Servlet Lifecycle method Published at:- Servlet Architecture Published at:-
R4Rin Team
The content on R4Rin.com website is created by expert teams.