基礎知識(二) Servlet

2021-07-23 05:04:58 字數 1688 閱讀 4063

servlet生命週期

servlet載入——》例項化——》服務——》銷毀

1.init():生命中僅執行一次,在伺服器裝入servlet時執行,負責初始化servlet物件,可配置伺服器,以在

啟動伺服器或客戶首次訪問servlet時裝入servlet。

2.service():servlet核心,負責響應客戶的請求。每當乙個客戶請求乙個httpservlet物件,該物件的service()

方法就要呼叫,且傳遞給這個方法乙個請求物件(servletrequest)和乙個響應物件

(servletresponse)作為引數。在httpservlet已存在service(),預設呼叫請求方法相應的do功能

3.destory():僅執行一次。在伺服器停止且解除安裝servlet時執行該方法,當servlet物件退出生命週期時,

負責釋放占用的資源。

tomcat與servlet如何工作

1.客戶端向伺服器發出乙個http請求

2.伺服器接收客戶端的請求

3.伺服器建立乙個httprequest物件將客戶端的請求資訊封裝到這個物件中

4.伺服器建立乙個httpresponse物件

5.伺服器呼叫httpservlet物件的service()方法把httprequest物件和httpresponse物件作為引數傳給

httpservlet物件

6.httpservlet呼叫httpreuest物件的有關方法獲取http請求資訊

7.httpservlet呼叫httpresponse物件有關方法生成相應資料

8.伺服器把httpservlet響應結果傳給客戶端

servlet工作原理

1.客戶傳送乙個請求,servlet是呼叫service()對請求進行響應的,service()對請求方法進行了匹配,選擇doget、dopost這些方法。在servlet介面和genericservlet沒有doget,dopost。httpservlet定義了這些方法,但返回為error資訊,所以,每定義乙個servlet時,必須實現doget()和dopost()

2.每個自定義servlet必須實現servlet介面,涉及介面3個方法,init(),service(),destory(),genericservlet實現了servlet介面,而httpservlet繼承了genericservlet,因此只需要繼承httpservlet即可。

3.servlet介面和genericservlet無協議,httpservlet特定於http協議的類,所以httpservlet實現了service()方法,將請求servletrequest,servletresponse 強轉為httprequest,httpresponse。

建立servlet物件的時機

1.伺服器啟動時,讀取web.xml配置檔案中的資訊,構造指定的servlet物件,建立servletconfig物件,同時將servletconfig物件作為引數呼叫servlet物件的init()。

2.伺服器啟動後,客戶首次向servlet發出請求,伺服器判斷記憶體中是否存在指定的servlet物件。如果沒有則建立,然後根據客戶的請求建立httprequest,httpresponse物件,從而呼叫servlet物件的service()方法

3.伺服器在啟動時自動建立servlet,由於在web.xml檔案中為servlet配置的屬性決定的

同一型別的servlet物件在伺服器中以單例的形式存在。

Servlet基礎知識

servlet必須繼承httpservlet類,每個servlet可以響應客戶端的請求 大部分時候,servlet對於所有請求的響應都一樣,此時,可以採用重寫service 方法響應客戶端所有請求。另外httpservlet還包含兩個方法 從servlet3.0開始,配置servlet有兩種方式 1...

servlet基礎知識

step1 使用字尾匹配模式。step2 在service 方法裡加入如下 獲得請求資源路徑 string uri request.getrequesturi 所謂生命週期,指的是servlet容器如何建立servlet例項 分配其資源 呼叫其方法 並銷毀其實例的整個過程。階段一 例項化 就是建立s...

Servlet 基礎知識

4.2 listener 前置知識 http 相關知識 執行在 web 伺服器或應用伺服器的程式,用作連線 web 瀏覽器 其他客戶端的 http 請求和資料庫的中間處理層。init servletconfig config 初始化 service servletrequest req,servle...