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>
大功告成了。