I've few observations to share.
The value of the <load-on-startup> determines the order of loading the servlets by the container. The lesser the value the earlier it starts.
-->If the value is one(1), such servlets has the highest priority of loading the servlet by the container.
-->If the value is zero (0), this has got the least priority and this servlet will be the last to be loaded during the container startup .
-->If two or more servlets have the same value, the servlets in my case (tomcat 5), loaded in the reverse order of declaration in the web.xml.
To simplify, Consider that my web.xml declares 3 servlets with load-on-startup value as 4 in the below order:
The order in which the servlets were loaded in my tomcat5 was ServletC, ServletB, ServletA.
-->If the value of the startup is negative, or the web.xml doesnot mention this element, then the container decides when to load this servlet.
The container will however load such servlets whenever a request comes in.
Hope this clarifies your doubts and confusions