首页 / JAVA / JavaWeb 监听器
JavaWeb 监听器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaWeb 监听器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3705字,纯文字阅读大概需要6分钟。
内容图文
![JavaWeb 监听器](/upload/InfoBanner/zyjiaocheng/639/5fbb7b0aa1354acf929c53f32653fe1a.jpg)
Listener
Listener简介
Listener中文名为监听器,是javaWeb的三大组件之一,Servlet,Filter,Listener。
监听器监听事件的发生,当事件发生时,触发相应的处理函数。
监听器可以监听什么
监听器监听以下三个对象
- ServletRequest,请求对象
- ServletContext,代表当前整个web应用。
- HttpSession,session对象
监听器的种类
共有8个监听器,分为3大类。8个监听器都是接口。
- 生命周期监听器,监听三个对象的生命周期(创建到销毁)
- ServletContextListener
- ServletRequestListener
- HttpSessionListener
- 属性监听器,监听三个对象中属性的增删改。
当调用setAttribute()增 ,removeAttribute删,setAttribute改。- ServletContextAttributeListener
- ServletRequestAttributeListener
- HttpSessionAttributeListener
- session固有监听器
- HttpSessionActivationListener 监听Session活化钝化
- HttpSessionBindingListener 监听一个对象是否绑定到Session(保存在Session中)
监听器的使用方法
- 实现相应监听器的接口
public class RequestLifeListener implements ServletRequestListener{
@Override
public void requestDestroyed(ServletRequestEvent sre){
//请求结束销毁
//sre的作用
//1.获取servletContext
//2.获取servletRequest,获取当前的请求
sre.getServletRequest();
}
@Override
public void requestInitialized(ServletRequestEvent sre){
//发送请求初始化
}
}
- 在web.xml文件中配置
<listener>
<!--全类名-->
<listener-class>这里写全类名</listener-class>
</listener>
其他监听器的简单介绍
ServletContextListener
ServletContext应用启动创建,应用卸载销毁
public class ContextLifeListener implements ServletContextListener{
@Override
public void requestDestroyed(ServletContextEvent sre){
//应用启动创建
}
@Override
public void requestInitialized(ServletContextEvent sre){
//应用卸载销毁
}
}
HttpSessionListener
HttpSession新会话进来的时候创建对象,session失效的方法1. 强制失效,2 超时失效
public class SessionLifeListener implements HttpSessionListener{
@Override
public void sessionCreated(HttpSessionEvent se){
//新会话进来的时候创建对象
}
@Override
public void sessionDestroyed(HttpSessionEvent se){
//session失效
}
}
request域中属性变化
public class RequestAttributeListener implements ServletRequestAttributeListener{
@Override
public void attributeAdded(ServletRequestAttributeEvent srae){
System.out.println("request域中增加属性");
//增加的属性名
String name = srae.getName();
//增加的属性的值
Object object = srae.getValue();
}
@Override
public void attributeRemoved(ServletRequestAttributeEvent srae){
//在request移除属性的时候调用此方法
System.out.println("request域中移除属性");
}
@Override
public void attributeReplaces(ServletRequestAttributeEvent srae){
//在request替换属性的时候调用此方法。
//srae中的getValue()获得旧值。
//要获得新值可以通过rquest获得
System.out.println("request域中替换属性");
}
}
其他两种属性变换域request大体相同。
HttpSessionActivationListener
该监听器用于监听钝化和活化。可以监听Session中某个对象的钝化和活化。
//如果Session保存了Student对象,而我们要监听Student的钝化和活化,那么我们需要对Student做如下操作
public class Student implements HttpSessionActivationListener,Serializable{
//序列号
//属性,构造器,setter(),getter()方法。
//下面是HttpSessionActivationListener接口的方法
@Override
public void sessionWillPassivate(HttpSessionEvent se){
System.out.println("我和session一起钝化了");
//se可以获得Session
}
@Override
public void sessionDidActivate(HttpSessionEvent se){
System.out.println("我和session一起活化了");
}
}
HttpSessionBindingListener 监听一个对象是否保存在Session中
与上面的HttpSessionActivationListener使用方法基本相同。
//如果Session保存了Student对象,而我们要监听Student的钝化和活化,那么我们需要对Student做如下操作
public class Student implements HttpSessionBindingListener{
@Override
public void valueBound(HttpSessionBindindEvent event){
System.out.println("对象绑定在Session中了");
}
@Override
public void valueUnBound(HttpSessionBindindEvent event){
System.out.println("对象从Session中解绑了");
//Session失效也算解绑.
}
}
内容总结
以上是互联网集市为您收集整理的JavaWeb 监听器全部内容,希望文章能够帮你解决JavaWeb 监听器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。