隨筆 - 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 閱讀(263) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 英超| 大埔区| 河北区| 镇坪县| 兖州市| 循化| 婺源县| 广汉市| 蓝山县| 金寨县| 巨野县| 循化| 大石桥市| 昆山市| 精河县| 喜德县| 望奎县| 土默特左旗| 无为县| 株洲县| 安西县| 安福县| 天津市| 龙泉市| 临清市| 和硕县| 阿拉善盟| 邛崃市| 正宁县| 综艺| 云林县| 西乌珠穆沁旗| 新乡县| 陆丰市| 西盟| 龙里县| 祁东县| 拜泉县| 秦皇岛市| 桐城市| 黄龙县|