servlet的生命週期從servlet類載入,到建立servlet類例項,servlet的初始化(真正成為乙個servlet),有請求到來,呼叫service方法(主要工作),直到servlet被destroy;
1.servlet類載入:
1.1 啟動web容器後,容器去尋找應用的部署描述檔案(web.xml),從部署描述檔案中讀取到上下文初始化引數,此時建立乙個
servletcontext物件,應用的所有部分共享此上下文;
1.2 容器為context-param建立string名值對(引數名和引數值均為string型別);
1.3 容器將名值對交給servletcontext物件;
1.4 如果在部署描述檔案中有listener標籤的話,建立listener例項;
1.5 容器呼叫listener的contextinitialized方法,傳入servletcontextevent物件,此物件包含乙個servletcontext引用,事件處理**可以得到上下文初始化引數。
2.建立servlet類例項:
2.1 容器讀取部署描述檔案中的servlet標籤,包括初始化引數(init-param);
2.2 容器建立servletconfig例項;
2.3 容器為servlet初始化引數建立名值對;
2.4 容器用名值對填充servletconfig;
2.5 容器建立servlet類的新例項(一般在第一次請求到來時建立,也可通過設定load-on-start引數在容器啟動時建立)。
3.servlet初始化:
servlet的init方法在乙個生命週期中只被執行一次,呼叫service方法前,初始化必須完成;
在genericservlet中有兩個init方法,其中有引數的init方法,呼叫了無參的init方法,所以,若需要重寫init方法,只需要重寫無參的。
4.servlet的service方法:
每次請求到來,都會呼叫service方法,在httpservlet中,service方法用於判斷請求的方法(不用重寫),而去重寫doget方法或dopost
方法。5.servlet的destroy方法:
銷毀servlet例項時呼叫,意味著servlet的生命週期結束。
參考:head first servlet & jsp。
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容器...