Javaリスターの使い方

(*-*)浩
リリース: 2020-09-17 16:52:05
オリジナル
3018 人が閲覧しました

Java リスターを使用する手順: 1. 特定のインターフェイスを実装して実装クラスを作成します (複数のリスナー インターフェイスを実装できます)。 2. @WebListener アノテーションを直接使用して実装クラスを変更し、実装クラスがリスナーになるように構成するか、web.xml を通じて実装クラスがリスナーになるように構成します。

Javaリスターの使い方

Java リスターとは、Web アプリケーションの内部イベントを監視するために使用される実装クラスであるリスナーを意味します。ユーザーセッションの開始と終了、ユーザーリクエストの到着などを監視できます。イベントが発生すると、リスナーの内部メソッドがコールバックされます。

リスナーを使用する手順

特定のインターフェイスを実装して実装クラスを作成します (複数のリスナー インターフェイスを実装できます)

実装クラスを次のように構成しますリスナーになります。設定方法は 2 つあります。

@WebListener アノテーションを直接使用して実装クラスを変更します。

web.xml を通じて設定します。コードは次のとおりです。

<listener>
    <listener-class>com.zrgk.listener.MyListener</lisener-class>
</listener>
ログイン後にコピー

一般的に使用される Web イベント監視 ServletContextListener

1. ServletContextListener

このインターフェイスは、Web アプリケーションの起動とシャットダウンを監視するために使用されます

このインターフェイスの 2 つのメソッド:

contextInitialized(ServletContextEvent event); // 启动web应用时调用
contextDestroyed(ServletContextEvent event); // 关闭web应用时调用
ログイン後にコピー

アプリケーション オブジェクトの取得方法:

ServletContext application = event.getServletContext();
ログイン後にコピー
ログイン後にコピー

例:

@WebListener
public class MyServetContextListener implements ServletContextListener{

    //web应用关闭时调用该方法
    @Override
    public void contextDestroyed(ServletContextEvent event) {
        ServletContext application = event.getServletContext();
        String userName = application.getInitParameter("userName"); 
        System.out.println("关闭web应用的用户名字为:"+userName);
    }

    //web应用启动时调用该方法
    @Override
    public void contextInitialized(ServletContextEvent event) {
        ServletContext application = event.getServletContext();
        String userName = application.getInitParameter("userName");     
        System.out.println("启动web应用的用户名字为:"+userName);
    }

}
ログイン後にコピー

2 . ServletContextAttributeListener

このインターフェースは、ServletContext スコープ (アプリケーション) 内の属性の変更を監視するために使用されます。

このインターフェイスの 2 つのメソッド:

attributeAdded(ServletContextAttributeEvent event);//当把一个属性存进application时触发
attributeRemoved(ServletContextAttributeEvent event);//当把一个属性从application删除时触发
attributeReplaced(ServletContextAttributeEvent event);//当替换application内的某个属性值时触发
ログイン後にコピー

アプリケーション オブジェクトの取得方法:

ServletContext application = event.getServletContext();
ログイン後にコピー
ログイン後にコピー

例:

@WebListener
public class MyServletContextAttributeListener implements ServletContextAttributeListener{

    //向application范围内添加一个属性时触发
    @Override
    public void attributeAdded(ServletContextAttributeEvent event) {
        String name = event.getName();//向application范围添加的属性名
        Object val = event.getValue();      //向application添加的属性对应的属性值
        System.out.println("向application范围内添加了属性名为:"+name+",属性值为:"+val+"的属性");

    }

    //删除属性时触发
    @Override
    public void attributeRemoved(ServletContextAttributeEvent event) {
        // ...      
    }

    //替换属性值时触发
    @Override
    public void attributeReplaced(ServletContextAttributeEvent event) {
        // ...      
    }

}
ログイン後にコピー

以上がJavaリスターの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート