1. 程式人生 > >How Tomcat Works 2:一個簡單的Servlet 容器

How Tomcat Works 2:一個簡單的Servlet 容器

這一章的主要內容是講解如何構造自己的Servlet 容器。

我們首先看一個servlet 容器需要做什麼工作來為一個servlet 來提供HTTP請求。

Servlet 程式設計是通過 javax.servlet 和 javax.servlet.http 這兩個包的類和介面來實現的。這裡面最重要的就是 javax.servlet.Servlet 介面。所有的servlet 實現類必須實現這個介面。

這個介面主要有5個方法:

其中,init,service 和 destory 是servlet 的生命週期方法。在servlet 已經初始化後,init 方法將會被servlet 容器所呼叫。而且只會被呼叫一次,以此表明servlet 已經被載入到服務之中。

init 方法必須在任何請求呼叫之前執行完畢。

servlet 容器為 servlet 請求呼叫它的service 方法,這個方法傳遞一個ServletRequest 請求和一個ServletResponse 響應。前者包含請求資訊,後者封裝servlet 的響應。在整個Servlet週期中,service 方法會被多次呼叫。

當從服務中移除一個servlet 例項的時候,servlet 容器呼叫destory 方法。這個方法的呼叫通常發生在 servlet 容器正在關閉或者servlet 容器需要一些空閒記憶體的時候。

一個簡單的Servlet 容器

一個複雜的Servlet 容器