要有這么一個(gè)監(jiān)聽(tīng)器,當(dāng)加入session時(shí)就可以觸發(fā)一個(gè)加入session事件,在session過(guò)期時(shí)就可以觸發(fā)一個(gè)刪除事件,那么我們的把要處理的東西加入到這兩個(gè)事件中就可以做很多于SESSION相關(guān)連的事。如在線用戶(hù)的管理,單點(diǎn)登陸等等。在J2EE中可以實(shí)現(xiàn)HttpSessionBindingListener接口,此接口有兩要實(shí)現(xiàn)的方法。 void valueBound(HttpSessionBindingEvent event) 當(dāng)實(shí)現(xiàn)此接口的監(jiān)聽(tīng)類(lèi)和session綁定時(shí)觸發(fā)此事件。void valueUnbound(HttpSessionBindingEvent event) 當(dāng)session過(guò)期或?qū)崿F(xiàn)此接口的監(jiān)聽(tīng)類(lèi)卸裁時(shí)觸發(fā)此事件。下面是一個(gè)示例解決方案:可以把登陸用戶(hù)的信息記錄在緩沖池中,當(dāng)SESSION過(guò)期時(shí),用戶(hù)信息自動(dòng)刪除。一個(gè)用戶(hù)信息接口。一個(gè)用戶(hù)緩沖池。一個(gè)HttpSessionBindingListener接口的監(jiān)聽(tīng)類(lèi)。
這樣子的話,當(dāng)在應(yīng)用中把userLoginListener加入到session中時(shí),就會(huì)自動(dòng)把用戶(hù)信息加入到緩沖池中了。如: session.setAttribute("userLoginListener",userLoginListener);(原創(chuàng),轉(zhuǎn)載請(qǐng)保留文章出處http://www.tkk7.com/bnlovebn/archive/2007/07/04/128006.html)