Web中的監聽器【Listener】

qingyezhu發表於2015-02-01

     Servlet監聽器:Servlet規範中定義的一種特殊類,它用於監聽Web應用程式中的ServletContext、HttpSession和ServletRequest等域物件的建立與銷燬事件,以及監聽這些域物件中的屬性發生修改的事件。

    ServeltContextListener介面: 其用於監聽ServletContext物件的建立和銷燬事件。

當ServletContext物件被建立時,激發contextInitialized(ServletContextEvent sce)方法

當ServletContext物件被銷燬時,激發contextDestroyed(ServletContextEvent sce)方法
 

package com.wangzhu.listener;

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

/**
 * Servlet監聽器:Servlet規範中定義的一種特殊類,它用於監聽Web應用程式中的ServletContext、<br/>
 * HttpSession和ServletRequest等域物件的建立與銷燬事件,以及監聽這些域物件中的屬性發生修改的事件。<br/>
 * 
 * ServeltContextListener介面<br/>
 * 其用於監聽ServletContext物件的建立和銷燬事件。<br/>
 * 當ServletContext物件被建立時,激發contextInitialized(ServletContextEvent sce)方法<br/>
 * 當ServletContext物件被銷燬時,激發contextDestroyed(ServletContextEvent sce)方法<br/>
 * 
 * Servlet的監聽器Listener<br/>
 * 隨Web應用的啟動而啟動,只初始化一次,並隨Web應用的停止而銷燬<br/>
 * 
 * @author wangzhu
 * @date 2015-2-1上午12:20:42
 * 
 */
public class MyServletContextListener implements ServletContextListener {

    /**
     * 應用監聽器的初始化方法
     */
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("MyServletContextListener contextInitialized");
    }

    /**
     * 應用監聽器的銷燬方法
     */
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("MyServletContextListener contextDestroyed");
    }

}

 

 

   HttpSessionListener介面:其用於監聽HttpSession物件的建立和銷燬
當建立一個Session時,激發sessionCreated(HttpSessionEvent se)方法
當銷燬一個Session時,激發sessionDestroyed(HttpSessionEvent se)方法

package com.wangzhu.listener;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * HttpSessionListener介面<br/>
 * 其用於監聽HttpSession物件的建立和銷燬<br/>
 * 當建立一個Session時,激發sessionCreated(HttpSessionEvent se)方法<br/>
 * 當銷燬一個Session時,激發sessionDestroyed(HttpSessionEvent se)方法<br/>
 * 
 * @author wangzhu
 * @date 2015-2-1下午3:48:10
 * 
 */
public class MyHttpSessionListener implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("MyHttpSessionListener sessionCreated");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("MyHttpSessionListener sessionDestroyed");
    }

}

 

 

   ServletRequestListener介面: 其用於監聽ServletRequest物件的建立和銷燬
當建立一個ServletRequest時,激發requestInitialized(ServletRequestEvent sre)方法
當銷燬一個ServletRequest時,激發requestDestroyed(ServletRequestEvent sre)方法

package com.wangzhu.listener;

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;

/**
 * ServletRequestListener介面<br/>
 * 
 * 其用於監聽ServletRequest物件的建立和銷燬<br/>
 * 當建立一個ServletRequest時,激發requestInitialized(ServletRequestEvent sre)方法<br/>
 * 當銷燬一個ServletRequest時,激發requestDestroyed(ServletRequestEvent sre)方法<br/>
 * 
 * @author wangzhu
 * @date 2015-2-1下午3:51:31
 * 
 */
public class MyServletRequestListener implements ServletRequestListener {

    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("MyServletRequestListener requestDestroyed");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("MyServletRequestListener requestInitialized");
    }

}

 

 

Web.xml中配置如下:

  
    <!--ServletContext監聽器-->
    <listener>
        <listener-class>com.wangzhu.listener.MyServletContextListener</listener-class>
    </listener>
    
    <!--HttpSession監聽器-->
    <listener>
        <listener-class>com.wangzhu.listener.MyHttpSessionListener</listener-class>
    </listener>
    
    <!--ServletRequest監聽器-->
    <listener>
        <listener-class>com.wangzhu.listener.MyServletRequestListener</listener-class>
    </listener>

 

相關文章