注釈対応サーブレット3.0リスナー
4037 ワード
詳細
注釈対応サーブレット3.0リスナー
サーブレット3.0のListenerは、以前の2.5と大きく異なりません.唯一の違いは、注釈のサポートを追加することです.3.0以前のListener構成は、Web.xmlファイルに構成する必要がありました.3.0では、Web.xmlファイルで構成する方法も選択できますが、注釈を使用して構成することもできます.注記を使用するListenerは、Listenerクラスに@WebListenerを使用してマークされ、WebコンテナがListenerとして登録および使用されます.
この記事で主にお話ししたいのは、サーブレット3.0で注釈を使用してリスナーを構成できることです.リスナーの他の内容については、あまり触れたくありません.
注釈を使用するListenerの例として、Sessionに対するリスニングとサーブレットContextに対するリスニングの2つのタイプのListenerを挙げたいと思います.Sessionのリスナーには主にHttpSessionListenerとHttpSessionAttributeListenerがある.HttpSessionListenerは、HttpSessionの作成および破棄をリスニングできますが、HttpSessionAttributeListenerは、sessionの新規属性のリスニング、削除、および属性値の置換をリスニングできます.サーブレットContextのListenerには、サーブレットContextListenerとサーブレットContextAttributeListenerがあります.サーブレットContextListenerは、サーブレットContextの作成および破棄を傍受し、サーブレットContextAttributeListenerは、サーブレットContextの属性の新規、削除および属性値の置換を傍受することができる.
文章の完全性のために、上のリスナーに対応するweb.xmlでの構成方法を以下に示す.
注釈対応サーブレット3.0リスナー
サーブレット3.0のListenerは、以前の2.5と大きく異なりません.唯一の違いは、注釈のサポートを追加することです.3.0以前のListener構成は、Web.xmlファイルに構成する必要がありました.3.0では、Web.xmlファイルで構成する方法も選択できますが、注釈を使用して構成することもできます.注記を使用するListenerは、Listenerクラスに@WebListenerを使用してマークされ、WebコンテナがListenerとして登録および使用されます.
この記事で主にお話ししたいのは、サーブレット3.0で注釈を使用してリスナーを構成できることです.リスナーの他の内容については、あまり触れたくありません.
注釈を使用するListenerの例として、Sessionに対するリスニングとサーブレットContextに対するリスニングの2つのタイプのListenerを挙げたいと思います.Sessionのリスナーには主にHttpSessionListenerとHttpSessionAttributeListenerがある.HttpSessionListenerは、HttpSessionの作成および破棄をリスニングできますが、HttpSessionAttributeListenerは、sessionの新規属性のリスニング、削除、および属性値の置換をリスニングできます.サーブレットContextのListenerには、サーブレットContextListenerとサーブレットContextAttributeListenerがあります.サーブレットContextListenerは、サーブレットContextの作成および破棄を傍受し、サーブレットContextAttributeListenerは、サーブレットContextの属性の新規、削除および属性値の置換を傍受することができる.
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
/**
*
* HttpSession HttpSession
*
*/
@WebListener
public class SessionListener implements HttpSessionAttributeListener,
HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("session created");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("session destroyed");
}
@Override
public void attributeAdded(HttpSessionBindingEvent event) {
System.out.println("session attribute added");
}
@Override
public void attributeRemoved(HttpSessionBindingEvent event) {
System.out.println("session attribute removed");
}
@Override
public void attributeReplaced(HttpSessionBindingEvent event) {
System.out.println("session attribute replaced");
}
}
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
*
* ServletContext ServletContext
*
*/
@WebListener
public class ContextListener implements ServletContextAttributeListener,
ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext destroyed");
}
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext initialized");
}
@Override
public void attributeAdded(ServletContextAttributeEvent event) {
System.out.println("ServletContext attribute added");
}
@Override
public void attributeRemoved(ServletContextAttributeEvent event) {
System.out.println("ServletContext attribute removed");
}
@Override
public void attributeReplaced(ServletContextAttributeEvent event) {
System.out.println("ServletContext attribute replaced");
}
}
文章の完全性のために、上のリスナーに対応するweb.xmlでの構成方法を以下に示す.
com.xxx.SessionListener
com.xxx.ContextListener