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>

         大功告成了。