1、簡介:Servlet程式設計是透過javax.Servlet和javax.servlet.http這兩個套件的類別和介面實現的,其中javax.servlet.Servlet介面至關重要,所有的Servlet必須實作該介面或繼承實作了該介面的類別。
2、Servlet介面有5個方法:
public void init(ServletConfig config) throws ServletException;
#public void service(ServletRequest request, ServletResponse response) throes ServletException, IOException;
public void destroy();
public ServletConfig getServletConfig();#Serv);
3、Servlet宣告週期方法:
init、service、destroy(1)init:在Servlet類別已經初始化之後,init方法會被servlet容器調用。 init方法只被呼叫一次,表示servlet已經被載入進服務了。 init方法必須在servlet可以成功接收任何請求之前成功運行。 servlet程式設計師可以透過覆寫這個方法來寫入只需要執行一次的初始化程式碼,例如架子啊資料庫驅動,值初始化等。在其他情況下,該方法是空的。
(2)Servlet,servlet容器給servlet容器呼叫service方法,該方法接收一個ServletRequest參數和一個ServletResponse參數,Servlet Request物件用於向servlet中傳遞客戶端的請求參數,ServletResponse物件負責封裝Servlet響應。在servlet生命週期中,service()方法會被呼叫多次。
(3)Destroy,用於從伺服器中移除一個servlet實例,通常使用在servlet容器正在關閉或servlet容器需要一些空閒記憶體時,僅在所有servlet容器的service方法已經退出或逾時淘汰的時候,這個方法才被呼叫。在servlet容器已經調用完destroy方法之後,在同一個servlet裡將不會再調用service方法,destroy方法提供了一個機會來清理任何已經被佔用的資源,例如內存,文件句柄和線程,並確保任何持久化狀態和servlet的記憶體目前狀態是同步的。
4、Servlet容器針對每個servlet的HTTP請求的工作過程
(1)第一次呼叫servlet的時候,載入該servlet類別並呼叫servlet的init方法(僅一次)
(2)對每次請求,建構一個javax.servlet.ServletRequest實例和一個javax.servletServletResponse實例。
(3)呼叫servlet的service方法,同時傳遞ServletRequest和ServletResponse物件。
(4)當servlet類別被關閉時,呼叫servlet的destroy方法並卸載srvlet類別。
以上是Tomcat—— 簡單的Servlet容器的詳細內容。更多資訊請關注PHP中文網其他相關文章!