Servlet相關(guān)的接口和類

Sun 公司提供了一系列的接口和類用于 Servlet技術(shù)的開發(fā),其中最重要的接口是 javax.servlet.Servlet。在 Servlet 接口中定義了 5 個抽象方法,如表 1 所示。

Servlet接口的抽象方法

方法聲明 功能描述
void init(ServletConfig config) 容器在創(chuàng)建好 Servlet 對象后,就會調(diào)用此方法。該方法接收一個 ServletConfig 類型的參數(shù),Servlet 容器通過該參數(shù)向 Servlet 傳遞初始化配置信息
ServletConfig getSendetConfig() 用于獲取 Servlet 對象的配置信息,返回 Servlet 的 ServletConfig 對象
String getServletInfo() 返回一個字符串,其中包含關(guān)于 Servlet 的信息,如作者、版本和版權(quán)等信息
voidservice (ServletRequest request,ServletResponse response) 負(fù)責(zé)響應(yīng)用戶的請求,當(dāng)容器接收到客戶端訪問 Servlet 對象的請求時,就會調(diào)用此方法。容器會構(gòu)造一個表示客戶端請求信息的 ServletRequest 對象和一個用于響應(yīng)客戶端的 ServletResponse 對象作為參數(shù)傳遞給 service() 方法。在 service() 方法中,可以通過 ServletRequest 對象得到客戶端的相關(guān)信息和請求信息,在對請求進(jìn)行處理后,調(diào)用 ServletResponse 對象的方法設(shè)置響應(yīng)信息
void destroy() 負(fù)責(zé)釋放 Servlet 對象占用的資源。當(dāng)服務(wù)器關(guān)閉或者 Servlet 對象被移除時,Servlet 對象會被銷毀,容器會調(diào)用此方法

在表 1 中,列舉了 Servlet 接口中的五個方法,其中 init()、service() 和 destroy() 方法可以表現(xiàn) Servlet 的生命周期,它們會在某個特定的時刻被調(diào)用。

針對 Servlet 的接口,Sun 公司提供了兩個默認(rèn)的接口實現(xiàn)類:GenericServletHttpServlet。其中,GenericServlet 是一個抽象類,該類為 Servlet 接口提供了部分實現(xiàn),它并沒有實現(xiàn) HTTP 請求處理。

HttpServletGenericServlet 的子類,它繼承了 GenericServlet 的所有方法,并且為 HTTP 請求中的 GETPOST 等類型提供了具體的操作方法。通常情況下,編寫的 Servlet 類都繼承自 HttpServlet,在開發(fā)中使用的也是 HttpServlet 對象。

HttpServlet 類中包含兩個常用方法,這兩個方法的說明如表 2 所示。

HttpServlet 類的常用方法

方法聲明 功能描述
protected void doGet (HttpServletRequest req, HttpServletResponse resp) 用于處理 GET 類型的 HTTP 請求的方法
protected void doPost(HttpServletRequest req, HttpServletResponse resp) 用于處理 POST 類型的 HTTP 請求的方法

HttpServlet 主要有兩大功能,具體如下。

  1. 根據(jù)用戶請求方式的不同,定義相應(yīng)的 doXxx() 方法處理用戶請求。例如,與 GET 請求方式對應(yīng)的 doGet()方法,與POST 方式對應(yīng)的 doPost()方法。
  2. 通過 service() 方法將 HTTP 請求和響應(yīng)分別強(qiáng)轉(zhuǎn)為 HttpServletRequestHttpServletResponse 類型的對象。

需要注意的是,由于HttpServlet類在重寫的 service()方法中,為每一種 HTTP 請求方式都定義了對應(yīng)的 doXxx()方法,因此,當(dāng)定義的類繼承 HttpServlet 后,只需要根據(jù)請求方式重寫對應(yīng)的 doXxx() 方法即可,而不需要重寫service()方法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容