教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Servlet對象的生命周期詳細介紹

更新時間:2021年10月28日10時44分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓

監(jiān)聽域?qū)ο蟮纳芷冢?/strong>在Web應用程序的運行期間,Web容器會創(chuàng)建和銷毀三個比較重要的對象ServletContext、HttpSession和ServletRequest,這些對象被稱為域?qū)ο螅瑸榱吮O(jiān)聽這些域?qū)ο蟮纳芷?,Servlet API中專門提供三個接口ServletContextListener、HttpSessionListener、ServletRequestListener,它們分別用于監(jiān)聽ServletContext對象的生命周期、監(jiān)聽 HttpSession對象的生命周期、監(jiān)聽 ServletRequest對象的生命周期,接下來將針對這三個接口進行講解。


ServletContextListener接口

ServletContext對象是Web應用程序中一個非常重要的對象,為了監(jiān)聽該對象的創(chuàng)建與銷毀過程,Servlet API中提供了一個ServletContextListener接口,當在Web應用程序中注冊一個或多個實現(xiàn)了ServletContextListener 接口的事件監(jiān)聽器時,Web容器在創(chuàng)建或銷毀每個ServletContext對象時就會產(chǎn)生一個與其對應的事件對象,然后依次調(diào)用每個ServletContext事件監(jiān)聽器中的處理方法,并將ServletContext事件對象傳遞給這些方法,來完成事件的處理工作。

ServletContextListener,接口中共定義了兩個事件處理方法,具體如下。


1.contextInitialized()方法

contextInitialized()方法的完整語法定義如下。

public void contextInitialized(servletContextEvent sce)

當ServletContext對象被創(chuàng)建時,Web容器會調(diào)用contextInitialized()方法。contextInitialized()方法接收一個ServletContextEvent類型的參數(shù),contextInitialized()方法內(nèi)部可以通過這個參數(shù)來獲取創(chuàng)建的ServletContext對象。


2. contextDestroyed()方法

contextDestroyed()方法的完整語法定義如下。

public void contextDestroyed(servletContextEvent sce)

當ServletContext對象即將被銷毀時,Web容器會調(diào)用contextDestroyed()方法,并將servletContextEvent對象傳遞給這個方法。


HttpSessionListener接口

HttpSession用于完成會話操作,為了監(jiān)聽HttpSession對象的創(chuàng)建和銷毀過程,ServletAPI中提供了一個HttpSessionListener接口,當Web應用程序注冊了一個或者多個實現(xiàn)了HttpSessionListener接口的事件監(jiān)聽器時,Web容器

HttpSession對象時就會產(chǎn)生一個HttpSessionEvent事件對象,然后依次調(diào)用每個HttpSession事件監(jiān)聽器中的相應方法﹐并將HttpSessionEVent事件對象傳遞給這些方法。

HttpSessionListener接口中共定義了兩個事件處理方法,分別是SessionCreated()和sessionDestroy()方法,接下來針對這兩個方法進行講解。


1.sessionCreated()方法

sessionCreated(方法的完整語法定義如下。

public void sessionCreated(HttpsessionEvent se)

每當一個HttpSession對象被創(chuàng)建時,Web容器都會調(diào)用sessionCreated()方法。sessionCreated()方法接收一個HttpSessionEvent類型多參數(shù),sessionCreate()方法內(nèi)部都可以通過這個參數(shù)來獲取當前被創(chuàng)建的HttpSession對象。


2.sessionDestroyed()方法

sessionDestroyed()方法的完整語法定義如下。

public void sessionDestroyed(HttpSessionEvent se)

每當一個HttpSession對象即將被銷毀時, Web容器都會調(diào)用sessionDestroyed()方法,并將HttpSessionEvent事件對象傳遞給這個方法。


ServletRequestListener接口

ServletRequest對象用于獲取客戶端發(fā)送的請求數(shù)據(jù),為了監(jiān)聽ServletReauest對象的創(chuàng)建和銷毀過程,Servlet API提供了ServletReauestListener接口,當Web應用程序中注冊了一個或多個實現(xiàn)了ServletRequestListener接口的事件監(jiān)聽器時,Web容器在創(chuàng)建或銷毀每個ServletRequest對象時都會產(chǎn)生一個ServletRequestEvent事件對象,然后依次調(diào)用每個ServletRequest事件監(jiān)聽器中的相應處理方法。

ServletRequestListener接口中定義了兩個事件外理方法,分別是requestInitialized()方法和requestDestroyed()方法,接下來針對這兩個方法進行講解。


1. requestInitialized()方法

requestInitialized()方法的完整語法定義如下。

public void requestInitialized(ServletRequestEvent sre)

每當一個ServletRequest對象創(chuàng)建時,Web容器都會調(diào)用requestInitialized()方法。requestInitialized()方法接收一個ServletRequestEvent類型的參數(shù),requestInitialized()方法內(nèi)部可以通過這個參數(shù)來獲取當前創(chuàng)建的ServletRequest對象。


2. requestDestroyed()方法

requestDestroyed()方法的完整語法定義如下。

public void requestDestroyed(ServletRequestEvent sre)

每當一個ServletRequest對象銷毀時,Web容器都會調(diào)用reauestDestroyed()方法,并將ServletRequestEvent對象傳遞給這個方法。



0 分享到:
和我們在線交談!