最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Java三十六篇:初識(shí)Listener

2023-03-12 11:03 作者:小劉Java之路  | 我要投稿

Java三十六篇:初識(shí)Listener

1.什么是監(jiān)聽器?

Listener:監(jiān)聽器,是 Servlet 中一種比較特殊的類,能幫助開發(fā)者監(jiān)聽 web 中的特定事件,如 ServletContext、HttpSession、ServletRequest 的創(chuàng)建和銷毀;變量的創(chuàng)建、銷毀和修改等;也可以在某些動(dòng)作前后增加處理,實(shí)現(xiàn)監(jiān)控

監(jiān)聽器就是監(jiān)聽某個(gè)對象的的狀態(tài)變化的組件

監(jiān)聽器的相關(guān)概念:

事件源:被監(jiān)聽的對象 ?----- 三個(gè)域?qū)ο?request ?session ?servletContext

監(jiān)聽器:監(jiān)聽事件源對象 ?事件源對象的狀態(tài)的變化都會(huì)觸發(fā)監(jiān)聽器

注冊監(jiān)聽器:將監(jiān)聽器與事件源進(jìn)行綁定

響應(yīng)行為:監(jiān)聽器監(jiān)聽到事件源的狀態(tài)變化時(shí) 所涉及的功能代碼 ---- 程序員編寫代 碼

2.監(jiān)聽器有哪些?

第一維度:按照被監(jiān)聽的對象劃分:ServletRequest域 ?HttpSession域 ? ServletContext域

第二維度:監(jiān)聽的內(nèi)容分:監(jiān)聽域?qū)ο蟮膭?chuàng)建與銷毀的 ? 監(jiān)聽域?qū)ο蟮膶傩宰?化的

img

監(jiān)控器的分類:

  • 監(jiān)聽生命周期:監(jiān)聽三大域?qū)ο蟮膭?chuàng)建和銷毀,當(dāng) tomcat 創(chuàng)建或銷毀這三大域?qū)ο髸r(shí),會(huì)執(zhí)行相應(yīng)的操作


    • ServletRequestListener:瀏覽器發(fā)起請求時(shí)創(chuàng)建 ServletRequest

    • HttpSessionListener:調(diào)用 request.getSession() 時(shí)服務(wù)器不存在當(dāng)前請求的 JSESSIONID 創(chuàng)建 HttpSession


    • ServletContextListener:項(xiàng)目啟動(dòng)時(shí)創(chuàng)建 ServletContext

  • 監(jiān)聽屬性值的變化:監(jiān)聽三大域?qū)ο骻et/setAttribute(),當(dāng)給域?qū)ο笤O(shè)置或取值時(shí)會(huì)被監(jiān)聽到,并作相應(yīng)的處理


    • ServletRequestAttributeListener

    • HttpSessionAttributeListener


    • ServletContextAttributeListener

  • 針對 session 的對象:


    • HttpSessionBindingListener、HttpSessionActivationListener:監(jiān)聽 session 中的 java 對象(javaBean),是 javaBean 直接實(shí)現(xiàn)監(jiān)聽器的接口

3.監(jiān)聽三大域?qū)ο蟮膭?chuàng)建與銷毀的監(jiān)聽器

(1)監(jiān)聽ServletContext域的創(chuàng)建與銷毀的監(jiān)聽器ServletContextListener

1)Servlet域的生命周期

何時(shí)創(chuàng)建:服務(wù)器啟動(dòng)創(chuàng)建

何時(shí)銷毀:服務(wù)器關(guān)閉銷毀

2)監(jiān)聽器的編寫步驟(重點(diǎn)):

a、編寫一個(gè)監(jiān)聽器類去實(shí)現(xiàn)監(jiān)聽器接口

b、覆蓋監(jiān)聽器的方法

c、需要在web.xml中進(jìn)行配置---注冊

3)監(jiān)聽的方法:

img

4)配置文件:

img

5)ServletContextListener監(jiān)聽器的主要作用

a、初始化的工作:初始化對象 初始化數(shù)據(jù) ---- 加載數(shù)據(jù)庫驅(qū)動(dòng) ?連接池的初始 化

b、加載一些初始化的配置文件 --- spring的配置文件

img

c、任務(wù)調(diào)度----定時(shí)器----Timer/TimerTask

img

(2)監(jiān)聽Httpsession域的創(chuàng)建于銷毀的監(jiān)聽器HttpSessionListener

1)HttpSession對象的生命周期

何時(shí)創(chuàng)建:第一次調(diào)用request.getSession時(shí)創(chuàng)建

何時(shí)銷毀:服務(wù)器關(guān)閉銷毀 ?session過期 ?手動(dòng)銷毀

2)HttpSessionListener的方法

img

(3)監(jiān)聽ServletRequest域創(chuàng)建與銷毀的監(jiān)聽器ServletRequestListener

1)ServletRequest的生命周期

創(chuàng)建:每一次請求都會(huì)創(chuàng)建request

銷毀:請求結(jié)束

2)ServletRequestListener的方法

img

4.監(jiān)聽三大域?qū)ο蟮膶傩宰兓?/h1>

(1)域?qū)ο蟮耐ㄓ玫姆椒ǎ?/h1>

setAttribute(name,value)

--- 觸發(fā)添加屬性的監(jiān)聽器的方法

--- 觸發(fā)修改屬性的監(jiān)聽器的方法

getAttribute(name)

removeAttribute(name)

--- 觸發(fā)刪除屬性的監(jiān)聽器的方法

(2)ServletContextAttibuteListener監(jiān)聽

img

(3) HttpSessionAttributeListener監(jiān)聽器(同上)

(4) ServletRequestAriibuteListenr監(jiān)聽器(同上)

2.與session中的綁定的對象相關(guān)的監(jiān)聽器(對象感知監(jiān)聽器)

(1)即將要被綁定到session中的對象有幾種狀態(tài)

綁定狀態(tài):就一個(gè)對象被放到session域中

解綁狀態(tài):就是這個(gè)對象從session域中移除了

鈍化狀態(tài):是將session內(nèi)存中的對象持久化(序列化)到磁盤

活化狀態(tài):就是將磁盤上的對象再次恢復(fù)到session內(nèi)存中

面試題:當(dāng)用戶很對時(shí),怎樣對服務(wù)器進(jìn)行優(yōu)化?

(2)綁定與解綁的監(jiān)聽器HttpSessionBindingListene

img

(3)鈍化與活化的監(jiān)聽器HttpSessionActivationListener

可以通過配置文件 指定對象鈍化時(shí)間 --- 對象多長時(shí)間不用被鈍化

在META-INF下創(chuàng)建一個(gè)context.xml

img

被鈍化到work/catalina/localhost/的文件

img

實(shí)驗(yàn):對在線人數(shù)作實(shí)時(shí)監(jiān)控

實(shí)現(xiàn)步驟:

  1. 創(chuàng)建一個(gè) HttpSession 監(jiān)聽器,在 session 進(jìn)行創(chuàng)建時(shí)對在線人數(shù)進(jìn)行加一,在 session 被銷毀時(shí)對在線人數(shù)進(jìn)行減一,并將在線人數(shù)存進(jìn) ServletContext 域

  2. 通過 @WebListener 注解配置該監(jiān)聽器


Java三十六篇:初識(shí)Listener的評論 (共 條)

分享到微博請遵守國家法律
罗定市| 澎湖县| 灵寿县| 德兴市| 嘉荫县| 兰州市| 阜新市| 勐海县| 荔浦县| 乐东| 天镇县| 宁国市| 宜阳县| 富锦市| 蓬溪县| 班戈县| 大港区| 密云县| 梅州市| 五指山市| 吉林省| 荆州市| 怀化市| 嘉禾县| 信阳市| 桦甸市| 永寿县| 衡阳市| 疏勒县| 余干县| 田东县| 平顶山市| 抚顺县| 云安县| 阿勒泰市| 图们市| 舟山市| 建湖县| 喜德县| 淮阳县| 洛宁县|