## Servlet是什么
Servlet(Server Applet)是[Java](https://baike.baidu.com/item/Java/85979)Servlet的簡稱,稱為小服務程序或服務連接器,用Java編寫的[服務器](https://baike.baidu.com/item/%E6%9C%8D%E5%8A%A1%E5%99%A8/100571)端程序,具有獨立于平臺和[協議](https://baike.baidu.com/item/%E5%8D%8F%E8%AE%AE/13020269)的特性,主要功能在于交互式地瀏覽和生成數據,生成動態[Web](https://baike.baidu.com/item/Web/150564)內容。
狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。Servlet運行于支持Java的應用服務器中。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基于[HTTP協議](https://baike.baidu.com/item/HTTP%E5%8D%8F%E8%AE%AE/1276942)的Web服務器。
最早支持Servlet標準的是JavaSoft的Java[Web Server](https://baike.baidu.com/item/Web%20Server/9306055),此后,一些其它的基于Java的Web服務器開始支持標準的Servlet。
>[info] 可以通過百度百科深入了解:[servlet\_百度百科](https://baike.baidu.com/item/servlet/477555?fr=aladdin)
> 英語好的同學可以直接通過官方了解:[Apache Tomcat 10 (10.0.20) - Documentation Index](https://tomcat.apache.org/tomcat-10.0-doc/index.html)
>[success] 送大家一個有道翻譯的google插件:[有道詞典劃詞擴展2019_v3.3.2](https://www.aliyundrive.com/s/XJ1KtrB6h7Z)
所以,我們學習JavaWeb其實就是在學習Servlet的整個實現過程與方法,所以我們寫的基本所有JavaWeb的類都是繼承`HttpServlet`類并重寫父類的方法,在Servlet的實現中,我們把Tomcat啟動后的進程叫做`容器`,在容器關閉之前每一個Servlet的類都運行在里面,也就是說通過Tomcat寫的Servlet類讓我們能夠用Java的語言去實現Http的服務,這一點是必須要明確的,因為Servlet不是一個獨立的個體,它也是依賴JDK的。
<br/>
:-: 
:-: HttpServlet類的繼承實現關系關系
<br/>
## **Servlet的生命周期**
* Servlet 接口里面有5個方法,其中三個生命周期方法和兩個普通方法
* 實例化->使用構造方法創建對象
* 初始化->執行init方法:Servlet 的生命期中,僅執行一次 init() 方法,它是在服務器裝入 Servlet 時執行的,即第一次訪問這個Servlet才執行
* 服務->執行service方法,service() 方法是 Servlet 的核心。每當一個客戶請求一個HttpServlet 對象,該對象的service() 方法就要被調用