web.xml中load-on-startup

 <servlet>
      <servlet-name>SystemInit</servlet-name>
      <servlet-class>sjgl.system.SystemInitServlet</servlet-class>
      <load-on-startup>10</load-on-startup>
 </servlet>

之前一直以为,存在<servlet>标签,一定对应着<servlet-mapping>标签,今天才发现<servlet-mapping>是非必须的,<servlet>是初始化这个Servlet类。

在web.xml中配置servlet的时候会有个属性<load-on-startup></load-on-startup>,它的作用如下:

The load-on-startup element indicates that this servlet should be loaded (instantiated and have its init() called) on the startup of the web application. The optional contents of these element must be an integer indicating the order in which the servlet should be loaded. If the value is a negative integer, or the element is not present, the Container is free to load the servlet whenever it chooses.   If the value is a positive integer or 0, the container must load and initialize the servlet as the application is deployed. The container must guarantee that servlets marked with lower integers are loaded before servlets marked with higher integers. The container may choose the order of loading of servlets with the same load-on-start-up value.
意思大概就是如下四点:

  1. load-on-startup 元素标记容器是否应该在web应用程序启动的时候就加载这个servlet(实例化并调用其init()方法)。
  2. 可选择值必须是一个整数,用来表示servlet被加载的先后顺序。
  3. 如果该元素的值为负数或没有设置,则容器会当Servlet被请求时再加载(懒加载)。
  4. 如果值为正整数或者0时,表示容器在应用启动时就加载并初始化这个servlet,值越小,servlet的优先级越高,就越先被加载。如果值相同时,容器就会顺序加载。
原文地址:https://www.cnblogs.com/caozx/p/10144281.html