HttpSessionListener    接口用于監(jiān)聽HttpSession的創(chuàng)建和消除,使用這個接口,我們可以統(tǒng)計在線用戶和登錄用戶的信息。方法的實現(xiàn)有很多種,這里介紹使用數(shù)據(jù)庫保存用戶的信息。

        建立一張表,包含兩個字段:HttpSessionId和用戶的Id。當(dāng)有新的HttpSession創(chuàng)建時,把新創(chuàng)建的HttpSessionId插入到該表中,如果該用戶登錄,則修改相應(yīng)的HttpSessionId的用戶Id為當(dāng)前用戶Id。當(dāng)HttpSession失效時,則刪除掉表中的相應(yīng)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文件中配置一下監(jiān)聽器:

        <listener>
          <display-name>listener</display-name>
          <listener-class>info.OnlineUser</listener-class>
         </listener>

         大功告成了。