首頁 > Java > java教程 > java listers怎麼用

java listers怎麼用

(*-*)浩
發布: 2020-09-17 16:52:05
原創
3050 人瀏覽過

Java listers的使用步驟:1、透過實作特定介面建立實作類別(可實現多個監聽器介面)。 2.直接用@WebListener註解修飾實作類,配置實作類別成為監聽器;或透過web.xml方式配置實作類別成為監聽器。

java listers怎麼用

Java listers是監聽器的意思,用來監聽網路應用程式的內部事件的實作類別。可以監聽使用者session的開始與結束,使用者要求的到達等等,當事件發生時,會回呼監聽器的內部方法。

使用Listener步驟

透過實作特定介面建立實作類別(可實作多個監聽器介面)

設定實作類別成為監聽器,有兩種設定方式:

直接用@WebListener註解修飾實作類別

透過web.xml方式配置,程式碼如下:

<listener>
    <listener-class>com.zrgk.listener.MyListener</lisener-class>
</listener>
登入後複製

常用Web事件監聽器介面

1. ServletContextListener

#此介面用於監聽Web應用程式的啟動與關閉

該介面的兩個方法:

contextInitialized(ServletContextEvent event); // 启动web应用时调用
contextDestroyed(ServletContextEvent event); // 关闭web应用时调用
登入後複製

如何取得application物件: 

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範圍(application)內屬性的改變。

 此介面的兩個方法:

attributeAdded(ServletContextAttributeEvent event);//当把一个属性存进application时触发
attributeRemoved(ServletContextAttributeEvent event);//当把一个属性从application删除时触发
attributeReplaced(ServletContextAttributeEvent event);//当替换application内的某个属性值时触发
登入後複製

如何取得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 listers怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板