javaweb中的事件监听

Javaweb事件监听

HttpServletRequest对象

ServletContext对象

HttpSession对象

监听的是绑定的对象的变化:

1.对象的创建与销毁

2.域中保存的值得变化

注意: 使用监听器 需要在web.xml中配置

<!-- 注册监听器 -->
  <listener>
  	<listener-class>com.lanou3g.MyServletContextListener</listener-class>
  </listener>
监听对象的创建和销毁

  ServletContextListener

  HttpSessionListener

  ServletRequestListener

  --- 访问网址 就创建Request对象

      访问结束 该对象消失

ServletContextListener接口:

实现contextInitialized方法--- 初始化方法 启动项牧师就会自动初始化

contextDestroyed 销毁方法 --- stop项目时销毁

HttpSessionListener接口:

实现sessionCreated 创建

sessionDestroyed 销毁

ServletRequestListener接口:

attributeAdded 添加绑定事件

attributeRemoved 删除绑定事件

attributeReplaced 替换绑定

监听域对象中属性值的变化

  ServletContextAttributeListener

  HttpSessionAttributeListener

  ServletRequestAttributeListener

监听session中绑定了自定义对象的值的变化

  HttpSessionBindingListener

注意: 实现该接口 不用去web.xml中配置

注意: 该接口需要被绑定的对象的类(被添加到session域中的类) 来实现该接口

实现valueBound方法    绑定对象

实现valueUnbound方法  解除绑定

定时器

作用: 定时执行任务

Timer timer = new Timer();
// 参数1: task接口的实现类的对象
// 参数2: 延迟多少毫秒执行
// 参数3: 间隔多少毫秒执行一次
timer.schedule(new TimerTask() {
			
	@Override
	public void run() {
	    // 执行的任务
	    Date date = new Date();		 
           System.out.println(date.toLocaleString());			
	}
}, 2000, 5000);

需求:

 * 定时销毁session(5秒 销毁一次)

 * 思路:

 * 1.把所有创建出来的session保存起来---保存在哪?

 *  ServletContext (那个类都能获取到)

 *   把所有session对象放数组里 把数组保存到域中

 *   ---什么时候创建数组?

 *   当ServletContext对象初始化的时候 创建数组

 *   通过监听类--初始化监听方法时--触发创建一个数组

 *   ---什么时候把session对象放到数组中

 *   当Session对象创建时 把对象方数组中

 * 2.遍历所有保存起来的session对象

 *   查看session 5秒没有用 就让该session失效                         

 *   获取最后session没有使用的时间

 *   1970.1.1到没使用时间的毫秒数

 *   System.currentTimeMillis()

 *   -

 *   long getLastAccessedTime() == 5000;   








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值