?
(三)Servlet中的監(jiān)聽(tīng)器
一艳狐、Servlet中的監(jiān)聽(tīng)器簡(jiǎn)介
? ? 在Servlet中定義了多種類(lèi)型的監(jiān)聽(tīng)器蹭劈,它們用于監(jiān)聽(tīng)的事件源分別是ServletContext厌处、HttpSession和ServletRequest這三個(gè)域?qū)ο?/p>
二侦另、Servlet中的監(jiān)聽(tīng)器的分類(lèi)
1、一類(lèi):監(jiān)聽(tīng)三個(gè)域?qū)ο蟮膭?chuàng)建和銷(xiāo)毀的監(jiān)聽(tīng)器(三個(gè))
2军俊、二類(lèi):監(jiān)聽(tīng)三個(gè)域?qū)ο蟮膶傩宰兏▽傩蕴砑咏募印⒁瞥⑻鎿Q)的監(jiān)聽(tīng)器(三個(gè))
3粪躬、三類(lèi):監(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)建和銷(xiāo)毀的監(jiān)聽(tīng)器
二、ServletContext創(chuàng)建和銷(xiāo)毀
1朋魔、創(chuàng)建:在服務(wù)器啟動(dòng)的時(shí)候岖研,為每個(gè)Web應(yīng)用創(chuàng)建單獨(dú)的ServletContext對(duì)象
2、銷(xiāo)毀:在服務(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ì)象的銷(xiāo)毀
?? ??? ?contextDestroyed(ServletContextEvent sce)
四拓售、編寫(xiě)監(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)建和銷(xiāo)毀
二、HttpSession創(chuàng)建和銷(xiāo)毀
? ? 創(chuàng)建:
?? ??? ?服務(wù)器端第一次調(diào)用getSession()方法的時(shí)候
? ? 銷(xiāo)毀:
?? ??? ?非正常關(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ì)象銷(xiāo)毀
????????sessionDestroyed(HttpSessionEvent se)
四亿蒸、編寫(xiě)監(jiān)聽(tīng)器監(jiān)聽(tīng)HttpSession對(duì)象創(chuàng)建和銷(xiāo)毀
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)建和銷(xiāo)毀
二、ServletRequest對(duì)象的創(chuàng)建和銷(xiāo)毀
? ? 創(chuàng)建:從客戶端向服務(wù)器發(fā)送一次請(qǐng)求灰蛙,服務(wù)器就會(huì)創(chuàng)建Request對(duì)象
? ? 銷(xiāo)毀:服務(wù)器對(duì)這次請(qǐng)求作出了響應(yīng)之后祟剔,Request對(duì)象就銷(xiāo)毀了
三、ServletRequestListener監(jiān)聽(tīng)器的方法
1摩梧、監(jiān)聽(tīng)ServletRequest對(duì)象的創(chuàng)建
?? ??? ?requestInitialized(ServletRequestEvent sre)
2物延、監(jiān)聽(tīng)ServletRequest對(duì)象的銷(xiāo)毀