隨筆 - 26  文章 - 2  trackbacks - 0
          <2011年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          Servlet是一種可以在Servlet容器中運行的組件,那么理所當然就應該有一個從創建到銷毀的過程,這個過程我們可以稱之為Servlet生命周期。Servlet的生命周期可以分為加載、實例化、初始化、處理客戶請求和卸載五個階段,體現在方法上主要是init()、service()和destroy()三個方法。生命周期的具體說明如下:

          • Servlet容器完成加載Servlet類和實例化一個Servlet對象
          • init()方法完成初始化工作,該方法由Servlet容器調用完成
          • service()方法處理客戶端請求,并返回響應結果
          • destroy()方法在Servlet容器卸載Servlet之前被調用,釋放一些資源

          加載并初始化Servlet

          在前面已經說過Servlet容器完成加載和實例化Servlet的工作,該工作既可以在容器啟動時完成,也可以在容器收到請求時完成,或者是兩者之間的某個時間啟動。之后需要初始化Servlet,即讀取配置信息、讀取初始化參數等,這些基本上在整個生命周期中只需要執行一次。關于init()方法已經在積累GenericServlet中提供缺省實現,如果不需特殊處理則沒有必要再進行定義,否則要重寫。

          處理客戶端請求

          當容器接收到客戶端請求時,Servlet引擎將創建一個ServletRequest請求對象和一個ServletResponse響應對象,然后把這兩個對象作為參數傳遞給對應Servlet對象的service方法。

          該方法是一個重點實現的方法,ServletRequest對象可以獲得客戶端發出請求的相關信息,如請求參數等,ServletResponse對象可以使得Servlet建立響應頭和狀態代碼,并可以寫入響應內容返回給客戶端。

          在此說明一點,當Servlet中有doGet()或者doPost()方法時,那么service方法就可以省略,默認為調用這兩個方法。

          卸載Servlet

          Servlet的卸載是由容器本身定義和實現,在卸載Servlet之前需要調用destroy()方法,以讓Servlet自行釋放占用的系統資源。雖然Java虛擬機提供了垃圾自動回收處理機制,但是有一部分資源卻是該機制不能處理或延遲很久才能處理的,如關閉文件,釋放數據庫連接等。

           

          Servlet生命周期的五個階段是相互關聯的,后面幾個階段建立在前面階段的基礎之上,在使用Servlet的時候可以根據自己的需要靈活處理。

          posted on 2011-10-08 20:40 Java_liyadong 閱讀(264) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 镇江市| 玛沁县| 巴青县| 上杭县| 天长市| 张掖市| 根河市| 十堰市| 竹北市| 襄垣县| 长汀县| 平陆县| 临沂市| 咸宁市| 崇左市| 梓潼县| 台山市| 潮安县| 桂东县| 肥西县| 高尔夫| 黄梅县| 襄汾县| 武功县| 横峰县| 壶关县| 高要市| 花莲县| 兴业县| 淳化县| 鄂托克旗| 清苑县| 菏泽市| 克拉玛依市| 甘肃省| 康平县| 郁南县| 龙州县| 慈利县| 綦江县| 梅州市|