Webコンテキストの初期化には,ServletContextListenerを使うのが吉

恥ずかしながら,つい最近までServlet.init()を使っておりました(load-on-startupで調整して)。


ServletContextListener自体は,Servlet2.3んときから華麗にスルーしてたんだけど,フレームワークの初期化で結構使われているみたい。んで,知りたてほやほやなんだけど,Servlet2.4から起動タイミングが

サーブレット 2.4 仕様に従い、サーブレットの初期化前に、ServletContextListener が呼び出されるようになりました。

http://edocs.beasys.co.jp/e-docs/wls/docs90/notes/new.html#1225559

となったそうな。
Servlet2.4の仕様書(SRV.S.20)にも,こんな記述が...

Listener order vs. servlet init()/destroy() clarification(ServletContextListener javadoc change)

最近,自分はJ2EE1.3脳で止まっているなぁと自覚することばかりだ。ちょうど良い機会だから,今のウチにJ2EE1.4脳(正確にはServlet2.4/JSP2.0脳)にスイッチしようっと。