我正在努力保证init方法调用几个servlet的顺序。我的想法是为我要初始化的第一个servlet指定1的load-on-startup值,为我想要初始化的第二个servlet的load-on-startup值指定值2。
我的问题是如果我在servlet 1初始化完成之前收到servlet 2的请求会发生什么?
嗨Jarrod, 我不相信我的问题是重复的。 谢谢,查理
答案 0 :(得分:-1)
在Web应用程序启动之前,Web应用程序将不会处理请求。如果指定非负 column_names = [c["name"] for c in result.column_descriptions]
return [dict(zip(column_names, row)) for row in result.all()]
result.__table__.columns.keys()
值,则意味着在Web应用程序启动期间将发生servlet result.__table__.columns.keys()
方法调用。因此,在load-on-startup
方法完成之前,这样的servlet不会处理任何请求。
因此,servlet容器将使用非负init()
(按顺序)调用servlet上的init()
,然后才允许它们处理请求。
使用默认配置的Tomcat 7会延迟在应用程序启动期间收到的请求(至少在我的情况下)。
的答案中有关Tomcat细节的更多信息