ServletContextListener是種生命週期監視器。
寫好以後要在web.xml中用「<listener><listener-class>[ServletContextListener實作物件]</listener-class></listener>這組標籤完成設定。
裏頭主要有兩組介面, 「contextDestroyed(ServletContextEvent arg0)」和「contextInitialized(ServletContextEvent arg0)」,前者會在Server關閉或重開時被呼叫執行,後者則是啟動時被呼叫執行。
一般來說,要設定「Server要固定執行的工作」,要先使用這組功能在Server啟動時設定Timer的Schedule。
TimerTask就好像是「工作」的內容,Timer就是固定執行的時段,使用ServletContextListener就是將這兩者啟動並結合。(似乎也可以用一般Request的方式啟動,程式功能上完全沒問題。)
Timer物件宣告方式很簡單。TimerTask是個抽象介面,但就是個Runnable。
兩者都取得宣告後,Timer有組函數「schedule(TimerTask arg0, Date arg1, long arg2)」和「schedule(TimerTask arg0, long arg1, long arg2)」,這分別可以設定「TimerTask」(要執行的工作內容)、「Date」(具體啟動的日期),還有「距離現在多少毫秒後啟動」和「多少毫秒後重複執行」。
(「距離現在多少毫秒後啟動」又被稱為「DelayTime」。)
寫好以後要在web.xml中用「<listener><listener-class>[ServletContextListener實作物件]</listener-class></listener>這組標籤完成設定。
裏頭主要有兩組介面, 「contextDestroyed(ServletContextEvent arg0)」和「contextInitialized(ServletContextEvent arg0)」,前者會在Server關閉或重開時被呼叫執行,後者則是啟動時被呼叫執行。
一般來說,要設定「Server要固定執行的工作」,要先使用這組功能在Server啟動時設定Timer的Schedule。
TimerTask就好像是「工作」的內容,Timer就是固定執行的時段,使用ServletContextListener就是將這兩者啟動並結合。(似乎也可以用一般Request的方式啟動,程式功能上完全沒問題。)
Timer物件宣告方式很簡單。TimerTask是個抽象介面,但就是個Runnable。
兩者都取得宣告後,Timer有組函數「schedule(TimerTask arg0, Date arg1, long arg2)」和「schedule(TimerTask arg0, long arg1, long arg2)」,這分別可以設定「TimerTask」(要執行的工作內容)、「Date」(具體啟動的日期),還有「距離現在多少毫秒後啟動」和「多少毫秒後重複執行」。
(「距離現在多少毫秒後啟動」又被稱為「DelayTime」。)
沒有留言:
張貼留言