在java的web.xml中我们常常会看到<load-on-startup>这个标签,比如你配置springmvc的时候可能是这样配置的,虽然你可能并不知道load-on-startup的值为什么写了1,但是项目没报错,你就这样拷贝了,咋的?没咋的,就是说说load-on-startup代表什么意思。load-on-startup控制着servlet的加载顺序。
<servlet> <servlet-name>springMvcServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMvcServlet-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
load-on-startup用来表示某个servlet是否在servlet容器启动的时候就被加载。比如:<load-on-startup>整数n</load-on-startup>
1.如果n位负数或者没有指定,表示所配置的servlet只有在被第一次访问的时候才被初始化,那么第二次访问的时候还会被初始化吗?不会,因为我们知道servlet是单例的,只会被初始化一次。
2.如果n为正数或者为0,表示在servlet容器启动的时候就所配置的servlet就被初始化,并且n越小的servlet越先被servlet容器加载。
3.需要注意的是,有些servlet容器在启动的时候就必须被初始化到内存中,所以这种情况下就需要设置这些初始值以确保该servlet可以在servlet容器启动的时候就被加载,比如设为0,1,2等