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

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

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

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

          加載并初始化Servlet

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

          處理客戶端請求

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

          該方法是一個重點實現(xiàn)的方法,ServletRequest對象可以獲得客戶端發(fā)出請求的相關(guān)信息,如請求參數(shù)等,ServletResponse對象可以使得Servlet建立響應(yīng)頭和狀態(tài)代碼,并可以寫入響應(yīng)內(nèi)容返回給客戶端。

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

          卸載Servlet

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

           

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

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

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 岳普湖县| 乌鲁木齐市| 垦利县| 元阳县| 高青县| 马鞍山市| 周宁县| 东港市| 平陆县| 黄骅市| 长丰县| 北宁市| 乌鲁木齐市| 新巴尔虎右旗| 齐齐哈尔市| 浦东新区| 曲沃县| 武山县| 垫江县| 军事| 临沂市| 金平| 江西省| 邵阳县| 香港 | 隆林| 武川县| 乌鲁木齐县| 隆安县| 阿合奇县| 法库县| 商城县| 金阳县| 寻甸| 芮城县| 伊通| 紫阳县| 清苑县| 巴楚县| 申扎县| 象州县|