specify the order in which we want to initialize various Servlets. Like first initialize Servlet1 then Servlet2 and so on.
This is accomplished by specifying a numeric value for the† <load-on-startup> tag. <load-on-startup> tag specifies that the servlet should be loaded
automatically when the web application is started.
The value is a single positive integer, which specifies the loading order. Servlets with lower values are loaded before servlets with
higher values (ie: a servlet with a load-on-startup value of 1 or 5 is loaded before a servlet with a value of 10 or 20). When loaded, the init() method of the servlet is called. Therefore this tag provides a good way to do the following:
start any daemon threads, such as a server listening on a TCP/IP port, or a background maintenance thread perform initialisation of the application, such as parsing a settings file which provides data to other servlets/JSPs If no <load-on-startup> value is specified, the servlet will be loaded when the container decides it needs to be loaded – typically on it’s first access. This is suitable for servlets that don’t need to perform special initialisation.
I hope that clears all the doubts regarding <load-on-startup> in web.xml.