22-监听器

一、 事件监听

1. 在程序中经常会用到事件监听机制

2. 关键字:

事件: 用户的一个操作, 可以是点击一个按钮、调用一个方法、创建一个对象

事件源: 发生事件的对象

事件监听器:  负责监听发生在事件源上的事件

事件处理器:  监听器的成员方法,当事件发生的时候会触发对应的处理器(成员方法)

3. 事件处理机制

    1) 将监听器绑定到事件源

    2) 事件发生触发监听器的成员方法,即事件处理器,传递事件对象

    3) 事件处理器通过事件获得事件源,进行处理

4. 做事件监听一般都需要做两件事情

    1) 写一个类实现监听器接口

    2) 将监听器注册到事件源上

 

二、 servlet事件监听器

1. 在Servlet 技术中主要有三类事件监听器:

 

1) 监听三个域对象的创建和销毁

    ServletContextListener、HttpSessionListener、HttpServletRequestListener

    三个监听器都是接口类型

 

    public interface ServletContextListener

    {

       // 事件处理器

       init

   

 

       destroy

    }

    web应用启动时, web 容器会将所有的监听器都实例化,并绑定到对应的事件源上

   

2) 监听三个域对象中属性的变化(增加、删除和替换)

    setAttribute   getAttribute  removeAttribute

    ServletContextAttributeListener,

    HttpSessionAttributeListener

    ServletRequestAttributeListener

 

    处理器

attributeAdded

attributeReplaced

attributeRemoved

 

3) 感知对象被绑定到session域

    HttpSessionBindingListener

    该接口由javabean对象来实现

    该监听器不需要注册

 

案例: 统计来访者的ip  ServletRequestListener

       统计在线人数  HttpSessionListener

        统计在线用户 
HttpSessionBindingListener

        session定时扫描器 
HttpSessionListener

 

时间: 2024-09-29 01:08:58

22-监听器的相关文章

Oracle中如何配置双监听器

以Oracle Net看,数据库服务器可能也是客户端 因为tnsnames.ora可以有服务器的描述 也就是,只有监听器才会一直是服务器 实例:监听=n:m ㈠ 双监听器的好处: ① 客户端故障转移--CF ② 客户端负载均衡--CLB ㈡ 注意事项: ① 要保证1521端口可用,否则,OEM将不可用,须emca重配 ② 非标端口使用静态注册是个比较好的实践 配置案例: [oracle@localhost admin]$ cat listener.ora think = (DESCRIPTION

实例讲解Oracle监听口令及监听器安全

  很多人都知道,Oracle的监听器一直存在着一个安全隐患,假如不设置安全措施,那么能够访问的用户就可以远程关闭监听器. 相关示例: D:>lsnrctl stop eygle LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-11月-2007 10:02:40 Copyright (c) 1991, 2006, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(A

js事件监听器用法实例详解

  本文实例讲述了js事件监听器用法.分享给大家供大家参考.具体分析如下: 1.当同一个对象使用.onclick的写法触发多个方法的时候,后一个方法会把前一个方法覆盖掉,也就是说,在对象的onclick事件发生时,只会执行最后绑定的方法.而用事件监听则不会有覆盖的现象,每个绑定的事件都会被执行.如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 window.onload = function(){ var btn = document.getElementById("yuanEv

Oracle 监听器密码设置方法(LISTENER)_oracle

监听器也有安全?Sure!在缺省的情况下,任意用户不需要使用任何密码即通过lsnrctl 工具对Oracle Listener进行操作或关闭,从而造成任意新的会话都将无法建立连接.在Oracle 9i 中Oracle监听器允许任何一个人利用lsnrctl从远程发起对监听器的管理.也容易导致数据库受到损坏. 1. 未设定密码情形下停止监听 [oracle@test ~]$ lsnrctl stop listener_demo92 -->停止监听,可以看出不需要任何密码即可停止 LSNRCTL fo

深入学习JavaWeb中监听器(Listener)的使用方法_java

一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换

activiti监听器使用

分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) activiti使用的时候,通常需要跟业务紧密的结合在一起,有些业务非常的复杂,通常有如下一些场景: 1.activiti人员动态的分配. 2.当前任务节点完成的时候,指定需要指定下一个节点的处理人(比如,一个请假流程,a员工请假,需要指定下一步需要处理请假流程的领导.). 3.任务节点完成的时候,需要一些复杂业务,(比如当前节点完成的时候,需要调用我们的jms消

第六章 对象作用域与servlet事件监听器

      作用域对象 Servlet上下文监听器 Servlet会话监听器 Servlet请求监听器     一:对象作用域   作用域对象 属性操作方法 作用域范围说明 ServletContext(上下文) void setAttribute(String, Object) Object getAttribute(Sting) void removeAttribute(String) Enumeration getAttributeNames() 整个Web应用程序 HttpSession

panel监听器-Jpanel添加鼠标监听器

问题描述 Jpanel添加鼠标监听器 部分代码如下,当点击退出系统是弹出退出!窗口,点击退出就关闭当前窗口,怎么实现 JTabbedPane tabbedPane = new JTabbedPane(); JPanel ExitPanel = new JPanel(); //退出面板 ExitPanel.setBackground(Color.white); ExitPanel.setLayout(new BoxLayout(ExitPanel, BoxLayout.X_AXIS)); if(E

centos ssh登录-CentOS 6.2 ping得的通/telnet 22也通,却无法ssh登陆上!

问题描述 CentOS 6.2 ping得的通/telnet 22也通,却无法ssh登陆上! 如题.外部机器ping该机器无问题,telnet 22端口也木有问题.却无法连接上?!试了putty和secure shell都不行那?! 希望给出解决思路:什么配置需要注意? 解决方案 你要配置该服务器的ssh服务 然后在该服务器上开启ssh服务

监听器在游戏开发中的应用----消息回调

我一向是不太喜欢给一些东西强加上个名字.但为了随波逐流,我还是这样做了. 在我们的游戏开发中,通常会遇到两个模块之间的通信. 回调估计是最常用的方式了. 回调的设计思想很简单,就是两个对象相互注册,然后在需要的时候调用对方的函数. 如下: class B;   class A   {   public:       void RegisterCallback(B* pB)       {           m_pB = pB;       }       void ActiveA()