培训行业门户网站建设方案,做淘宝网站需要什么,构建一个网站的步骤,陕西建设厅特种作业报名入口首先说说监听器#xff1a;监听器就是一个实现特定接口的普通java程序#xff0c;这个程序专门用于监听另一个java对象的方法调用或属性改变#xff0c;当被监听对象发生上述事件后#xff0c;监听器某个方法将立即被执 行。java的事件监听机制可概括为3点#xff1a;1,ja…首先说说监听器监听器就是一个实现特定接口的普通java程序这个程序专门用于监听另一个java对象的方法调用或属性改变当被监听对象发生上述事件后监听器某个方法将立即被执 行。java的事件监听机制可概括为3点1,java的事件监听机制涉及到事件源事件监听器事件对象三个组件,监听器一般是接口用来约定调用方式2,当事件源对象上发生操作时它将会调用事件监听器的一个方法并在调用该方法时传递事件对象过去3,事件监听器 实现类 通常是由开发人员编写开发人员通过事件对象拿到事件源从而对事件源上的操作进行处理事件监听机制在java图形用户界面那一块用的最多我们举个awt例子package cn.lmj.demo;import java.awt.Frame;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class Demo{public static void main(String[] args){//事件源Frame frame new Frame();frame.setSize(300,300);frame.setVisible(true);//绑定事件对象frame.addWindowListener(new MyListener());}}//监听器class MyListener extends WindowAdapter{//当点击了关闭按钮是触发的函数e是事件对象通过事件对象可以获得事件源Overridepublic void windowClosing(WindowEvent e){Frame f (Frame) e.getSource();f.dispose();}}到这里大家应该对事件监听机制有所理解。接下来我们就进入观察者模式大家只要明白了事件监听机制那么观察者模式就明白了我们可以这样去理解观察者模式观察者模式观察者(Observer)相当于事件监器被观察者(Observable)相当于事件源和事件执行事件源逻辑时通知observer触发oberver的方法调用,同时可传被观察者举个简单示例package cn.lmj.observer;public class Demo{public static void main(String[] args){Person p new Person();p.registerListener(new PersonListener(){Overridepublic void doRun(Even e){System.out.println(e.getP() is running);}Overridepublic void doEat(Even e){System.out.println(e.getP() is eatting);}});p.run();p.eat();}}// 事件源class Person{private PersonListener listener;public void run(){if (listener ! null){listener.doRun(new Even(this));}System.out.println(run........);}public void eat(){if (listener ! null){listener.doEat(new Even(this));}System.out.println(eat........);}// 注册监听器public void registerListener(PersonListener listener){this.listener listener;}}// 监听器interface PersonListener{public void doRun(Even e);public void doEat(Even e);}// 事件对象class Even{private Person p;public Even(){super();}public Even(Person p){super();this.p p;}public Person getP(){return p;}public void setP(Person p){this.p p;}}到这里相信大家对Java的事件监听机制和观察者模式都很明白了最后说一下事件监听机制或者观察者模式在javaee开发中的应用。这种设计模式体现在servlet的事件监听器在Servlet规范中定义了多种类型的监听器它们用于监听的事件源分别为 ServletContext, HttpSession 和 ServletRequest 这三个域对象Servlet规范针对这三个对象上的操作又把这多种类型的监听器划分为三种类型1,监听三个域对象创建和销毁的事件监听器2,监听域对象中属性的增加和删除的事件监听器3,监听绑定到 HttpSession 域中的某个对象的状态的事件监听器。(查看API文档)最后写一个servlet的监听器监听当前网站的在线用户量这个值不是很准确package cn.lmj.web.listener.exapmle;import javax.servlet.ServletContext;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class CountNumListener implements HttpSessionListener{//当session创建时调用该方法public void sessionCreated(HttpSessionEvent se)//将在线用户数量的值保持到ServletContext中已便所有用户看到ServletContext context se.getSession().getServletContext();//第一次获取没有if(countnull){count 1;context.setAttribute(count, count);}else{count;context.setAttribute(count, count);}}//session销毁的时候调用该方法把存在ServletContext中的数量值减一public void sessionDestroyed(HttpSessionEvent se){ServletContext context se.getSession().getServletContext();Integer count (Integer) context.getAttribute(count);count--;context.setAttribute(count, count);}}