使用HttpSessionBindingListener统计在线人数
2014-06-13 10:24
549 查看
使用HttpSessionBindingListener统计在线人数
统计在线认识可以使用HttpSessionBindingListener和HttpSessionListener两种方式,
其中HttpSessionListener监听session的创建(sessionCreated(HttpSessionEvent event))和销毁(sessionDestroyed(HttpSessionEvent event)),通过在这两个方法中可以对在线人数进行统计,记得要在web.xml中配置监听器
HttpSessionBindingListener比HttpSessionListener更加的灵活,因为HttpSessionListener是通过在web.xml中配置一次就可以监听整个项目中的session,而HttpSessionBindingListener是必须要实例化后放入session中才能被监听,这样就可以让每一个user对应一个Listener,更加便于维护和操作
下面来通过代码展示下HttpSessionBindingListener的统计方式
通过上面的代码实现了HttpSessionBindingListener对session的数据绑定和取消,那么如何调用呢?
HttsSessionListener是通过在web.xml中进行配置,然后每次session的创建和销毁就可以监听到,
HttpSessionBindingListener是通过下面这种方式,就是前面刚说的必须要实例化后放入session中才可以,
因此我我们就需要在页面或是代码中做这样的操作:
不需要再web.xml中进行配置,这样就实现了使用HttpSessionBindingListener对在线人数的统计
统计在线认识可以使用HttpSessionBindingListener和HttpSessionListener两种方式,
其中HttpSessionListener监听session的创建(sessionCreated(HttpSessionEvent event))和销毁(sessionDestroyed(HttpSessionEvent event)),通过在这两个方法中可以对在线人数进行统计,记得要在web.xml中配置监听器
HttpSessionBindingListener比HttpSessionListener更加的灵活,因为HttpSessionListener是通过在web.xml中配置一次就可以监听整个项目中的session,而HttpSessionBindingListener是必须要实例化后放入session中才能被监听,这样就可以让每一个user对应一个Listener,更加便于维护和操作
下面来通过代码展示下HttpSessionBindingListener的统计方式
import java.util.ArrayList; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingListener; /** * * @author Administrator * */ public class SessionListener implements HttpSessionBindingListener { private String userName; public SessionListener(){ } public SessionListener(String userName){ this.userName = userName; } /* * session数据绑定 * @see javax.servlet.http.HttpSessionBindingListener#valueBound(javax.servlet.http.HttpSessionBindingEvent) */ public void valueBound(HttpSessionBindingEvent event) { HttpSession session = event.getSession(); ServletContext application = session.getServletContext(); List onLineList = (List) application.getAttribute("onLineList"); if(onLineList == null){ onLineList = new ArrayList(); application.setAttribute("onLineList", onLineList); } onLineList.add(this.userName); } /* * session数据绑定取消 * @see javax.servlet.http.HttpSessionBindingListener#valueUnbound(javax.servlet.http.HttpSessionBindingEvent) */ public void valueUnbound(HttpSessionBindingEvent event) { HttpSession session = event.getSession(); ServletContext application = session.getServletContext(); List onLineList = (List) application.getAttribute("onLineList"); onLineList.remove(this.userName); } }
通过上面的代码实现了HttpSessionBindingListener对session的数据绑定和取消,那么如何调用呢?
HttsSessionListener是通过在web.xml中进行配置,然后每次session的创建和销毁就可以监听到,
HttpSessionBindingListener是通过下面这种方式,就是前面刚说的必须要实例化后放入session中才可以,
因此我我们就需要在页面或是代码中做这样的操作:
// 获取用户名 String userName = request.getParameter("userName"); // 实例化HttpSessionBindingListener对象放入到session中实现监听,将用户名存放至在线列表, session.setAttribute("onlineUser", new SessionListener(userName));
不需要再web.xml中进行配置,这样就实现了使用HttpSessionBindingListener对在线人数的统计
相关文章推荐
- java session HttpSessionListener、HttpSessionBindingListener使用区别,实现在线人数统计以及踢出用户
- java session HttpSessionListener、HttpSessionBindingListener使用区别,实现在线人数统计以及踢出用户
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- [转]用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- Jsp使用HttpSessionBindingListener实现在线人数记录
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 使用HttpSessionListener接口监听Session的创建和失效(可以用于统计在线人数)
- HttpSessionBindingListener接口在线人数统计
- J2EE中统计当前在线人数——HttpSessionBindingListener和HttpSessionListener
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计[转]
- Jsp使用HttpSessionBindingListener实现在线人数记录
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计
- 用HttpSessionListener与HttpSessionBindingListener实现在线人数统计