リスナーを使う

 サーブレットコンテキストに対して、Webアプリケーションの起動・停止時に、 ファイルを読むなどの重い処理を一度だけさせたい場合には、 Webアプリケーションの起動・停止を検知して動作する、 ServletContextListener の仕組を使うと便利です。 例えばこのクラスを継承して、次のようなInitListenerを作ります。

package hara.het.ta;

import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContext;

public class InitListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent event) {
        ServletContext context = event.getServletContext();

        String messageObj = // ...
        context.setAttribute("message", messageObj);
    }

    public void contextDestroyed(ServletContextEvent event) {
        ServletContext context = event.getServletContext();
        context.removeAttribute("message");
    }
}

 このクラスをWebアプリケーションに配置したら、 web.xmlを下のように編集して、リスナーをWebアプリケーションに登録します。

<listener>
  <listener-class>hara.het.ta.InitListener</listener-class>
</listener>


リスナーに初期化パラメータを渡す

 リスナーに直接初期化パラメータを渡すことはできませんが、 ServletContextに初期化パラメータを渡す、web.xmlのcontext-paramタグを使うことで、 リスナーからもそのパラメータを参照できます。 方法はこちらにメモりました。

Server Side Java Index Top

(first uploaded 2003/11/01 last updated 2003/12/27, URANO398)

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!