The total life cycle of a java Servlet lies between the beginning of the servlet loading into the application server memory and ending of the servlet by termination/reload.
Basically there are three phases in the life-cycle of a java servlet.
- Instantiation and Initialization Phase (using init() method)
- Creates the instance of the servlet
- If successfully instantiated, the servlet is available for providing service
- If failed to instantiate, it will unload the servlet
- Servicing Phase (using service() method)
- Gets information about the request from the request object
- Processes the request
- Uses methods of the response object to create the client response.
- Can invoke other methods to process the request, such as doGet(), doPost(), or other custom methods.
- Termination Phase (using destroy() methods)
- Stops a servlet by invoking the servlet’s destroy() method.
- The destroy() method runs only one time during the lifetime of the servlet and signals the end of the servlet.
- After calling destroy() method, the servlet engine unloads the servlet
- Unloaded servlets are collected by JVM Garbage Collection