1. 實現(xiàn)HttpSessionListener接口
監(jiān)聽HttpSession的操作正罢,主要是實現(xiàn)HttpSessionListener
。功能是:
- 監(jiān)聽HttpSession的操作斥杜。
- 創(chuàng)建一個Session時忆谓,激發(fā)
sessionCreateed
方法; - 銷毀一個Session時溜族,激發(fā)
sessionDestroyed
方法晕粪。
2. 實現(xiàn)HTTPSessionAttributeListener接口
- 監(jiān)聽HttpSession中的屬性操作挤悉。包括:
- 屬性的增加(
attributedAdded
方法); - 屬性的刪除(
attributedRemoved
方法)巫湘; - 屬性的修改(
attributedReplaced
方法)装悲。
- 屬性的增加(
實現(xiàn)方法
- 新建一個類,實現(xiàn)
HttpSessionListener
或者HTTPSessionAttributeListener
接口尚氛。
這兩個接口在
http
包中诀诊。
- 重寫接口里面的方法,當(dāng)這些事件被調(diào)用的時候阅嘶,執(zhí)行自定義的操作属瓣。
- 在
web.xml
中進(jìn)行監(jiān)聽器的注冊。
3. 實現(xiàn)HttpSessionBindingListener
該事件不需要配置xml文件讯柔,對HttpSessionBingdingListener對象所對應(yīng)的session進(jìn)行監(jiān)聽奠涌。
包含的兩個函數(shù):
-
valueUnbound
方法將被以下任意條件下觸發(fā):- 執(zhí)行
session.setAttribute(uocl",非uocl對象)
時; - 執(zhí)行
session.removeAttribute("uocl")
時磷杏; - 執(zhí)行
session.invalidate()
時; - 執(zhí)行
session
超時后捏卓。
- 執(zhí)行
和其他監(jiān)聽器的區(qū)別
-
HttpSessionListener
只需要設(shè)置到了web.xml
中就可有監(jiān)聽整個應(yīng)用中的所有session极祸。
+HttpSessionBindingListener
必須實例化后放入某一個session中,才可以進(jìn)行監(jiān)聽怠晴,因此和session是一對一的遥金。
實現(xiàn)方法
- 新建一個類,實現(xiàn)HttpSessionBindingListener蒜田。
- 實現(xiàn)接口內(nèi)valueBound等方法稿械,實現(xiàn)自定義的操作。
- 在要監(jiān)聽的Session的Servlet的定義中冲粤,導(dǎo)入該監(jiān)聽類美莫,并實例化一個對象页眯。此時發(fā)布后的應(yīng)用就可以實現(xiàn)一對一的綁定監(jiān)聽了。
// 在session的servlet定義中實例化一個監(jiān)聽器
MyListener myListener = new MyListener();