Working of Servlet

Last Updated : 17 Apr, 2026

The working of a servlet is based on a well-defined lifecycle managed by the servlet container. It handles how a servlet is loaded, initialized, processes client requests, and is finally destroyed. Understanding this flow is essential for building efficient and scalable web applications.

  • Uses multithreading to handle multiple client requests efficiently.
  • Platform-independent and runs on any Java-supported server.
  • Reused across multiple requests, improving performance and scalability.

Servlet LifeCycle

These lifecycle methods (init(), service(), destroy()) form the basic structure of a servlet.

frame_3294
Life -cycle -method

Flow of Execution

The following steps describe how a task is scheduled and executed using ScheduledExecutorService.

Step 1: Loading and Instantiation

  • The container loads the servlet class.
  • Creates an object using the no-argument constructor.

Step 2: Initialization – init() Method

  • Called only once after servlet creation.
  • Receives ServletConfig object
  • Used for one-time setup tasks

Syntax:

public void init(ServletConfig config) throws ServletException

Step 3: Request Processing – service() Method

  • Called for every client request
  • Container creates a new thread for each request
  • Calls service(request, response)
  • Internally delegates to: doGet() -> for GET requests and doPost() ->for POST requests.

Step 4: Destruction – destroy() Method

  • Called once when servlet is removed from memory
  • Releasing resources (e.g., closing database connections or connection pools)
  • Notifying external systems that the servlet is no longer active

Syntax:

public void destroy()

Java
public dass SkeletonServet extends HttpServlet
{
    public void init()
    {
        // Initialization code goes here 
    }
    publicvoid service()
    {
        // Meaningful work happens here 
    }
    public void destroy() 
    { 
        // Free resources here  
    }
}

Explanation:This servlet class defines the lifecycle methods where init() initializes resources, service() handles client requests, and destroy() releases resources when the servlet is removed.

Comment