您的位置:首页 > 编程语言 > Java开发

javaweb 监听器

2018-02-01 13:38 656 查看

监听器Listener

监听器:
监听器 主要监听 Request, Session, ServeltContext对象,以及其属性的变化。
主要监听任务:
1. 监听Request, ServeltContext, Session对象的创建与销毁;
Request:  ServletRequestListener
Session:   HttpSessionListener
ServeltContext: ServletContextListener

2. 监听Request,ServletContext, Session对象的属性值变化
Request: ServletContextAttributeListener
Session: HttpSessionAttributeListener
ServletContext: ServletRequestAttributeListener

3. 监听session中保存的JavaBean的状态
HttpSessionBindingListener

创建与销毁监听
1. ServletRequest  一个用户一次访问就创建一个ServletRequest.
监听Request, 实现ServletContextListener子类
(1) 监听创建. requestInitialized(.ServletRequestEvent sce );
(2) 监听销毁. requestDestroyed( ServeltRequestEvent sce );
(3) web.xml中配置:
<listener>
<listener-class>cn.test.listener.MyServletRequestListener</listener-class>
</listener>

2. Session.  一个用户在web的会话访问期间,创建一个HttpSession
监听HttpSession,实现HttpSessionListener
(1) 监听创建: sessionCreated( HttpSessionEvent se )
(2) 监听销毁: sessionDestroyed(.HttpSessionEvent se );
(3) web.xml配置
<listener>
<listener-class>cn.test.listener.MySessionContextListener</listener-class>
</listener>

3. ServletContext  整个appweb运行期间,只创建一个ServletContext;
监听ServletContext, 实现ServletContextListener
(1) 监听创建: contextInitialized(.ServletContextEvent sce );
(2) 监听销毁: contextDestroyed(.ServeltContextEvent sce );
(3) web.xml配置:
<listener>
<listener-class>cn.test.listener.MyServletContextListener</listener-class>
</listener>
4000
;

属性变化监听
主要监听 域对象 使用 setAttribute, removeAttribute方法。

ServletContextAttributeListener 专门用于监听ServletContext对象中的属性的变化情况。
HttpSessionAttributeListener 专门用于监听session对象中的属性的变化情况。
ServletRequestAttributeListener 专门用于监听request对象中的属性的变化情况。
它们中的监听”添加”,”修改”,”删除”的方法名称一致.

(1) attributeAdded(.ServletContextAttributedEvent scab ); 监听属性添加
(2) attributeRemoved(.ServletContextAttributedEvent scab ); 监听属性删除
(3)  attributeReplaced( ServletContextAttributedEvent scab ); 监听属性修改

Session中的Bean监听
当我们给Session中增加,删除一个java对象时,会触发专门用来监听session中对象变化的监听器中的方法。

属性监听 与 bean监听的区别:
(1) 属性监听: 对三大容器中的任何属性(对象或者基本类型数据)的变化进行监听。
(2) Bean监听: 只监听javabean对象在session中的保存和移除过程。

HttpSessionBindingListener接口;
(1) valueBound(.HttpSessionBindingEvent event ) 监听对象绑定的方法。
(2) valueUnbound(.HttpSessionBindingEvent event ); 监听对象解绑的方法
(3) web.xml配置

<listener>
<listener-class>cn.test.listener.MySessionBindingListener</listener-class>
</listener>

案例:
1. 根据ServletContextListener来统计网站访问次数
2. 根据HttpSessionListener来统计访问人数
3. 根据HttpSessionBindingListener来统计会员访问人数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: