2007年10月16日火曜日

ServletContextListener

ServletContextListener は ServletContextEvent をハンドルします。
ServletContextEvent はコンテキストの生成、削除を通知します。
下記のメソッドがあります。
contextInitialized(ServletContextEvent sce)
contextDestroyed(ServletContextEvent sce)

アプリケーション共通の情報をセットする出来ます。
各ページで共通の情報を利用できます。
分散環境では各 JVM に1つずつ SevletContext がつくられるのでグローバル情報を ServletContext 属性などにセットすべきではないといわれます。

<サンプル>
web.xml
    <listener>
        <display-name>Context Listener</display-name>
        <listener-class>listener.ListenerSample1</listener-class>
    </listener>
_________

ListenerSample1.java
public class ListenerSample1 implements ServletContextListener {
    public void contextInitialized(ServletContextEvent sce) {
        ServletContext context = sce.getServletContext();
        context.setAttribute("message", "Hello");
    }
    public void contextDestroyed(ServletContextEvent sce) {
        ServletContext context = sce.getServletContext();
        context.removeAttribute("message");
    }
}
_________

sample.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<c:out value="${applicationScope.message}" />
</body>
</html>

<出力結果>http://localhost:8080/SCWCD/sample.jsp
Hello

0 件のコメント: