session的监听器

javax.servlet.http.HttpSession 这个类是很常用的,每当我们浏览网站,不论有没有登陆,都会产生1个session,它记录了和浏览者相关的数据;

 

下面介绍session的2个监听器接口:

 

1)javax.servlet.http.HttpSessionBindingListener;

 实现这个接口的类,每当被存放到session或从session中移除都会出发接口中相应的方法,从而实现监听的效果;

 

2)javax.servlet.http.HttpSessionListener;

实现这个接口的类,本身就是1个监听器,每当有session生成或消亡时,都触发接口中相应的方法,从而实现监听器的效果;

HttpSessionListener 的实现类本身就是一个监听器,要使用它需要在 web.xml 中启动这个监听器,例如

 <listener>
  <listener-class>mypackage.MySessionListener</listener-class>
 </listener>

 

应用:

实时计算当前在线 session 个数(或者模糊的说成是当前在线人数)的功能,就可以通过该监听器来实现;

 

3)这2个监听器是有区别的

前者的触发取决于 session 中加入的属性;

后者的触发取决于 session 本身的产生和消亡;

 

4)注意

如果使用了spring容器,由于监听器的启动早于spring容器,因此无法将spring容器中的bean注入到监听器,只能在监听器类中手动的获得 spring容器,然后再从spring容器中获得所需的bean;比如:
  UserDao dao = (UserDao) WebApplicationContextUtils.getWebApplicationContext(
    session.getServletContext()).getBean("userDaoImpl");

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值