本節書摘來自異步社群《servlet、jsp和spring mvc初學指南》一書中的第1章,第1.1節,作者:【加】budi kurniawan(克尼亞萬) , 【美】paul deck著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
servlet api是開發servlet的主要技術。掌握servlet api是成為一名強大的java web開發者的基本條件,你必須熟悉servlet api中定義的核心接口和類。
本章介紹了servlet api,并教你如何編寫第一個servlet。
servlet api有以下4個java包:
javax.servlet,其中包含定義servlet和servlet容器之間契約的類和接口。
javax.servlet.http,其中包含定義http servlet和servlet容器之間契約的類和接口。
javax.servlet.annotation,其中包含标注servlet、filter、listener的标注。它還為被标注元件定義中繼資料。
javax.servlet.descriptor,其中包含提供程式化登入web應用程式的配置資訊的類型。
本章主要關注javax.servlet和javax.servlet.http的成員。
圖1.1中展示了javax.servlet中的主要類型。

圖1.1 javax.servlet中的主要類型
servlet技術的核心是servlet,它是所有servlet類必須直接或間接實作的一個接口。在編寫實作servlet的servlet類時,直接實作它。在擴充實作這個接口的類時,間接實作它。
servlet接口定義了servlet與servlet容器之間的契約。這個契約歸結起來就是,servlet容器将servlet類載入記憶體,并在servlet執行個體上調用具體的方法。在一個應用程式中,每種servlet類型隻能有一個執行個體。
使用者請求緻使servlet容器調用servlet的service方法,并傳入一個servletrequest執行個體和一個servletresponse執行個體。servletrequest中封裝了目前的http請求,是以,servlet開發人員不必解析和操作原始的http資料。servletresponse表示目前使用者的http響應,使得将響應發回給使用者變得十分容易。
對于每一個應用程式,servlet容器還會建立一個servletcontext執行個體。這個對象中封裝了上下文(應用程式)的環境詳情。每個上下文隻有一個servletcontext。每個servlet執行個體也都有一個封裝servlet配置的servletconfig。
下面來看servlet接口。上面提到的其他接口,将在本章的其他小節中講解。