首先执行ServletContextListener还是load-on-startup?

Tec*_*nch 1 java tomcat servlets

我在使用 servlet 的 init() 方法和启动时加载的旧应用程序中引入 ServletContextListener。我在侦听器中的记录器没有记录,因为初始化是在 servlet 的 init() 中进行的,并且显然它尚未初始化。从技术上讲,哪个首先初始化?ServletContextListener 还是 servlet init ?我可以安全地将记录器初始化移动到侦听器吗?

wer*_*ero 5

ServletContextListener.contextInitialized()在初始化过滤器和 servlet 之前调用。

请参阅servlet 规范,第 10.12 章。