Servlet load-on-startup标签

Servlet web.xml使用load-on-startup标签,默认情况下,在 servlet 容器收到特定 servlet 的请求之前,不会加载 Servlet。这可能会导致第一次访问 servlet 的延迟。为避免访问时间延迟,您可以使用web.xml文件中的标签<load-on-startup>,允许您在服务器启动时强制 servlet 容器加载(实例化并使其init()调用)servlet。

如何使用<load-on-startup>

这是一个示例web.xml文件:

<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>,那么在收到对DemoServlet servlet 类的请求之前,Web 容器就不会加载 servlet。由于我已经指定了值>= 0,因此将在启动时加载此 servlet(DemoServlet类)。

>= 0的值表示在部署 web-app 时或服务器启动时加载 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 类DemoServlet1DemoServlet2具有>= 0的加载启动值,它们都将在服务器启动时立即加载。但是,在DemoServlet1类之前加载 servlet 类DemoServlet2,因为它具有较低的启动加载值。

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

赞(1)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址