Servlet Servlet生命週期詳解

2021-08-25 07:23:22 字數 2809 閱讀 6795

servlet

生命週期詳解

servlet

的生命週期是由servlet

的容器來控制的。分為3

個階段:初始化階段、執行階段、銷毀階段。

øservlet

容器載入servlet

類,把它的. class

檔案中的資料讀到記憶體中。

øservlet

容器建立servletconfig

物件。servletconfig

物件包含了servlet

的初始化配置資訊。此外servlet

容器還會使得servletconfig

物件與當前的web

應用的servletcontext

物件關聯。

øservlet

容器建立servlet

物件。

øservlet

容器呼叫servlet

物件的init(servletconfig config)

方法。

通過初始化步驟,建立了servlet

物件和servletconfig

物件,並且servlet

物件與servletconfig

物件關聯,而servletconfig

物件又與當前物件的servletcontext

物件關聯。當servlet

容器完成servlet

後,servlet

物件只要通過getservletcontext()

方法就能得到web

應用的servletcontext

物件。(1)

當web

應用處於執行階段時,特定的servlet

被客戶端首次請求訪問。

(2)

在web.xml

檔案中為servlet

設定了元素

servlet1

servlet.servlet1

0

說明:

在servlet的配置當中,5的含義是:

標記容器是否在啟動的時候就載入這個servlet。

當值為0或者大於0時,表示容器在應用啟動時就載入這個servlet;

當是乙個負數時或者沒有指定時,則指示容器在該servlet被選擇時才載入。

正數的值越小,啟動該servlet的優先順序越高。

(3)

當web應用被重新啟動時,web應用中的所有servlet會在特定的時間被重新初始化。

在這個階段sevlet

可以隨時響應客戶端的請求。當servlet

容器接到訪問特定的servlet

請求時,servlet

容器會建立針對與這個請求的

servletrequest

和servletresponse

物件,然後呼叫service()

方法,並把這兩個物件當做引數傳遞給service()

方法。service()

方法通過servletrequest

物件獲得請求資訊,並處理該請求,再通過servletresponse

物件生成響應結果。

【不管是post

還是get

方法提交,都會在service

中處理,然後,由service

來交由相應的dopost

或doget

方法處理,如果你重寫了service

方法,就不會再處理dopost

或doget

了,如果重寫sevice()

方法,可以自己轉向dopost()

或doget

()方法】

注:當servlet

容器把servlet

生成的響應結果傳送給客戶後,servlet

容器會銷毀

servletrequest

和sevletresponse

物件。

當web

應用被終止時,servlet

容器會先呼叫web

應用中所有的servlet

物件的destroy

()方法,然後在銷毀servlet

物件。此外容器還會銷毀與servlet

物件關聯的servletconfig

物件。

在destroy

()方法的實現中,可以釋放servlet

所占用的資源。如關閉檔案輸入輸出流,關閉與資料庫的連線。

注:sevlet

的生命週期中,servlet

的初始化和銷毀只會發生一次,因此init()

和destroy

()方法只能被servlet

容器呼叫一次,兒service()

方法取決與servlet

被客戶端訪問的次數。

servlet servlet攔截分析

這裡有個頁面,此時,如果你使用下面這段servlet配置攔截,會發現攔截不到該頁面請求。這裡要注意下面配置中的servlet name的ex12 7和頁面中的action ex12 7 沒有關係,僅僅只是起名相同了而已,是可以不一樣的。請求結果會報404錯誤 原因是因為這個請求不符合攔截規則,沒有攔...

Servlet Servlet生命週期詳解

servlet 生命週期詳解 servlet 的生命週期是由 servlet 的容器來控制的。分為 3個階段 初始化階段 執行階段 銷毀階段。servlet 容器載入 servlet 類,把它的.class 檔案中的資料讀到記憶體中。servlet 容器建立 servletconfig 物件。ser...

Servlet Servlet與JSP九大內建物件

servlet與jsp九大內建物件對照表 jsp內建物件out與servlet中response.getwriter 獲得物件並不完全匹配,jsp中是jspwriter型別,而servlet中獲得是printwriter型別,其實乙個是在jsp中輸出,乙個是在servlet中輸出,型別肯定不一樣 r...