监听器Listener

web 监听器是一种 Servlet 中的特殊的类,它们能帮助开发者监听 web 中的特定事件,比如 ServletContext,HttpSession,ServletRequest 的创建和销毁;变量的创建、销毁和修改等。可以在某些 动作前后增加处理,实现监控。例如可以用来统计在线人数等。

监听器有三类8种:

⑴监听生命周期(三个域对象的创建和销毁):实现接口 ServletRequestListener、 HttpSessionListener 、ServletContextListener

⑵监听值的变化(属性添加,移除,替换):实现接口 ServletRequestAttributeListener、 HttpSessionAttributeListener、ServletContextAttributeListener

⑶针对 session 中的对象:监听 session 中的 java 对象(javaBean),javaBean 直接实现监听器的 接口 HttpSessionBindingListener、HttpSessionActivationListener。这里我们只做一个简单的演示。 假设我们想做一个对在线人数的监控。

实现步骤

  1. 创建一个监听器,需要实现某种接口,根据需求选取 HttpSessionListener
  2. 在 web.xml 中配置该监听器

创建一个类,并实现 HttpSessionListener 接口,用来检测 Session 的创建和销毁。

//定义一个成员变量,计算session个数
	int onlinepeople = 0;
	@Override
	public void sessionCreated(HttpSessionEvent se) {
		//监听session的创建
		//不同用户有不同的session,需创建ServletContext对象,以获得更大的作用域范围
		onlinepeople++;
		//数值存入setvletcontext中
		se.getSession().getServletContext().setAttribute("onlinePeople", onlinepeople);
	}

	@Override
	public void sessionDestroyed(HttpSessionEvent se) {
		//监听session的销毁
		//正常关闭服务器不会销毁,因为会自动序列化到本地
		onlinepeople--;
		se.getSession().getServletContext().setAttribute("onlinepeople", onlinepeople);
		
	}

在 web.xml 中配置该监听器,让监听器生效

 <listener>
    <listener-class>com.mage.listener.TestListener01</listener-class>
  </listener>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值