首先什麼是Servlet:java
Servlet本質就是一個繼承了HttpServlet的一個類文件,功能是在容器(服務器)根據客戶端不一樣請求給予相應的響應服務.web
Servlet的運行環境是Tomcat編程
Servlet提供服務的過程原理(Servlet生命週期):服務器
生命全過程:觸發: URL請求觸發多線程
加載: ClassLoader 加載相關須要用到的類 app
實例化: init()傳遞配置參數,爲服務作準備webapp
初始化: 調用構造方法,建立servlet類的對象線程
服務: doGet() doPost() servlet()方法,提供服務xml
退出服務: destroy()死亡/銷燬消除內存中的無用數據對象
從服務器開機開始,若是沒有請求觸發的話,就不會有相應的servlet對象
建立之後到結束,一直都只有一個servlet對象,而後以多線程的形式執行,多個請求到同一個servlet類
API中的過程:init()//只執行一次, 第一次初始化的時候public void init(ServletConfig config) throws ServletException
service()public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException
destroy()//webapp 退出的時候public void destroy()
如下爲Servlet生命週期圖:
Servlet 編程接口 :
GenericServlet是全部Servlet的鼻祖
用於HTTP的Servlet編程都經過繼承 javax.servlet.http.HttpServlet 實現
請求處理方法(應對Http協議請求):一、doGet 響應Get請求,經常使用
二、doPost 響應Post請求,經常使用
實例的個數:在非分佈的狀況下,一般一個Servlet在服務器中有一個實例
Servlet的多線程機制 :
Servlet體系結構是創建在Java多線程機制之上的,它的生命週期是由Web容器負責的。
當客戶端第一次請求某個Servlet時,Servlet 容器將會根據web.xml配置文件實例化這個Servlet類。當有新的客戶端請求該Servlet時,通常不會再實例化該Servlet類,也就是有 多個線程在使用這個實例。
Servlet容器會自動使用線程池等技術來支持系統的運行
注:不全面,只是我的記錄.