通过在web.xml中设置<load-on-startup>-1</load-on-startup>
属性,我们使servlet在服务器启动时加载。
我知道初始化的servlet在第一次请求时速度更快。
我的问题是哪种servlet是这个设置的好成员。 具体针对哪种功能有用吗?
答案 0 :(得分:1)
启动时加载对于执行任何类型的耗时操作的任何servlet都是一种很好的做法。例如,需要与数据库建立连接的servlet。
正如您所指出的那样,servlet将能够更快地响应其第一个请求 - 因为它已经被初始化。
答案 1 :(得分:1)
load-on-startup
基本上控制何时调用servlet的init()
方法。
所以,从逻辑上讲,如果你有一个带有init()
方法的servlet,它会花费昂贵和耗时的东西,比如解析XML配置文件和/或从某个数据库中填充一些应用程序范围的数据,那么它可能是在启动时而不是在第一次请求时做一个好主意。
如果您甚至没有init()
方法,那么您无需关心load-on-startup
。
答案 2 :(得分:0)
如您所知,servlet是在第一次请求时加载的。这意味着它在第一次请求时会消耗更多时间。如果在web.xml中指定load-on-startup,则将在项目部署时或服务器启动时加载servlet。因此,响应第一个请求将花费更少的时间。
因此,如果你有任何在初始化过程中需要花费大量时间的servlet,即。连接到数据库,读取文件等。更好地为这些类型的servlet指定启动时的负载,以便在应用程序启动期间初始化它们。因此,首先要求更快。
load-on-startup元素指示此servlet应该是 在启动时加载(实例化并调用其init()) Web应用程序。这些元素的可选内容必须是 整数,指示应加载servlet的顺序。如果 该值是一个负整数,或者该元素不存在, 容器可以随时加载servlet。如果 值是一个正128的整数或0,容器必须加载和 在部署应用程序时初始化servlet。容器 必须保证加载标有较低整数的servlet 在用更高整数标记的servlet之前。容器可以选择 具有相同加载启动值的servlet的加载顺序。