监听器

监听器

概述

  • 监听器: 主要是用来监听特定对象的创建或销毁、属性的变化的!是一个实现特定接口的普通java类!
  • 对象:
    • 自己创建自己用 (不用监听)
    • 别人创建自己用 (需要监听)
  • servlet中哪些对象需要监听?

request / session /servletContext分别对应的是request监听器、session相关监听器、servletContext监听器

  • 监听器接口:
  1. 监听对象创建/销毁的监听器接口

Interface ServletRequestListener 监听request对象的创建或销毁

Interface HttpSessionListener 监听session对象的创建或销毁

Interface ServletContextListener 监听servletContext对象的创建或销毁

  1. 监听对象属性的变化

Interface ServletRequestAttributeListener 监听request对象属性变化:添加、移除、修改 Interface HttpSessionAttributeListener
监听session对象属性变化: 添加、移除、修改

Interface ServletContextAttributeListener 监听servletContext对象属性变化

  1. session相关监听器

Interface HttpSessionBindingListener 监听对象绑定到session上的事件 >>Interface HttpSessionActivationListener(了解) 监听session序列化及反序列化的事件

声明周期监听器: 监听对象的创建、销毁的过程!

  • 监听器开发步骤:
  1. 写一个普通java类,实现相关接口;
  2. 配置(web.xml)
  • ServletRequestListener

监听request对象的创建或销毁。

/**
 *  监听request对象的创建或销毁
 * @author csx
 *
 */publicclassMyRequestListenerimplementsServletRequestListener{

	// 对象销毁
	@Override
	publicvoidrequestDestroyed(ServletRequestEvent sre) {
		// 获取request中存放的数据
		Object obj = sre.getServletRequest().getAttribute("cn");
		System.out.println(obj);
		System.out.println("MyRequestListener.requestDestroyed()");
	}

	// 对象创建
	@Override
	publicvoidrequestInitialized(ServletRequestEvent sre) {
		System.out.println("MyRequestListener.requestInitialized()");
	}
}

Web.xml
<!-- 监听request对象创建、销毁 -->
	<listener>
		<listener-class>cn.csx.a_life.MyRequestListener</listener-class>
	</listener>
  • HttpSessionListener

监听session对象的创建或销毁。

  • ServletContextListener

监听servletContext对象的创建或销毁。

属性监听器

监听:request/session/servletContext对象属性的变化!

  • ServletRequestAttributeListener
  • HttpSessionAttributeListener
  • ServletContextAttributeListener

其他监听器: session相关监听器

监听对象绑定/解除绑定到sesison上的事件!

  • 步骤:

对象实现接口; 再把对象绑定/解除绑定到session上就会触发监听代码。

  • 作用:

(上线提醒!)

/**
 * 监听此对象绑定到session上的过程,需要实现session特定接口
 * @author csx
 *
 */publicclassAdminimplementsHttpSessionBindingListener {
   … 省略get/set// 对象放入session
	@Override
	publicvoidvalueBound(HttpSessionBindingEvent event) {
		System.out.println("Admin对象已经放入session");
	}
	// 对象从session中移除
	@Override
	publicvoidvalueUnbound(HttpSessionBindingEvent event) {
		System.out.println("Admin对象从session中移除!");
	}
}
  • 思考:

这个session监听器,和上面的声明周期、属性监听器区别?

不用再web.xml配置

因为监听的对象是自己创建的对象,不是服务器对象!

主要内容:本文详细介绍了一种QRBiLSTM(分位数回归双向长短期记忆网络)的时间序列区间预测方法。首先介绍了项目背景以及模型的优势,比如能够有效利用双向的信息,并对未来的趋势上限和下限做出估计。接着从数据生成出发讲述了具体的代码操作过程:数据预处理,搭建模型,进行训练,并最终可视化预测结果与计算分位数回归的边界线。提供的示例代码可以完全运行并且包含了数据生成环节,便于新手快速上手,深入学习。此外还指出了模型未来发展的方向,例如加入额外的输入特性和改善超参数配置等途径提高模型的表现。文中强调了时间序列的标准化和平稳检验,在样本划分阶段需要按时间序列顺序进行划分,并在训练阶段采取合适的手段预防过度拟合发生。 适合人群:对于希望学习和应用双向长短时记忆网络解决时序数据预测的初学者和具有一定基础的研究人员。尤其适用于有金融数据分析需求、需要做多一步或多步预测任务的从业者。 使用场景及目标:应用于金融市场波动预报、天气状况变化预测或是物流管理等多个领域内的决策支持。主要目的在于不仅能够提供精确的数值预计还能描绘出相应的区间概率图以增强结论置信程度。 补充说明:本教程通过一个由正弦信号加白噪构造而成的简单实例来指导大家理解和执行QRBiLSTM流程的所有关键步骤,这既方便于初学者跟踪学习,又有利于专业人士作为现有系统的补充参考工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值