九 load-on-startup

12 篇文章 0 订阅

servlet默认是延迟加载的,直到servlet容器接收到一个对应servelt的请求。这会导致首次访问改servlet延迟。

为了避免首次访问延迟,可以在web.xml中使用<load-on-startup>标签强制容器在服务启动时加载(初始化并调用init()方法)servlet。

 

怎样使用<load-on-startup>?

这里是一个例子:

<web-app>
…

<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.beginnersbook.DemoServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

…
</web-app>

 

如果没有指明<load-on-startup>,web容器不会加载servlet直到接收到DemoServet 这个servlet对应的请求。因为这里已经指明了其值大于0,所以这个servlet(DemoServlet)在启动时就被加载。

值大于0意味着当webapp被部署或者当服务器开启时加载,如果值小于0,这个 servlet将在容器需要它的任何时候。

 

怎么使用<load-on-startup>指明servlet载入顺序?

 

<web-app>
…

<servlet>
<servlet-name>MyServlet1</servlet-name>
<servlet-class>com.beginnersbook.DemoServlet1</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>

<servlet>
<servlet-name>MyServlet2</servlet-name>
<servlet-class>com.beginnersbook.DemoServlet2</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>

<servlet-name>MyServlet3</servlet-name>
<servlet-class>com.beginnersbook.DemoServlet3</servlet-class>
<load-on-startup>-2</load-on-startup>
</servlet>

…
</web-app>

在本例中,我们在web.xml文件中指定了三个servlet,因为servlet类MyServlet1和MyServlet2具有启动时加载的值大于0,它们将在服务器启动时立即加载。但是servlet类MyServlet2将在DemoServlet1类之前加载,因为它在启动时的加载值更低。

Servlet类MyServlet3不会在启动时加载,因为它具有负的启动时加载值。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值