监听器 Listener

xiaoxiao2021-02-28  103

监听器概念

监听器就是一个实现特定接口的普通java程序, 这个程序专门用于监听一个java对象的方法调用或属性改变, 当被监听对象发生上述事件后,监听器某个方法将立即被执行。 监听器典型案例:掩耳盗铃 被监听对象(事件源-盗铃的人) 监听器对象(铃铛) 事件对象(发现盗铃就弄死他)

自己定义一个监听器原理分析

需求 定义一个person,监听person的状态

步骤

第一步: 定义一个接口,生命要监听的方法

第二步:在类中调用监听器方法

第三步: 设置监听,监听动作

书写监听器的基本步骤

1.写类 (实现相应Listener接口) 2.配置web.xml <listener><listener-class>包名.类名</ listener-class></listener>

Servlet监听器 8个监听

关于生命周期的监听

ServletContextListener

ServletContextListener接口用于监听ServletContext对象的创建和销毁事件。 当ServletContext对象被创建时,激发contextInitialized(sc)方法 当ServletContext对象被销毁时,激发contextDestroyed(sc)方法 创建:服务器启动针对每一个Web应用创建ServletContext 销毁:服务器关闭前先关闭代表每一个Web应用的ServletContext对象

HttpSessionListener

HttpSessionListener接口用于监听HttpSession的创建和销毁 创建一个Session时,sessionCreated(HttpSessionEvent se)方法将会被调用 销毁一个Session时,sessionDestroyed(HttpSessionEvent se)方法将会被调用。 用户每一次访问时,服务器创建session 销毁:如果用户的session 30分钟没有使用,服务器就会销毁session, 我们在web.xml里面也可以配置session失效时间

ServletRequestListener

接口用于监听ServletRequest对象的创建和销毁 Request对象被创建时,监听器的requestInitialized方法将会被调用 Request对象被销毁时,监听器的requestDestroyed方法将会被调用 创建:用户每一次访问,都会创建一个request 销毁:当前访问结束,request对象就会销毁

关于属性的监听

ServletContextAttributeListenerHttpSessionAttributeListener

ServletRequestAttributeListener

这三个接口中都定义了三个方法来处理被监听对象中的属性的增加, 删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同, 只是接受的参数类型不同。

不需要在web.xml配置的监听

HttpSessionBindingListener

保存在Session域中的对象可以有多种状态: 绑定到Session中;从Session域中解除绑定; 随Session对象持久化到一个存储设备中;随Session对象从一个存储设备中恢复 实现了HttpSessionBindingListener接口的JavaBean对象 可以感知自己被绑定到Session中和从Session中删除的事件 当对象被绑定到HttpSession对象中时,web服务器调用该对象的void valueBound(HttpSessionBindingEvent event)方法 当对象从HttpSession对象中解除绑定时,web服务器调用该对象的void valueUnbound(HttpSessionBindingEvent event)方法

HttpSessionActivationListener

实现了HttpSessionActivationListener接口的JavaBean(需要序列化)对象可以 感知自己被活化和钝化的事件 当往磁盘序列化时钝化 活化:从磁盘中读取出来时活化

有什么用?

统计在线人数 登陆(踢人)
转载请注明原文地址: https://www.6miu.com/read-45901.html

最新回复(0)