javaweb之监听器实现在线人数
javaweb使用监听器记录访问人数
·
javaweb之监听器实现在线人数
1.创建监听器
自定义一个监听器实现HttpSessionListener
接口,如果不同的用户进行登录访问,则记录用户个数,如果用户退出了,则减少人数。对应其session的创建和销毁。
@WebListener
public class CountOnlineListener implements HttpSessionListener {
@Override
//===================用户登录 记录个数==============================
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
HttpSession session = httpSessionEvent.getSession();
System.out.println("session对象创建了"+session);
ServletContext application = session.getServletContext();
Integer onlineUsers =(Integer) application.getAttribute("onlineUsers");
if(onlineUsers==null){
onlineUsers=new Integer(1);
}else {
onlineUsers=onlineUsers+1;
}
application.setAttribute("onlineUsers",onlineUsers);
System.out.println("在线人数:"+onlineUsers);
}
@Override
//=================用户退出 减少人数=========================
public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
System.out.println("session对象销毁了"+httpSessionEvent.getSession());
HttpSession session = httpSessionEvent.getSession();
ServletContext application = session.getServletContext();
/*Integer onlineUsers =(Integer) application.getAttribute("onlineUsers");
if(onlineUsers!=null && onlineUsers.intValue()>0){
onlineUsers=onlineUsers-1;
}*/
Integer onlineUsers =(Integer) application.getAttribute("onlineUsers");
onlineUsers--;
application.setAttribute("onlineUsers",onlineUsers);
System.out.println("在线人数:"+onlineUsers);
}
2.页面展示数据
注意:访问的是jsp页面,jsp被编译成java代码,其session会帮我们自动创建好.
<p>在线人数:${applicationScope.onlineUsers}</p>
更多推荐
已为社区贡献1条内容
所有评论(0)