Java中的Listener监听器
作者:李天炜 发布时间:[ 2016/12/9 15:00:15 ] 推荐标签:测试开发技术 Java
本文介绍了Listener以下几个方面的内容:
· Listener的定义与作用
· Listener的分类与使用
ServletContext监听
Session监听
Request监听
· Listener的应用实例
利用HttpSessionListener统计多在线用户人数
Spring使用ContextLoaderListener加载ApplicationContext配置信息
Spring使用Log4jConfigListener配置Log4j日志
Spring使用IntrospectorCleanupListener清理缓存
之前写了一篇关于Filter的文章 ,现在再来一篇Listener的,Filter和Listener在项目中是经常用到的,巧妙的使用可以达到事半功倍的效果。故把两者的用法总结一下。
Listener的定义与作用
监听器Listener是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。
Listener是Servlet的监听器,可以监听客户端的请求,服务端的操作等。
Listener的分类与使用
主要有以下三类:
ServletContext监听
ServletContextListener:用于对Servlet整个上下文进行监听(创建、销毁)。
//上下文初始化
publicvoidcontextInitialized(ServletContextEvent sce);
//上下文销毁
publicvoidcontextDestroyed(ServletContextEvent sce);
//ServletContextEvent事件:取得一个ServletContext(application)对象
publicServletContextgetServletContext();
ServletContextAttributeListener:对Servlet上下文属性的监听(增删改属性)。
//增加属性
publicvoidattributeAdded(ServletContextAttributeEvent scab);
//属性删除
publicvoidattributeRemoved(ServletContextAttributeEvent scab);
//属性替换(第二次设置同一属性)
publicvoidattributeRepalced(ServletContextAttributeEvent scab);
//ServletContextAttributeEvent事件:能取得设置属性的名称与内容
//得到属性名称
publicStringgetName();
//取得属性的值
publicObjectgetValue();
Session监听
Session属于http协议下的内容,接口位于javax.servlet.http.*包下。
HttpSessionListener接口:对Session的整体状态的监听。
//session创建
publicvoidsessionCreated(HttpSessionEvent se);
//session销毁
publicvoidsessionDestroyed(HttpSessionEvent se);
//HttpSessionEvent事件:
//取得当前操作的session
publicHttpSessiongetSession();
HttpSessionAttributeListener接口:对session的属性监听。
publicvoidattributeAdded(HttpSessionBindingEvent se);//增加属性
publicvoidattributeRemoved(HttpSessionBindingEvent se);//删除属性
publicvoidattributeReplaced(HttpSessionBindingEvent se);//替换属性
//HttpSessionBindingEvent事件:
publicStringgetName();//取得属性的名称
publicObjectgetValue();//取得属性的值
publicHttpSessiongetSession();//取得当前的session
session的销毁有两种情况:
1.session超时,web.xml配置:
<session-config>
<session-timeout>120</session-timeout><!--session120分钟后超时销毁-->
</session-config>
2.手工使session失效
//使session失效方法。session.invalidate();
publicvoidinvalidate();
Request监听
ServletRequestListener:用于对Request请求进行监听(创建、销毁)。
publicvoidrequestInitialized(ServletRequestEvent sre);//request初始化
publicvoidrequestDestroyed(ServletRequestEvent sre);//request销毁
//ServletRequestEvent事件:
publicServletRequestgetServletRequest();//取得一个ServletRequest对象
publicServletContextgetServletContext();//取得一个ServletContext(application)对象
ServletRequestAttributeListener:对Request属性的监听(增删改属性)。
publicvoidattributeAdded(ServletRequestAttributeEvent srae);//增加属性
publicvoidattributeRemoved(ServletRequestAttributeEvent srae);//属性删除
publicvoidattributeReplaced(ServletRequestAttributeEvent srae);//属性替换(第二次设置同一属性)
//ServletRequestAttributeEvent事件:能取得设置属性的名称与内容
publicStringgetName();//得到属性名称
publicObjectgetValue();//取得属性的值
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11