java中的监听事件
java监听器实现的类
1.ServletContextListener:对servlet上下文的创建和销毁监听
2.ServletContextAttributeListener:监听servlet上下文属性的添加、删除和替换
3.HTTPSessionListener:对Session的创建和销毁监听
session的销毁有两种情况:1). session超时(可以在web.xml中通过<session-config>/<session-timeout>标签配置超时 时间);2). 通过调用session对象的invalidate()方法使session失效。
4.HttpSessionAttributeListener:对Session对象中属性的添加、删除和替换进行监听
5.ServletRequestListener:对请求对象的初始化和销毁进行监听。
6.ServletRequestAttributeListener:对请求对象属性的添加、删除和替换进行监听
上边6个类是java给我提供的监听的类,在使用时之间实现其接口,以及接口中方法即可
public class OnlinePerListener implements HttpSessionListener{
private int userCounter = 0;
@Override
public void sessionCreated(HttpSessionEvent session) {
userCounter++;
session.getSession().setAttribute("userCounter", userCounter);
}
@Override
public void sessionDestroyed(HttpSessionEvent session) {
userCounter--;
session.getSession().setAttribute("userCounter", userCounter);
}
}
PS:无论是自己写的监听事件,还是使用java提供的监听,都需要在web.xml中对其进行配置
<listener>
<listener-class>com.JavaListener.TestListener</listener-class>
</listener>
下边写自己实现监听器:
监听器设计主要涉及三个组件
1.事件源:即事件发生的源头,例如一条狗,他可以发出动作。
2.事件对象:是对事件源的实例化,进而可以设置其相应的属性
3.事件监听器:用来监听事件源发出的动作。
/*
* 创建事件源
*/
public class Dog {
//定义一个监听器对象,用来接收传递进来的事件监听器
private DogListener listener; public void registListener(DogListener dogListener){
this.listener=dogListener;
} public void shout(){
if(listener!=null){
Even even = new Even(this);
this.listener.doshout(even);
}
System.out.println("汪汪汪................");
} public void watch(){
if(listener!=null){
Even even = new Even(this);
this.listener.dowatch(even);
}
System.out.println("狗会看门..............");
}
}
public class TestListener implements DogListener{
public static void main(String[] args) {
Dog dog = new Dog();
dog.registListener(new TestListener());
dog.shout();
dog.watch();
}
@Override
public void doshout(Even even) {
//拿到事件源,可以进行操作
Dog dog = even.getDog();
System.out.println("叫之前的动作");
}
@Override
public void dowatch(Even even) {
System.out.println("看门之前的动作");
}
}
java中的监听事件的更多相关文章
- [置顶] java Gui 键盘监听事件
简单写一个java Gui键盘监听事件,实现的效果就是按下键盘控制台输出你按下的键.比如:按下A控制台就输出A 效果如图: 以下把实现的效果分为几个步骤: 1.新建一个窗体类继承窗体: 2.给这个窗体 ...
- JAVA JComboBox的监听事件(ActionListener、ItemListener)
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 参考资料: http://263229365.iteye.com/blog/1040329 https://www.ja ...
- EditText中onEditorAction监听事件执行两次
Android的EditText通过setOnEditorActionListener给文本编辑框设置监听事件,但是在其处理方法onEditorAction中的逻辑在每次回车后都触发了两次, 原来是在 ...
- ionicModal中的监听事件
//添加监听事件angular.module('MyApp').directive('gotTapped', ['$ionicGesture', function($ionicGesture) { r ...
- js中的监听事件总结
javascript事件与功能说明大全:http://tools.jb51.net/table/javascript_event 1.滚动条监听事件 例1:监听滚动条距离页面顶端距离 <scri ...
- EventTrigger动态添加监听事件
在 Unity3D 中,通过拖拽的方式在 EventTrigger 组件中添加监听事件就不多说了,很简单.这里主要说的是通过代码动态往 EventTrigger 组件中添加监听事件,有个很坑的地方,就 ...
- vue v-on监听事件
在html或jsp页面中我们总能碰到监听DOM事件来触发javaScript代码,下面我们就简单聊聊Vue.js中的监听事件是怎么处理的. 在vue.js中监听事件是通过v-on指令来实现的,先看一下 ...
- Android中Button的五种监听事件
简单聊一下Android中Button的五种监听事件: 1.在布局文件中为button添加onClick属性,Activity实现其方法2.匿名内部类作为事件监听器类3.内部类作为监听器4.Activ ...
- Vue 为什么在 HTML 中监听事件?
为什么在 HTML 中监听事件? 你可能注意到这种事件监听的方式违背了关注点分离(separation of concern)传统理念.不必担心,因为所有的 Vue.js 事件处理方法和表达式都严格绑 ...
随机推荐
- Codeforces Round #320 (Div. 1) [Bayan Thanks-Round] B. "Or" Game
题目链接:http://codeforces.com/contest/578/problem/B 题目大意:现在有n个数,你可以对其进行k此操作,每次操作可以选择其中的任意一个数对其进行乘以x的操作. ...
- php跨域问题
http://www.cnblogs.com/xiezn/p/5651093.html
- syslogd日志简介***
1.什么是syslogd syslogd是一个守护进程,这个守护进程提供了一个记录特殊事件和消息的标准机制.通俗的讲,syslogd守护进程用于解决系统守护进程的日志记录问题. syslogd记录的日 ...
- DHCP(三)
选择阶段:即DHCP客户端选择IP地址的阶段.如果有多台DHCP服务器向该客户端发来DHCP Offer报文,客户端只接受第一个收到的DHCP Offer报文,然后以广播方式发送DHCP Reques ...
- Annotation之三:自定义注解示例,利用反射进行解析
@Retention定义了该Annotation被保留的时间长短有3中RetentionPolicy.SOURCE源文件有效,RetentionPolicy.CLASS:在class文件中有效,Ret ...
- 支付宝pc端支付接入PHP实现
引入支付宝接口 放入一个插件库中,方便管理 创建支付类 1.发起支付 public function init() { $order_id = $_REQUEST['order_id']; $orde ...
- postgresql 9.5 pgpool 主从复制 以及错误解决
PostgreSQL+pgpool-II复制方案 这里不做功能的描述,只写搭建的过程和遇到的一些问题 1 系统 [root@mysqlhq ~]# cat /etc/redhat-release Ky ...
- UE4事件相关总结
转自:http://blog.ch-wind.com/ue4-event-overview/ 事件机制是实现游戏内逻辑的重要部分,在开始进行游戏逻辑的设计和实现之前,对UE4的事件机制进行理解是非常必 ...
- a标签的四个伪类是什么?如何排序?为什么?
爱恨分明原则: l v h a 注释:为了产生预期的效果,在 CSS 定义中,a:hover 必须位于 a:link 和 a:visited 之后 ! 注释:为了产生预期的效果,在 CSS 定义中,a ...
- ADO.NET主要组件