当我们在web.xml中将任何servlet作为loadOnStartup提及时,在应用程序启动时调用其init方法。
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd version="3.0">
<servlet>
<servlet-name>SimpleServlet</servlet-name>
<servlet-class>app01c.SimpleServlet</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SimpleServlet</servlet-name>
<url-pattern>/simple</url-pattern>
</servlet-mapping>
</web-app>
<load-on-startup>10</load-on-startup>
这里,10值是什么意思?如果我改变它 5,会发生什么?价值较低会使它更早加载吗?如果是,如果它是0,它是最早的吗?我很困惑,因为我遇到了一些谷歌搜索在启动加载时的正值,使其在启动时加载。 这个正数是否大于0?在启动加载时0值是否相同?
答案 0 :(得分:3)
0是最高优先级。
如果你只有一个servlet,你就看不出差异
ServletName
load-on-start-up_value
Servlet1 4(3)
Servlet2 6(4)
Servlet3 3(2)
Servlet4 2(1)
首先创建Servlet4对象,然后创建Servlet3对象,然后创建Servlet1和Servlet2对象。
如果您提供-1
,则会被忽略
答案 1 :(得分:1)
默认情况下,在对servlet发出第一个请求时会创建servlet对象,但是如果要在加载时(或启动时)创建servlet对象,则可以提供<load-on-startup></load-on-startup>
值的的web.xml 强>
<load-on-startup></load-on-startup>
是servlet明智的。如果应用程序中有2个servlet,则需要为每个servlet提供<load-on-startup></load-on-startup>
值。
<load-on-startup></load-on-startup>
值为0或任何正整数。如果你将<load-on-startup>10</load-on-startup>
值设置为10,并且你只有一个servlet,那么它不会影响任何东西,但是你有超过1个servlet然后0值是最高优先级然后依此类推。