It may choose to pre load all servlets or may choose to delay it untill the first request comes in.
The load-on-startup element indicates that this
servlet should be loaded (instantiated and have
its init() called) on the startup of the web
application. The optional contents of these
element must be an integer indicating the order in
which the servlet should be loaded. If the value
is a negative integer, or the element is not
present, the container is free to load the servlet
whenever it chooses. If the value is a positive
integer or 0, the container must load and
initialize the servlet as the application is
deployed. The container must guarantee that
servlets marked with lower integers are loaded
before servlets marked with higher integers. The
container may choose the order of loading of
servlets with the same load-on-start-up value.
1.) it loads the servlet class If an instance of the servlet does not exist,
2.) creates an instance of the servlet class
From Java Servlet Programming: Init and Destroy
A servlet's init(ServletConfig) method is called by the server immediately after the
server constructs the servlet's instance. Depending on the server and its configuration,
this can be at any of these times:
When the server starts When the servlet is first requested, just before the service() method is invoked At the request of the server administrator
In any case, init() is guaranteed to be called before the servlet handles its first request.
3.) calls the init() method to initialises the servlet instance
4.) invokes the service() method, passing a request and response object.
5.) if it needs to remove the servlet, it calls the destroy() method to finalise the