官术网_书友最值得收藏!

5.2 Servlet工作過程

第5章任務(wù)2

1.Servlet工作過程步驟

Servlet工作過程包括6個步驟:

1)讀取客戶端(如瀏覽器、移動端)發(fā)送的顯式的數(shù)據(jù),如HTML表單。

2)讀取客戶端發(fā)送的隱式的HTTP請求數(shù)據(jù),如Cookies。

3)處理數(shù)據(jù)并生成結(jié)果。

這個過程需要訪問數(shù)據(jù)庫,進(jìn)行數(shù)據(jù)獲取。

4)發(fā)送顯式的數(shù)據(jù)到客戶端。數(shù)據(jù)包括文本文件(HTML、JSP、XML、JSON等)、二進(jìn)制文件(GIF圖像)、Excel表格等。

5)發(fā)送隱式的HTTP響應(yīng)到客戶端,如設(shè)置Cookies和緩存參數(shù)等。

6)服務(wù)器關(guān)閉或者Servlet空閑時間超過一定限度時,調(diào)用destroy方法退出。

2.Servlet的生命周期

Servlet生命周期可被定義為從創(chuàng)建直到銷毀的整個過程,如圖5-1所示。

圖5-1 Servlet生命周期

當(dāng)來自客戶端的請求映射到Servlet時,Web容器(如Tomcat服務(wù)器)執(zhí)行以下步驟:

1)加載Servlet類,創(chuàng)建該類的實(shí)例。

每一個用戶請求都會產(chǎn)生一個新的線程。

2)Servlet通過調(diào)用init ()方法進(jìn)行初始化。

3)Servlet調(diào)用service()方法來處理客戶端的請求。

4)Servlet通過調(diào)用destroy()方法終止。

5)Servlet由JVM的垃圾回收器進(jìn)行垃圾回收。

3.Servlet的三個方法

1)init方法:可選,用于初始化。

init()方法加載默認(rèn)數(shù)據(jù)或者連接數(shù)據(jù)庫,以用于Servlet的整個生命周期。init()方法只在第一次創(chuàng)建Servlet時被調(diào)用,在后續(xù)用戶請求時不再調(diào)用。

2)service方法:用于處理請求。

service()方法是執(zhí)行實(shí)際任務(wù)的主要方法。容器調(diào)用service()方法來處理來自客戶端的請求,并把格式化的響應(yīng)寫回給客戶端。service()方法將檢查HTTP請求類型(GET、POST、PUT、DELETE等),并分別調(diào)用doGet、doPost、doPut,doDelete等方法進(jìn)行處理。

3)destroy方法:可選,用于清除并釋放在init方法中所分配的資源。

destroy()方法只在Servlet生命周期結(jié)束時被調(diào)用一次。當(dāng)服務(wù)器被關(guān)閉,或者Servlet空閑超過一定時間后,調(diào)用destroy()方法退出。可以在destroy()方法中關(guān)閉數(shù)據(jù)庫連接、停止后臺線程。

主站蜘蛛池模板: 都江堰市| 卓资县| 太和县| 珲春市| 柳河县| 邹平县| 迁西县| 东明县| 滕州市| 东兴市| 中宁县| 青河县| 广汉市| 固镇县| 鱼台县| 枣强县| 乌鲁木齐县| 营山县| 鹤峰县| 通化县| 太康县| 临汾市| 铜鼓县| 固镇县| 资溪县| 洮南市| 邮箱| 五台县| 即墨市| 陆河县| 尼玛县| 广宗县| 左云县| 青神县| 曲阜市| 东源县| 新民市| 福建省| 蕉岭县| 綦江县| 鄯善县|