The element load-on-startup indicates that this servlet should be loaded (instantiated and have its init() called) on the startup of the Web application. The element content of this 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-startup value.
It indicates that the servlet will be loaded on startup. Moreover, the container will load the servlet in the order you set them in web.xml. So a servlet with load-on-startup at 2 will be loaded BEFORE another one set to 3.
It indicates 3 instances of the servlet will get create on the loading of servlet
Dipali its wrong, it doesn't indicate the number of instances. Only one instance will be created unless it implements SingleThreadModel, in which case it depends on container how many instances will be created.