servelt filter listener 的生命週期

1. servlet 
   當第一次請求一個servlet資源時,servlet容器創建這個servlet實例,並調用他的 
init(ServletConfig config)做一些初始化的工作,然後調用它的service方法處理請求。當第二次請求這個servlet資源時,servlet容器就不在創建實例,而是直接調用它的service方法處理請求,也就是說servlet對象是常駐內存的,是單例,因此不要把一些屬性作爲servlet的成員變量,避免併發訪問問題,當servlet容器關閉或者重新加載web應用時,servlet會調用它的destory()方法,然後就就結束了。 
2 filter ,Listener 
  當web容器啓動的時候,去讀取每個web應用的web.xml配置文件,當配置文件中配有filter和listener時,web容器實例化listener,filter,然後調用Filter的init(FilterConfig)方法做一些初始化(注意當我們的filter啓動錯誤時,這個web應用將 
不能用),當請求一個資源而這個資源正好被這個過濾器過濾,調用filter的doFilter方法,當servlet容器關閉或者重新加載web應用時,filter會調用它的destory()方法,然後銷燬這個對象,listener是當某個事件發生時,調用它特定法,HttpSessionListener 
,當創建一個session時會調用它的sessionCreated()方法,當servlet容器關閉或者重新加載web應用時lister對象被銷燬。 

總之,servlet filter listener 都是單例的,就是說在運行時只存在一個實例。



原文鏈接:http://yun342173024.iteye.com/blog/1635113

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章