1.Loading OF web.xml
1bLoading of Servlet Class
2.Instantiation of Servlet Object (COnstructor)
3.Initalization of Servlet(init)
Q1.Does these 3 steps happen before the client request come i.e. the project is run on server (eg Tomcat server started in eclipse IDE) ?
AFter Client Request The following steps are managed by Web Container:
4.COntainer created req and reponse objects
5.IT finds correct servlet based on client requests.
5.b calls init()---------------
6.Allocates THread and Passes req,resp to THread
7.Calls Servlet service method
Q2.Does container call init (step 5b) here or before the client request i.e at the time of Loading ?
When application is deployed: Container will look for the servlet classes. It will locate the servlet classes declared in deployment descriptor in some predefined directories.
When loading, instantiation and initialization happens depends on load-on-startup value declared in DD for that servlet:
case 1: If load-on-startup is not present or is a negative integer: The container is free to load the servlet whenever it chooses. It may load the servlet class at first request to that servlet.
case 2: If load-on-startup is a positive integer or 0: The container must load, instantiate and initialize the servlet when the application is deployed. The order in which servlets will be loaded will depend on the integer value of load-on-startup. Servlets with lower values of load-on-startup will be loaded before others with higher value.
On each request: Container allocates a thread and calls service() method passing a reference to ServletRequest, ServletResponse.