要有這么一個(gè)監(jiān)聽器,當(dāng)加入session時(shí)就可以觸發(fā)一個(gè)加入session事件,在session過期時(shí)就可以觸發(fā)一個(gè)刪除事件,那么我們的把要處理的東西加入到這兩個(gè)事件中就可以做很多于SESSION相關(guān)連的事。如在線用戶的管理,單點(diǎn)登陸等等。
在J2EE中可以實(shí)現(xiàn)HttpSessionBindingListener接口,此接口有兩要實(shí)現(xiàn)的方法。
void valueBound(HttpSessionBindingEvent event) 當(dāng)實(shí)現(xiàn)此接口的監(jiān)聽類和session綁定時(shí)觸發(fā)此事件。
void valueUnbound(HttpSessionBindingEvent event) 當(dāng)session過期或?qū)崿F(xiàn)此接口的監(jiān)聽類卸裁時(shí)觸發(fā)此事件。
下面是一個(gè)示例解決方案:可以把登陸用戶的信息記錄在緩沖池中,當(dāng)SESSION過期時(shí),用戶信息自動(dòng)刪除。
一個(gè)用戶信息接口。一個(gè)用戶緩沖池。一個(gè)HttpSessionBindingListener接口的監(jiān)聽類。











































































































這樣子的話,當(dāng)在應(yīng)用中把userLoginListener加入到session中時(shí),就會(huì)自動(dòng)把用戶信息加入到緩沖池中了。
如:
session.setAttribute("userLoginListener",userLoginListener);
(原創(chuàng),轉(zhuǎn)載請保留文章出處http://www.aygfsteel.com/bnlovebn/archive/2007/07/04/128006.html)