3.25


一)監(jiān)聽(tīng)器的概述

1、什么是監(jiān)聽(tīng)器

? ? 監(jiān)聽(tīng)器就是一個(gè)實(shí)現(xiàn)了特定接口的Java類郎笆,這個(gè)Java類用于監(jiān)聽(tīng)另一個(gè)Java類的方法調(diào)用题画,或者屬性的改變。當(dāng)被監(jiān)聽(tīng)對(duì)象發(fā)生上述事件后苍息,監(jiān)聽(tīng)器某個(gè)方法將會(huì)立即被執(zhí)行

2、監(jiān)聽(tīng)器的用途

? ? 用來(lái)監(jiān)聽(tīng)其他對(duì)象的變化的表谊,主要應(yīng)用在圖形化界面的開(kāi)發(fā)上

? ? 例如Java中的GUI盖喷、Android等,都有大量的監(jiān)聽(tīng)器的使用

3距辆、監(jiān)聽(tīng)器的術(shù)語(yǔ)

????事件源:指的是被監(jiān)聽(tīng)對(duì)象(汽車)

????監(jiān)聽(tīng)器:指的是監(jiān)聽(tīng)的對(duì)象(報(bào)警器)

????事件源和監(jiān)聽(tīng)器綁定:在汽車上安裝報(bào)警器

????事件:指的是事件源對(duì)象的改變(踹了汽車一腳),主要功能是獲得事件源對(duì)象

(二)監(jiān)聽(tīng)器的入門

1爆土、監(jiān)聽(tīng)器的入門程序


(三)Servlet中的監(jiān)聽(tīng)器

一诸蚕、Servlet中的監(jiān)聽(tīng)器簡(jiǎn)介

? ? 在Servlet中定義了多種類型的監(jiān)聽(tīng)器,它們用于監(jiān)聽(tīng)的事件源分別是ServletContext坏瘩、HttpSession和ServletRequest這三個(gè)域?qū)ο?/p>

二漠魏、Servlet中的監(jiān)聽(tīng)器的分類

1、一類:監(jiān)聽(tīng)三個(gè)域?qū)ο蟮膭?chuàng)建和銷毀的監(jiān)聽(tīng)器(三個(gè))

2破讨、二類:監(jiān)聽(tīng)三個(gè)域?qū)ο蟮膶傩宰兏▽傩蕴砑愚热摇⒁瞥⑻鎿Q)的監(jiān)聽(tīng)器(三個(gè))

3隙笆、三類:監(jiān)聽(tīng)HttpSession中JavaBean的狀態(tài)改變(鈍化升筏、活化、綁定您访、解除綁定)的監(jiān)聽(tīng)(兩個(gè))

(四)ServletContextListener監(jiān)聽(tīng)器的使用

一灵汪、ServletContextListener監(jiān)聽(tīng)器的作用

? ? 用來(lái)監(jiān)聽(tīng)ServletContext域?qū)ο蟮膭?chuàng)建和銷毀的監(jiān)聽(tīng)器

二、ServletContext創(chuàng)建和銷毀

1享言、創(chuàng)建:在服務(wù)器啟動(dòng)的時(shí)候,為每個(gè)Web應(yīng)用創(chuàng)建單獨(dú)的ServletContext對(duì)象

2荧琼、銷毀:在服務(wù)器關(guān)閉的時(shí)候,或者項(xiàng)目從Web服務(wù)器中移除的時(shí)候

三堰乔、ServletContextListener監(jiān)聽(tīng)器的方法

1累舷、監(jiān)聽(tīng)ServletContext對(duì)象的創(chuàng)建

?? ??? ?contextInitialized(ServletContextEvent sce)

2夹孔、監(jiān)聽(tīng)ServletContext對(duì)象的銷毀

?? ??? ?contextDestroyed(ServletContextEvent sce)

四、編寫監(jiān)聽(tīng)器

1只怎、監(jiān)聽(tīng)器的代碼

2怜俐、監(jiān)聽(tīng)器的配置

五、ServletContextListener的企業(yè)用途

1贴谎、加載框架的配置文件

Spring框架提供了一個(gè)核心監(jiān)聽(tīng)器叫ContextLoaderListener

2季稳、定時(shí)任務(wù)調(diào)度

(五)HttpSessionListener監(jiān)聽(tīng)器的使用

一、HttpSessionListener監(jiān)聽(tīng)器作用

? ? 用來(lái)監(jiān)聽(tīng)HttpSession對(duì)象的創(chuàng)建和銷毀

二仲翎、HttpSession創(chuàng)建和銷毀

? ? 創(chuàng)建:

?? ??? ?服務(wù)器端第一次調(diào)用getSession()方法的時(shí)候

? ? 銷毀:

?? ??? ?非正常關(guān)閉服務(wù)器(正常關(guān)閉服務(wù)器Session會(huì)被序列化)

?? ?? ? Session過(guò)期(默認(rèn)過(guò)期時(shí)間30分鐘)

?? ?? ? 手動(dòng)調(diào)用session.invalidate()方法

三铛漓、HttpSessionListener監(jiān)聽(tīng)器的方法

1、監(jiān)聽(tīng)HttpSession對(duì)象創(chuàng)建

????????sessionCreated(HttpSessionEvent se)

2玫坛、監(jiān)聽(tīng)HttpSession對(duì)象銷毀

????????sessionDestroyed(HttpSessionEvent se)

四包晰、編寫監(jiān)聽(tīng)器監(jiān)聽(tīng)HttpSession對(duì)象創(chuàng)建和銷毀

1、監(jiān)聽(tīng)器的代碼

2肠骆、監(jiān)聽(tīng)器的配置

3塞耕、問(wèn)題:

? ? 訪問(wèn)HTML是否會(huì)創(chuàng)建Session?

? ? 訪問(wèn)JSP是否會(huì)創(chuàng)建Session莉钙?

? ? 訪問(wèn)Servlet是否會(huì)創(chuàng)建Session?

(六)ServletRequestListener監(jiān)聽(tīng)器的使用

一停忿、ServletRequestListener監(jiān)聽(tīng)器的作用

? ? 用于監(jiān)聽(tīng)ServletRequest對(duì)象的創(chuàng)建和銷毀

二蚊伞、ServletRequest對(duì)象的創(chuàng)建和銷毀

? ? 創(chuàng)建:從客戶端向服務(wù)器發(fā)送一次請(qǐng)求,服務(wù)器就會(huì)創(chuàng)建Request對(duì)象

? ? 銷毀:服務(wù)器對(duì)這次請(qǐng)求作出了響應(yīng)之后颅停,Request對(duì)象就銷毀了

三掠拳、ServletRequestListener監(jiān)聽(tīng)器的方法

1、監(jiān)聽(tīng)ServletRequest對(duì)象的創(chuàng)建

?? ??? ?requestInitialized(ServletRequestEvent sre)

2喊熟、監(jiān)聽(tīng)ServletRequest對(duì)象的銷毀

?? ??? ?requestDestroyed(ServletRequestEvent sre)

四姐刁、編寫監(jiān)聽(tīng)器代碼

1、監(jiān)聽(tīng)器代碼

2胳泉、監(jiān)聽(tīng)器配置

3岩遗、問(wèn)題:

????訪問(wèn)HTML頁(yè)面是否創(chuàng)建請(qǐng)求對(duì)象?會(huì)

????訪問(wèn)JSP頁(yè)面是否創(chuàng)建請(qǐng)求對(duì)象案铺?會(huì)

????訪問(wèn)Servlet是否創(chuàng)建請(qǐng)求對(duì)象梆靖?會(huì)

(七)統(tǒng)計(jì)當(dāng)前在線人數(shù)的案例

?此時(shí)獲取初始值,進(jìn)行+1操作姑子。

?? ?如果Session銷毀了测僵,獲取該值進(jìn)行-1操作

二谢翎、代碼實(shí)現(xiàn)

1沐旨、創(chuàng)建ServletContextListener進(jìn)行初始化

2、創(chuàng)建HttpSessionListener

3褒侧、配置監(jiān)聽(tīng)器

4谊迄、創(chuàng)建JSP頁(yè)面

(八)監(jiān)聽(tīng)三個(gè)域?qū)ο蟮膶傩宰兏谋O(jiān)聽(tīng)器

一、三類監(jiān)聽(tīng)器

1这吻、ServletContextAttributeListener

監(jiān)聽(tīng)ServletContext對(duì)象中的屬性變更(屬性添加篙议、移除怠硼、替換)的監(jiān)聽(tīng)器

attributeAdded(ServletContextAttributeEvent event)

attributeRemoved(ServletContextAttributeEvent event)

attributeReplaced(ServletContextAttributeEvent event)

2、HttpSessionAttributeListener

監(jiān)聽(tīng)HttpSession對(duì)象中的屬性變更(屬性添加这难、移除葡秒、替換)的監(jiān)聽(tīng)器

attributeAdded(HttpSessionBindingEvent event)

attributeRemoved(HttpSessionBindingEvent event)

attributeReplaced(HttpSessionBindingEvent event)

3、ServletRequestAttributeListener

監(jiān)聽(tīng)ServletRequest對(duì)象中的屬性變更(屬性添加蹋岩、移除学少、替換)的監(jiān)聽(tīng)器

attributeAdded(ServletRequestAttributeEvent srae)

attributeRemoved(ServletRequestAttributeEvent srae)

attributeReplaced(ServletRequestAttributeEvent srae)

二版确、演示第二類監(jiān)聽(tīng)器

1、演示HttpSessionAttributeListener

2绒疗、配置監(jiān)聽(tīng)器

3、編寫測(cè)試的JSP

(九)監(jiān)聽(tīng)HttpSession中Java類狀態(tài)改變的監(jiān)聽(tīng)器

一惕虑、第三類監(jiān)聽(tīng)器概述

1、保存在Session域中的Java類可以有多種狀態(tài):綁定到Session中樱衷、從Session中解除綁定酒唉、隨Session對(duì)象持久化到一個(gè)存儲(chǔ)設(shè)備中(鈍化)、隨Session對(duì)象從一個(gè)存儲(chǔ)設(shè)備中恢復(fù)(活化)

2侄榴、Servlet規(guī)范中中定義了兩個(gè)特殊的監(jiān)聽(tīng)的接口网沾,來(lái)幫助Java類了解自己在Session域中的狀態(tài),分別是:

HttpSessionBindingListener接口

HttpSessionActivationListener接口

實(shí)現(xiàn)了這兩個(gè)接口的類桦山,是不需要在web.xml中進(jìn)行配置的

二醋旦、HttpSessionBindingListener監(jiān)聽(tīng)器

1、監(jiān)聽(tīng)Java類在HttpSession中的綁定和解除綁定的狀態(tài)的監(jiān)聽(tīng)器

?? ??? ?valueBound(HttpSessionBindingEvent event)

?? ??? ?valueUnbound(HttpSessionBindingEvent event)

2钉凌、測(cè)試代碼

三捂人、HttpSessionActivationListener監(jiān)聽(tīng)器

1、監(jiān)聽(tīng)HttpSession中Java類的鈍化和活化的監(jiān)聽(tīng)器

?? ??? ?sessionDidActivate(HttpSessionEvent se)

?? ??? ?sessionWillPassivate(HttpSessionEvent se)

2酸纲、測(cè)試代碼

3论熙、配置完成Session的序列化和反序列化

Context標(biāo)簽可以配置在:

Tomcat/conf/context.xml:所有Tomcat下虛擬主機(jī)和虛擬目錄下的工程都會(huì)序列化Session

Tomcat/conf/Catalina/localhost/context.xml:只有l(wèi)ocalhost虛擬主機(jī)下的所有項(xiàng)目會(huì)序列化Session

工程/META-INF/context.xml:只有當(dāng)前工程才會(huì)序列化Session

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脓诡,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宪迟,更是在濱河造成了極大的恐慌交惯,老刑警劉巖穿仪,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啊片,死亡現(xiàn)場(chǎng)離奇詭異玖像,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)笤昨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門握恳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人崇裁,你說(shuō)我怎么就攤上這事就珠。” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵逼侦,是天一觀的道長(zhǎng)腰耙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)晰赞,這世上最難降的妖魔是什么选侨? 我笑而不...
    開(kāi)封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮戏挡,結(jié)果婚禮上晨仑,老公的妹妹穿的比我還像新娘拆檬。我一直安慰自己妥凳,他們只是感情好逝钥,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著齐莲,像睡著了一般磷箕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芒填,一...
    開(kāi)封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天空繁,我揣著相機(jī)與錄音,去河邊找鬼闷祥。 笑死傲诵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的悟衩。 我是一名探鬼主播栓拜,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼幕与,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了纽门?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤饼齿,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后考传,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體证鸥,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡枉层,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年鸟蜡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揉忘。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泣矛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出您朽,到底是詐尸還是另有隱情,我是刑警寧澤哗总,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布美侦,位于F島的核電站,受9級(jí)特大地震影響魂奥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜易猫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一耻煤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧准颓,春花似錦哈蝇、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)样勃。三九已至吠勘,卻和暖如春性芬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剧防。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工植锉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人峭拘。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓俊庇,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鸡挠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辉饱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 半解《論語(yǔ)》 “一知半解”的“半解”。作者解一半拣展,讀者解一半彭沼;現(xiàn)在解一半,將來(lái)解一半瞎惫。 八佾第三 3.21哀公問(wèn)社...
    用力讀書用心做人閱讀 830評(píng)論 0 5
  • 先上這周完成的情況溜腐,上次是觸目驚心,這次是慘不忍睹9侠挺益! 3.18-3.24周總結(jié) 1、英語(yǔ)沒(méi)有學(xué)習(xí)乘寒,也沒(méi)有打卡望众,已...
    木林森_阿木閱讀 338評(píng)論 0 1
  • 充滿生機(jī)的晨光懷抱整片睡眼惺忪的大地,除了我伞辛,用力地蜷縮在一角烂翰。 枝頭間小鳥的嘰嘰喳喳不再動(dòng)聽(tīng),我為何突然對(duì)生活失...
    那一片林海閱讀 273評(píng)論 0 2
  • 同樣是霞同樣是光 你沒(méi)有春來(lái)時(shí)的嬌氣 你沒(méi)有夏臨時(shí)的火熱 你沒(méi)有冬去時(shí)的踉蹌 當(dāng)下你只有閑情爛漫 以至于不小心 在...
    渠江水長(zhǎng)流閱讀 433評(píng)論 7 18
  • 轉(zhuǎn)發(fā): 那是一個(gè)湖北外來(lái)同胞蚤氏,過(guò)完年51歲了甘耿,大年初二,他帶著兩個(gè)孩子老婆和朋友夫妻一起到雅戈?duì)杽?dòng)物園玩 的確是逃...
    gdlyz閱讀 360評(píng)論 0 0