Servlet加载时机

1 load-on-startup配置

在web.xml中配置Servlet的时候,可以给Servlet配置添加<load-on-startup>标签,如下:

如果<load-on-startup>里面的值为正值,代表加载在Web容器启动或加载Web项目的时候Servlet类就被加载和实例化,也称为Servlet的预初始化。

<load-on-startup>标签的值可以为正值和负值。

2 load-on-startup的优势

默认情况下,Servlet是在第一次请求时加载的。这意味着在第一次请求时会消耗更多时间。如果在web.xml中指定了<load-on-startup>启动时加载,则Servlet将在项目部署时或Web服务器启动时加载。因此,第一个请求响应将花费更少的时间。

3 load-on-startup传值

3.1 正值

如果传递正值,数值越大,Servlet加载的优先级越低。换句话说,容器以递增的整数值加载Servlet。先加载0值,然后再加载1、2、3,依此类推。

让我们看看示例:

<web-app>  
 ....  
  
  <servlet>  
   <servlet-name>servlet1</servlet-name>  
   <servlet-class>com.yiidian.FirstServlet</servlet-class>  
   <load-on-startup>0</load-on-startup>  
  </servlet>  
  
  <servlet>  
   <servlet-name>servlet2</servlet-name>  
   <servlet-class>com.yiidian.SecondServlet</servlet-class>  
   <load-on-startup>1</load-on-startup>  
  </servlet>  
  
 ...  
</web-app>  

上面定义了2个Servlet,这两个Servlet将在项目部署或服务器启动时加载。但是,将首先加载Servlet1,然后再加载Servlet2。

3.2 负值

如果是负值,则将在第一个请求时加载该Servlet。

热门文章

优秀文章