HttpSessionListener 接口用于监听HttpSession的创建和消除,使用这个接口,我们可以统计在线用户和登录用户的信息。方法的实现有很多种,这里介绍使用数据库保存用户的信息。
建立一张表,包含两个字段:HttpSessionId和用户的Id。当有新的HttpSession创建时,把新创建的HttpSessionId插入到该表中,如果该用户登录,则修改相应的HttpSessionId的用户Id为当前用户Id。当HttpSession失效时,则删除掉表中的相应HttpSessionId的记录。
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class OnlineUser implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("又有人登录了。");
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("又有人退出了。");
}
}
最后,还要在web.xml文件中配置一下监听器:
<listener>
<display-name>listener</display-name>
<listener-class>info.OnlineUser</listener-class>
</listener>
大功告成了。