您的位置 首页 百科问答

java 监听器2

问题补充说明:public class LianXi2 { public static void main(String[] args) {  LianXi3 lx3=new LianXi3(1000,true);  lx3.start();    for(int i=0;i<100;i++){   System.out.println(100);  }    System.exit(0); }}public class LianXi3 { private int interval; private boolean beep; public LianXi3(int interval, boolean beep) {  this.interval = interval;  this.beep = beep; } public void start() {  System.out.println("******");  ActionListener al = new TimePrinte();    Timer t = new Timer(300, al);    t.start();   } class TimePrinte implements ActionListener {  @Override    public void actionPerformed(ActionEvent event) {   Date now = new Date();   System.out.println(now);     Toolkit.getDefaultToolkit().beep();  } }}想问一下是不是这个样子java里面的监听器没有监听到活动便不运作,但其实已经启动

java 监听器2

简单的说,被监听对象A中,关联着B对象。事件很源A类对外提供一个方法,用于设置监听器对象B到A类的某一实例变量中。在需要监听事件源的方法中,方法体的某一处先构造创建一个Event对象,将this即B与相关来自的动作封装进Event对象中,然后调用监听器B对象的doXXXX(event)方法,将事件对象传入方法实参中。

360问答二、简介:

在Servlet规适细例万范中定义了多种类型的监听步续器,它们用于监听的事件源分别为SerlvetC胡往传读千完客工协笔onext,HttpSession和ServletRequest这三划呼云领个域对象。

Servlet规范针对这三个对象上的操作,又把这多种类型的监听器划分为三种类型:

1>监听三个域对象阿个李止被烈春足创建和销毁的事件监听完青器

2>监听域对象中属性的增加和删除的事件监听器

3>监听绑定到HttpSe延胶赶信使棉联ssion域中的某个对象的状态的时间监听器。

a、如三个域对象的创建与销毁方法签名:

ServletRequestListener有以下两个方法

voidre举石量劳月questDestroyed(ServletRequestEventsre) 

voidrequestInitialized(ServletRequestEventsr见陆吃光e)

HttpSessionListener有以下两个方法

voidsessionCreated(HttpSessionEventse)

voidsessionDestroyed(HttpSessionEventse) 

Se行义钢溶互组换速巴顾础rvletContextListener

voidcontextDestroy初年季伯西读示静她号歌ed(ServletCon剧占丝顾坏送福议算textEventsce)

voidcontextInitialized(ServletContextEventsce) 

b、三个类型对象域中增、删、地营提激改的监听器(3个)

Ser资句丝挥士地原信答处vletContextAttributeListener,

HttpSessionAttributeLi热液钢stener,

ServletReques对伯结但娘要映销器例笔tAttributeListener

c、感知型监听器(2个):监听自己何时被帮到session上,何时解绑了;何时被钝化了,何时被活化了(序列化到某个存储设置中)。

注意:这种监听器不需要注册。某个javabean实现这些接口后就可以监听何时被绑定、解绑或被激活或钝化。

HttpSessionBindingListener:实现该接口的类,能检测自己何时被Httpsession绑定,和解绑

HttpSessionActivationListener:实现该接口的类(要求些javabean必须是实现了Serializable接口的),能监测自己何时随着HttpSession一起激活和钝化。

三、Listenner的注册

Javaweb的这些特别的监听器注册比较简单,因为ServletRequest、HttpSession、ServletContext对象都是容器创建的,所以需要它们的监听器的话,只需要在应用的web-info的web.xml里配置即可:

com.test.listener.MyHttpSessionAttributeListener

com.test.listener.MyServletContextAttributeListener

注意:感知型监听器HttpSessionBindingListener、HttpSessionActivationListener不需要注册。

三、应用场景:

由于ervletRequest、HttpSession、ServletContext对象都是容器创建的,什么时候创建,用户都不知道。通过实现这些对象的监听器后,就可以得知了。比如:

1>在ServletContextLintener监听器的contextInitialized方法中,进行应用级的资源初始化以便提高效率,在contextDestroyed方法中对应用级的资源进行释放。

2>又比如web应用中,会存在会话,通常的作法是将当前登录的用户存放在session会话中。那么如何统计在线人数话,如何显示出当前登录的用户呢。如何踢出某些已登录的用户呢。就可以通过HttpSessionAttributeListener监听器的attributeAdded方法。

记得给赏金

上一篇 雅思题库
下一篇 健康异劳医听义证怎么查询和下载打印?
扫一扫,手机访问

扫一扫,手机浏览