容器在加载启动之前如何处理servlet请求?

时间:2017-08-15 17:56:40

标签: java servlets

我正在努力保证init方法调用几个servlet的顺序。我的想法是为我要初始化的第一个servlet指定1的load-on-startup值,为我想要初始化的第二个servlet的load-on-startup值指定值2。

我的问题是如果我在servlet 1初始化完成之前收到servlet 2的请求会发生什么?

嗨Jarrod, 我不相信我的问题是重复的。 谢谢,查理

1 个答案:

答案 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会延迟在应用程序启动期间收到的请求(至少在我的情况下)。

有关Prevent Tomcat from caching request during starup

的答案中有关Tomcat细节的更多信息