JavaWeb之Listener監(jiān)聽器

概念

Servlet 監(jiān)聽器用于監(jiān)聽 web 應用程序中的 ServletContext,HttpSession 和 ServletRequest 等域對象的創(chuàng)建和銷毀事件,以及監(jiān)聽這些域對象中的屬性發(fā)生修改的事件

分類

1、監(jiān)聽域對象自身的創(chuàng)建和銷毀的事件監(jiān)聽器

2、監(jiān)聽域對象中的屬性的增加和刪除的事件監(jiān)聽器

3、監(jiān)聽綁定到 HttpSession 域中的某個對象的狀態(tài)的事件監(jiān)聽器

常用監(jiān)聽器

1、ServletContextListener

2、ServletRequestListener

3、HttpSessionListener

使用

1、實現各自的監(jiān)聽方法

l兩個方法,分別是對象被創(chuàng)建(contextInitialized),還有對象被銷毀(contextDestroyed)

還有實現?ServletRequestListener 的方法

和實現?HttpSessionListener 的方法

2、在 web.xml 里配置

其中,ServletContextListener 是最常用的 listener,可以在當前 web 應用被加載時對當前 web 應用的相關資源進行初始化操作,例如:創(chuàng)建數據庫連接池,創(chuàng)建 spring 的 IOC 容器,讀取當前 web 應用的初始化參數等。

生命周期

request

是一個請求,當一個響應返回時,即被銷毀,當發(fā)送一個請求時被創(chuàng)建。

注意,請求轉發(fā)的過程是一個 request 對象,而重定向是兩個請求

session

當第一次訪問 web 應用的一個 JSP 或 Servlet 時,且該 JSP 或 Servlet 中還需要創(chuàng)建 session 對象,此時服務器會創(chuàng)建一個 session 對象

session 銷毀有幾種情況:

1、session 過期

2、直接調用 session 的 invalidate 方法

3、當前 web 應用被卸載(session 可以被持久化)

注意,關閉瀏覽器并不意味著 session 被銷毀,還可以通過 sessionid 找到服務器中的 session 對象,當訪問地址帶上之前做創(chuàng)建的 sessionid,依然不會創(chuàng)建新的 session 對象

JSESSIONID=XXXXXXXX

http://localhost:8080/test.jsp;jsessionid=XXXXXXXX

application

貫穿于當前的 WEB 應用的生命周期,當前 WEB 應用被加載時創(chuàng)建 application 對象,當前 WEB 應用被卸載時銷毀 application 對象


以上為本人的一些學習筆記,如有出錯歡迎指正,陸續(xù)更新?。?!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 本文包括:1、Listener簡介2、Servlet監(jiān)聽器3、監(jiān)聽三個域對象創(chuàng)建和銷毀的事件監(jiān)聽器4、監(jiān)聽三個域對...
    廖少少閱讀 6,622評論 6 28
  • IOC 控制反轉容器控制程序對象之間的關系,而不是傳統(tǒng)實現中,有程序代碼之間控制,又名依賴注入。All 類的創(chuàng)建,...
    irckwk1閱讀 1,092評論 0 0
  • 監(jiān)聽器(listener) 監(jiān)聽器簡介 :監(jiān)聽器就是一個實現特定接口的普通java程序,這個程序專門用于監(jiān)聽另一個...
    奮斗的老王閱讀 2,671評論 0 53
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,757評論 11 349
  • 想起來就寫碎碎念
    小十八碎碎念閱讀 328評論 0 0

友情鏈接更多精彩內容