Java @WebListener の作成方法どんな感じで動作するのかの紹介

Java で WebListener の作り方

JavaのWebListenerをeclipseで作る方法をご紹介します。

まずはWeb動的プロジェクトを作成します。そして、クラスを作るのと同じ要領で作成したWeb動的プロジェクトの親フォルダにカーソルを合わせて「新規作成 > Web リスナー」を選択します。

クラス名を記載して次へ

ライフサイクルにチェックを入れて完了

Listenerクラスが生成されて次のソースコードが書かれています。

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

/**
* Application Lifecycle Listener implementation class EchoServerWeblistener
*
*/
@WebListener
public class EchoServerWeblistener implements ServletContextListener {

  /**
  * Default constructor.
  */
  public EchoServerWeblistener() {
    // TODO Auto-generated constructor stub
  }

  /**
  * @see ServletContextListener#contextDestroyed(ServletContextEvent)
  */
  public void contextDestroyed(ServletContextEvent sce) {
    // TODO Auto-generated method stub
  }

  /**
  * @see ServletContextListener#contextInitialized(ServletContextEvent)
  */
  public void contextInitialized(ServletContextEvent sce) {
    // TODO Auto-generated method stub
  }

}

これでひとまずWebリスナーのテンプレートは作成完了です。

どんな風に動作するのか

Javaアプリケーション終了時には contextDestroyed(ServletContextEvent sce) が呼ばれます。

Javaアプリケーション開始時には contextInitialized(ServletContextEvent sce)  が呼ばれます。

デフォルトで書かれるソースコードはJavaアプリケーション終了時に呼ばれるメソッドが先に来ているのが気持ち悪いです。これは個人的な意見です。

動作から察するに、WebListenerはアプリケーション開始/終了時に必ず実施するものを書くのが良さそうです。あとはユニークIDの生成とか、WebSocketの接続/切断とかを書くと幸せになれそう。