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。
热门文章
优秀文章