標籤:XML 輸出 優先順序 init 分享 指定 class 包含 線程
Servlet應用開發介面:
javax.servlet.Servlet:
- init()方法:調用在構造方法之後,在service方法之前;
- service()方法:調用此方法允許Servlet響應請求,在Servlet成功初始化之前無法調用;
- destroy()方法:當一個Servlet被從服務中去除時,Servlet會調用此方法。當這個對象service()方法所有的線程未全部退出或者被容器認為發生逾時操作時,此方法不會調用
- getServletConfig()方法:get 一個 ServletConfig,
- getServletInfo()方法:允許Servlet向主機的Servlet運行提供有關資訊
Servlet生命週期:
- 用戶端發送請求
- Servlet容器解析請求
- 建立Servlet執行個體
- 調用init方法
- 調用service方法
- 輸出響應資訊
- 返迴響應
- 調用destory方法
第一次訪問Servlet時:
會調用servlet的構造方法,調用init()在一個Servlet的生命週期中只執行一次
在伺服器啟動載入網站是:
會調用service方法
具體什麼時候載入需要通過web.xml設定檔中對應servlet設定項<load-on-startup>節點進行設定:
1 load-on-startup標記容器是否在啟動的時候執行個體化並調用其init()方法的優先順序。2 它的值表示servlet應該被載入的順序3 當值為0或者大於0時,表示容器在應用啟動時就載入並初始化這個servlet;4 如果值小於0或未指定時,則表示只有在第一次請求的容器才在該servlet調用初始化函數5 正值越小,servlet的優先順序越高,應用啟動時就越先載入。6 值相同時,容器就會自己選擇順序來載入。
load-on-startup
Servlet在什麼時候被銷毀:
伺服器關閉;更新、停止web模組的時候;由Servlet容器根據情況(destory方法)
destory()方法:
在Servlet執行個體被銷毀之前調用,在一個Servlet的生命週期中只執行一次
Servlet生命週期可以分為四個階段(總結):
- 載入和執行個體化:調用構造方法,由servlet容器完成
- 初始化:調用init方法
- 處理客戶請求:service方法(doGet、doPost)
- 銷毀:銷毀之前調用destroy方法
ServletConfig包含web程式部署描述符中定義的參數,servletConfig是由Servlet容器執行個體化
每個Web應用啟動後,Servlet容器都會建立唯一的一個ServletContext對象,該對象包含整個web程式的資訊
Servlet是多線程應用
JavaEE複習二