java EE开发之Servlet第四课:监听器(Listener)

1.什么是Listener
监听器就像老板的秘书,那个秘书就是活的监听器,时时监听着老板,当老板发生一些事情的时候,秘书就会有相应的措施。比如老板口渴了,秘书就会去端茶;比如老板要提提神,秘书就会泡一杯咖啡等。

2.介绍java的几种常用的监听器
(1)实现ServletRequestListener接口,监听request(需要在web.xml中配置)

 /**
 * 当request对象被销毁的时候,容器就会自动去
 * 调用这个监听器的requestDestroyed,产生一个事件对象ServletRequestEvent 
 */
public void requestDestroyed(ServletRequestEvent sre) {
    System.out.println("request被销毁");
}
   /**
 * 当request对象被创建的时候,容器就会自动去
 * 调用这个监听器的requestInitialized,产生一个事件对象ServletRequestEvent*/
public void requestInitialized(ServletRequestEvent sre) {
    System.out.println("request被创建");
}

配置:

<listener>
    <listener-class>com.accp.RequestListener</listener-class>
</listener>

(2)实现HttpSessionListener接口,监听session (需要在web.xml中配置)

/**
* 当session被创建的时候被调用,产生一个事件对象HttpSessionEvent*/
public void sessionCreated(HttpSessionEvent se) {  }
/**
* 当session被销毁的时候被调用,产生一个事件对象HttpSessionEvent */
public void sessionCreated(HttpSessionEvent se) {  }

配置:

   <listener>
        <listener-class>com.accp.SessiontListener</listener-class>
    </listener>

(3)实现ServletContextListener接口,监听ServletContext(需要在web.xml中配置)

/**
* 当ServletContext被销毁的时候,容器就会自动去
* 调用这个监听器的contextDestroyed,产生一个事件对象ServletContextEvent
*/
public void contextDestroyed(ServletContextEvent sce) {  }

   /**
 * 当ServletContext被创建的时候,容器就会自动去
 * 调用这个监听器的contextDestroyed,产生一个事件对象ServletContextEvent*/
public void contextInitialized(ServletContextEvent sce) {  }

配置:

 <listener>
     <listener-class>com.accp.ContextListener</listener-class>
 </listener>

(4)实现SessionBindingListener接口,监听Session设值和取值(不需要在web.xml中配置)

/**
 * 当向Session里面设值的时候,容器调用此方法,生产一个事件对象  */
public void valueBound(HttpSessionBindingEvent event) {   }

/**
 * 当向Session里面移除值的时候,容器调用此方法,生产一个事件对象  */
public void valueUnbound(HttpSessionBindingEvent event) {  }
哪个类的对象需要监听,就让那个类实现该接口

3.应用
应用一
使用 ServletRequestListener ,HttpSessionListener , ServletContextListener
统计访问量,在线人数,请求次数

应用二
使用SessionBindingListener做购物车:
HttpSessionBindingListener只监听制定的session
HttpSessionListener:监听处理所有的session

发布了26 篇原创文章 · 获赞 13 · 访问量 7026

猜你喜欢

转载自blog.csdn.net/womeia331416/article/details/78041981
今日推荐