Servlet生命週期和HTTP基本原理

2021-10-10 18:26:08 字數 3051 閱讀 7020

當伺服器接受到客戶端瀏覽器的請求後,會解析請求url路徑,獲取訪問的servlet的資源路徑

查詢web.xml檔案,是否有對應的標籤體內容。

如果有,則在找到對應的全類名

tomcat會將位元組碼檔案載入進記憶體,並且建立其物件

呼叫其方法

servlet什麼時候被建立?

可以配置執行servlet的建立時機。

在標籤下配置

1. 第一次被訪問時,建立

的值為負數

2. 在伺服器啟動時,建立

的值為0或正整數

解決:盡量不要在servlet中定義成員變數。即使定義了成員變數,也不要對修改值

提供服務:執行service方法,執行多次

每次訪問servlet時,service方法都會被呼叫一次。

被銷毀:執行destroy方法,只執行一次

servlet被銷毀時執行。伺服器關閉時,servlet被銷毀

只有伺服器正常關閉時,才會執行destroy方法。

destroy方法在servlet被銷毀之前執行,一般用於釋放資源

@target()

@retention

(retentionpolicy.runtime)

@documented

public @inte***ce

webservlet

;//代表urlpatterns()屬性配置

string[

]urlpatterns()

default

;//相當於

intloadonstartup()

default-1

;//相當於

webinitparam[

]initparams()

default

;boolean

asyncsupported()

default

false;

string smallicon()

default"";

string largeicon()

default"";

string description()

default"";

string displayname()

default"";

}

請求行

請求方式 請求url 請求協議/版本

請求方式:

請求頭:客戶端瀏覽器告訴伺服器一些資訊

請求頭名稱: 請求頭值

常見的請求頭:

user-agent:瀏覽器告訴伺服器,我訪問你使用的瀏覽器版本資訊

可以在伺服器端獲取該頭的資訊,解決瀏覽器的相容性問題

告訴伺服器,我(當前請求)從**來?

作用:1. 防盜煉:

2. 統計工作:

請求空行

空行,就是用於分割post請求的請求頭,和請求體的。

請求體(正文):

封裝post請求訊息的請求引數的

username=zhangsan響應行

組成:協議/版本 響應狀態碼 狀態碼描述

響應狀態碼:伺服器告訴客戶端瀏覽器本次請求和響應的乙個狀態。

1. 狀態碼都是3位數字

2. 分類:

1. 1xx:伺服器就收客戶端訊息,但沒有接受完成,等待一段時間後,傳送1xx多狀態碼

2. 2xx:成功。代表:200

3. 3xx:重定向。代表:302(重定向),304(訪問快取)

4. 4xx:客戶端錯誤。

* 404(請求路徑沒有對應的資源) 

* 405:請求方式沒有對應的do***方法

5xx:伺服器端錯誤。代表:500(伺服器內部出現異常)

響應空行

響應體:傳輸的資料

Servlet生命週期

servlet生命週期分為三個階段 1,初始化階段 呼叫init 方法 2,響應客戶請求階段 呼叫service 方法 3,終止階段 呼叫destroy 方法 servlet初始化階段 1 自動裝載 servlet容器啟動時自動裝載某些servlet,實現它只需要在web.xml檔案中的之間新增1 ...

Servlet生命週期

什麼時候裝載 servlet 1,servlet容器啟動時自動裝載某些servlet,實現它只需要在web.xml檔案中的 之間新增如下 1 2,在servlet容器啟動後,客戶首次向servlet傳送請求。3,servlet類檔案被更新後,重新裝載servlet。2 初始化階段 呼叫init 方法...

Servlet生命週期

1 webclient向servlet容器 tomcat 發出http請求 2 servlet容器接收webclient的請求,建立servlet物件,呼叫其init方法,3 servlet容器建立乙個httprequest物件,將webclient請求的資訊封裝到這個物件中 4 servlet容器...