1. 程式人生 > >第一個100日計劃之 第1天 Servlet001

第一個100日計劃之 第1天 Servlet001

一、概述

Tomcat是web應用伺服器,是一個Servlet/JSP容器。Tomcat作為Servlet容器,負責將客戶請求傳送給Servlet,並將Servlet的響應傳送給客戶。

二、helloWorld Demo

2.1 基於web.xml配置

web.xml配置

Servlet類

2.2基於 註解的配置

2.3 部署到Tomcat訪問結果

         

三、生命週期

3.1 知識點

Servlet生命週期可被定義為從建立到銷燬的整個過程。 init()初始化,service()處理客戶端請求,destroy()銷燬,最終由JVM GC回收。

init():只被呼叫一次,第一次建立Servlet時被建立,在後續使用者請求時不再呼叫。Servlet創建於使用者第一次呼叫該servlet對應的URL時,也可設定伺服器啟動時建立servlet.init() 方法簡單地建立或載入一些資料,這些資料將被用於 Servlet 的整個生命週期。

service()方法:service方法是執行實際任務的主要方法。servlet容器呼叫service方法來處理客戶端(瀏覽器)的請求,並把格式化響應寫回給客戶端。每次伺服器接收到一個請求時,伺服器會產生一個新的執行緒並呼叫服務。service() 方法檢查 HTTP 請求型別(GET、POST、PUT、DELETE 等),並在適當的時候呼叫 doGet、doPost、doPut,doDelete 等方法。service() 方法由容器呼叫,service 方法在適當的時候呼叫 doGet、doPost、doPut、doDelete 等方法。所以可以不用對 service() 方法做任何動作,根據來自客戶端的請求型別來重寫 doGet() 或 doPost() 即可。

doGet():GET 請求來自於一個 URL 的正常請求,或者來自於一個未指定 METHOD 的 HTML 表單,它由 doGet() 方法處理.

doPost():POST 請求來自於一個特別指定了 METHOD 為 POST 的 HTML 表單,它由 doPost() 方法處理.

destroy():destroy() 方法只會被呼叫一次,在 Servlet 生命週期結束時被呼叫。destroy() 方法可以關閉資料庫連線、停止後臺執行緒、把 Cookie 列表或點選計數器寫入到磁碟,並執行其他類似的清理活動等。

3.2 例項

web.xml配置

servlet程式碼:

部署訪問結果:

容器啟動時建立servlet物件                                        訪問輸出:

            

不配置容器啟動時建立servlet:

四、表單資料

4.1 知識點

web頁面傳引數到伺服器,基本採用get和Post方法。

GET 方法是預設的從瀏覽器向 Web 伺服器傳遞資訊的方法,它會產生一個很長的字串,出現在瀏覽器的位址列中。如果您要向伺服器傳遞的是密碼或其他的敏感資訊,請不要使用 GET 方法。GET 方法有大小限制:請求字串中最多隻能有 1024 個字元。Servlet 使用 doGet() 方法處理這種型別的請求。

POST 方法打包資訊的方式與 GET 方法基本相同,但是 POST 方法不是把資訊作為 URL 中 ? 字元後的文字字串進行傳送,而是把這些資訊作為一個單獨的訊息。訊息以標準輸出的形式傳到後臺程式,您可以解析和使用這些標準輸出。Servlet 使用 doPost() 方法處理這種型別的請求。

Servlet獲取引數方法:

getParameter():呼叫 request.getParameter() 方法來獲取表單引數的值.

getParameterValues():如果引數出現一次以上,則呼叫該方法,並返回多個值,例如複選框.

getParameterNames():想要得到當前請求中的所有引數的完整列表,則呼叫該方法

4.2 例項

4.2.1 get方法請求

servlet使用註解的方式:

html form部分:

頁面輸入:

        

4.2.2 post方法請求

servlet:

html form:

頁面輸入及結果:

      

4.2.3 獲取複選框選擇值

servlet:

html form:

頁面輸入及結果: