我试图保证初始化方法调用几个servlet的顺序。我的想法是为我要初始化的第一个 servlet 指定启动时加载值 1,为我要初始化的第二个 servlet 的启动时加载值指定值 2。
我的问题是,如果我在 servlet 1 初始化完成之前收到对 servlet 2 的请求,会发生什么?
嗨贾罗德, 我不相信我的问题重复。 谢谢,查理
在 Web 应用程序启动之前,Web 应用程序不会处理请求。如果指定非负load-on-startup
值,则意味着 Servletinit()
方法调用将在 Web 应用程序启动期间发生。因此,这样的 servlet 在其init()
方法完成之前不会处理任何请求。
因此,servlet 容器将在具有非负load-on-startup
(按顺序(的 servlet 上调用init()
,然后才允许它们处理请求。
具有默认配置的 Tomcat 7 会延迟在应用程序启动期间收到的请求(至少在我的情况下(。
有关 Tomcat细节的更多信息,请参阅在启动期间阻止 Tomcat 缓存请求的答案