ServletContextListenerの例
リスナーはそこに座って、指定されたイベントが起こるのを待ってから、イベントをハイジャックして、自分のイベントを実行します。
1. ServletContextListenerの例
この例では、Webアプリケーションが起動する前にコードを実行する `ServletContextListener`を実装して、カスタムリスナークラスを作成する方法を示します。
1.1クラスを作成し、 `ServletContextListener`インタフェースを実装します。
MyAppServletContextListener.java
package com.mkyong.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class MyAppServletContextListener implements ServletContextListener{ @Override public void contextDestroyed(ServletContextEvent arg0) { System.out.println("ServletContextListener destroyed"); } //Run this before web application is started @Override public void contextInitialized(ServletContextEvent arg0) { System.out.println("ServletContextListener started"); } }
1.2デプロイメント記述子に入れます。
web.xml
<web-app ...> <listener> <listener-class> com.mkyong.listener.MyAppServletContextListener </listener-class> </listener> </web-app>
1.3 Tomcatの起動….
….//…
Dec 2, 2009 10:11:46 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
ServletContextListener started ←————- Your code here, before we application –→
Dec 2, 2009 10:11:46 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080//…
INFO: Server startup in 273 ms
** 注意** サーブレットコンテナ3.xの場合、リスナーに `@WebListener`を付けることができます。これは` web.xml`で宣言する必要はありません。 link://tag/listener/[listener]link://タグ/servlet/[servlet]