學習web的Listener監聽器的時,監聽域對象創建的監聽器。通過監聽器重新分析着三個對象的生命周期,清晰明了。
首先域對象的監聽器有三個ServletContextListene、ServletRequestListene和HttpSessionListene
實現三個接口,每個接口有兩個方法,創建方法和銷毀方法,此處不詳細寫出,具體方法自行參照API幫助文檔
servletContext既web應用加載到tomcat的時候被創建,從服務器卸載的時候被銷毀。
servletRequest是發出請求的時候就被創建,請求結束就被銷毀.需要注意的是請求轉發的時候request是同一個請求,並不會創建新的請求,但是當重定向的時候就是一個新的請求。
在jsp頁面中的超鏈接到另一個jsp頁面也是重定向,此時不能獲取到request域中設置的屬性。
Httpsession在第一次訪問web頁面或servlet時並且需要一個session時被創建,session比較繞,如果在jsp頁設置session= “false”,訪問也不會創建一個session。
在jsp中創建session的HttpSession session = new HttpSession();就創建了一個session。
當session結束設置的最大存活時間的時候也會被銷毀,直接調用銷毀方法也會直接銷毀。
PS:這三個創建的順序->ServletContext->ServletRequest->HttpSession因為session是通過請求將Cookie頭給帶回。JSESSIONID
