Java——監聽器2

1、監聽器Listener

1.什麼是監聽器?

監聽器就是監聽某個對象的的狀態變化的組件html

監聽器的相關概念:程序員

事件源:被監聽的對象  ----- 三個域對象 request  session  servletContextweb

監聽器:監聽事件源對象  事件源對象的狀態的變化都會觸發監聽器 ---- 6+2面試

註冊監聽器:將監聽器與事件源進行綁定spring

響應行爲:監聽器監聽到事件源的狀態變化時 所涉及的功能代碼 ---- 程序員編寫代碼數據庫

2.監聽器有哪些?

第一維度:按照被監聽的對象劃分:ServletRequest域   HttpSession域   ServletContext域apache

第二維度:監聽的內容分:監聽域對象的建立與銷燬的和監聽域對象的屬性變化的服務器

一、監聽域對象的建立與銷燬

1)Servlet域的生命週期session

什麼時候建立:服務器啓動建立優化

什麼時候銷燬:服務器關閉銷燬

2)監聽器的編寫步驟(重點):

a、編寫一個監聽器類去實現監聽器接口

b、覆蓋監聽器的方法

c、須要在web.xml中進行配置---註冊

3)監聽的方法:

4)配置文件:

5)ServletContextListener監聽器的主要做用

  • a、初始化的工做:初始化對象 初始化數據 ---- 加載數據庫驅動  鏈接池的初始   化
  • b、加載一些初始化的配置文件 --- spring的配置文件
  • c、任務調度----定時器----Timer/TimerTask

二、監聽三大域對象的屬性變化的

域對象的通用的方法:

  • setAttribute(name,value)
    •  --- 觸發添加屬性的監聽器的方法  
    •  --- 觸發修改屬性的監聽器的方法
  • getAttribute(name)
  • removeAttribute(name) 
    • --- 觸發刪除屬性的監聽器的方法 

三、與session中的綁定的對象相關的監聽器(對象感知監聽器)

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

綁定狀態:就一個對象被放到session域中

解綁狀態:就是這個對象從session域中移除了

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

活化狀態:就是將磁盤上的對象再次恢復到session內存中

面試題:當用戶很對時,怎樣對服務器進行優化?

鈍化

(2)綁定與解綁的監聽器HttpSessionBindingListener

須要的對象實現HttpSessionBindingListener接口,實現下面的兩個方法。

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

能夠經過配置文件 指定對象鈍化時間 --- 對象多長時間不用被鈍化

在META-INF下建立一個context.xml

<Context>
 <!-- maxIdleSwap:session中的對象多長時間不使用就鈍化 -->
 <!-- directory:鈍化後的對象的文件寫到磁盤的哪一個目錄下  配置鈍化的對象文件在												work/catalina/localhost/鈍化文件 -->
 <Manager className="org.apache.catalina.session.PersistentManager" 																				maxIdleSwap="1">
  <Store className="org.apache.catalina.session.FileStore" directory="itcast205" />
 </Manager>
</Context>

相關文章
相關標籤/搜索