0

当我们在 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 值是否与启动时加载中的任何内容相同?

4

2 回答 2

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它将被忽略

于 2013-05-15T19:04:07.637 回答
1

默认情况下,当您向 servlet 发出第一个请求时会创建 servlet 对象,但如果您想在加载时(或启动时)创建 servlet 对象,则可以在web.xml<load-on-startup></load-on-startup>中提供值。

<load-on-startup></load-on-startup>是 servlet 明智的。如果您的应用程序中有 2 个 servlet,那么您需要<load-on-startup></load-on-startup>为每个 servlet 提供值。

<load-on-startup></load-on-startup>值为 0 或任何正整数。如果您将<load-on-startup>10</load-on-startup>值设置为 10,并且您只有一个 servlet,那么它不会影响任何事情,但是您有超过 1 个 servlet,那么 0 值是最高优先级,依此类推。

于 2014-05-30T10:38:01.547 回答