您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“Servlet監(jiān)聽器怎么實現(xiàn)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Servlet監(jiān)聽器怎么實現(xiàn)”吧!
1)概念:
1)監(jiān)聽ServletContext、HttpSession和ServletRequest等域?qū)ο蟮膭?chuàng)建事件、銷毀事件、域?qū)ο笾袑傩园l(fā)生改變的事件。 2)當域?qū)ο蟮臓顟B(tài)發(fā)生變化的時候,服務(wù)器自動調(diào)用監(jiān)聽器對象中的方法。
2)監(jiān)聽對象:
1)ServletContext 2)HttpSession 3)ServletRequest
3)監(jiān)聽內(nèi)容:
監(jiān)聽對象的創(chuàng)建、銷毀以及對象屬性發(fā)生改變的事件
4)分類:
按監(jiān)聽的對象劃分: 1)ServletContext對象監(jiān)聽器: 實現(xiàn)ServletContextListener、ServletContextAttributeListener接口 應(yīng)用:作為定時器、加載全局屬性對象、創(chuàng)建全局數(shù)據(jù)庫連接、加載緩存信息等 2)HttpSession對象監(jiān)聽器: 實現(xiàn)HttpSessionListener、HttpSessionAttributeListener接口 web.xml中配置session超時時間(單位:分): <session-config> <session-timeout>10</session-timeout> </session-config> 應(yīng)用:統(tǒng)計在線人數(shù)、記錄訪問日志等 3)ServletRequest對象監(jiān)聽器: 實現(xiàn)ServletRequestListener、ServletRequestAttributeListener接口 應(yīng)用:讀取request參數(shù),記錄訪問歷史 按監(jiān)聽的事件劃分: 1)監(jiān)聽域?qū)ο蟮膭?chuàng)建事件、銷毀事件的監(jiān)聽器: 實現(xiàn)ServletContextListener、HttpSessionListener、ServletRequestListener接口 2)監(jiān)聽域?qū)ο笾袑傩缘脑黾邮录?、屬性的刪除事件的監(jiān)聽器: 實現(xiàn)ServletContextAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener接口。 3)監(jiān)聽綁定到HttpSeesion中的某個對象的狀態(tài)變化事件的監(jiān)聽器(創(chuàng)建普通JavaBean): 實現(xiàn)接口及方法:HttpSessionBindingListener接口(valueBound和valueUnbound方法)、HttpSessionActivationListener接口(sessionWillPassivate和sessionDidActivate方法) HttpSession中的對象狀態(tài): 綁定: 通過setAttribute()方法將bean保存到session對象中 解除綁定: 通過removeAttribue()方法解除綁定 鈍化(序列化): 將session對象持久化到存儲設(shè)備上 活化(反序列化): 將session對象從存儲設(shè)備上進行恢復 session鈍化機制: 1)把服務(wù)器不常使用的session對象暫時序列化到系統(tǒng)文件或者是數(shù)據(jù)庫中,當使用時反序列化到內(nèi)存中,整個過程由服務(wù)器自動完成; 2)session的鈍化機制由SessionManager管理,創(chuàng)建一個普通的JavaBean綁定和解除需要實現(xiàn)HttpSessionBindingListener接口 3)JavaBean必須實現(xiàn)Serializable接口
5)實現(xiàn):
web.xml <listener> <listener-class>完整類名</listener-class> </listener> 舉例: <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <session-config> <session-timeout>60</session-timeout> </session-config> 監(jiān)聽器的啟動順序:按照web.xml的配置順序來啟動
6)注意:
加載順序:監(jiān)聽器>過濾器>Servlet
到此,相信大家對“Servlet監(jiān)聽器怎么實現(xiàn)”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。