首页 > 编程语言 >java EE开发之Servlet第四课:监听器(Listener)

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

时间:2022-11-02 16:56:42浏览次数:49  
标签:第四课 调用 java 对象 void 监听 监听器 public

 


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

标签:第四课,调用,java,对象,void,监听,监听器,public
From: https://www.cnblogs.com/xmxit/p/16851546.html

相关文章