What is load on startup element in web.xml file

来源:互联网 发布:php在线文档系统 编辑:程序博客网 时间:2024/05/16 16:02

We can 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.

 

 

Short: value >= 0 means that the servlet is loaded when the web-app is deployed or when the server starts. value < 0 : servlet is loaded whenever the container feels like.

Long answer(from the spec): "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 128 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."

原创粉丝点击