Servlet、Servlet容器

Servlet

    Servlet是用Java編寫的服務器端程序,其主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。

Servlet接口

    Servlet接口是所有Servlet類必須間接或者直接實現的一個接口,它定義了Servlet和Servlet容器之間的約定,這個約定是:Servlet容器將Servlet類加載到內存中並生成它的實例和調用該實例的具體方法,在一個應用程序中,一個Servlet類只能有一個實例( 那麼如何同時處理多個請求?)。

Servlet 接口中定義的方法以及Servlet的生命週期


public interface Servlet {
    void init(ServletConfig var1) throws ServletException;
 
    ServletConfig getServletConfig();
 
    void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
 
    String getServletInfo();
 
    void destroy();

     接口中包括三個方法 init(), service(), destroy(),代表了Servlet從創建到工作最後被銷燬的過程,Servlet容器會根據下列規則來調用這三個方法。

init(): 當Servlet第一次被請求,Servlet就會調用這個方法來初始化一個Servlet對象,但是這個方法在後續的請求中不會被Servlet容器調用,就像人只能出生一次,在調用這個方法時,Servlet容器會傳入一個ServletConfig對象從而對Servlet對象進行初始化。

service(): 每當客戶端請求Servlet時,Servlet容器就會調用這個方法,在第一次請求中,Servlet容器會調用init()方法初始化一個Servlet對象,然後調用service方法。在之後的請求中,Servlet容器直接調用service方法。 這個方法具有兩個參數ServletRequest對象和ServletResponse對象,這兩個對象都是由Servlet容器封裝好的不需要我們實現,可以直接使用。
    ServletRequest:封裝了當前的Http請求,因此開發人員無需解析和操作原始的Http數據。
    ServletResponse: 表示當前用戶的Http響應,程序員只需要直接操作ServletResponse對象就能把響應發回給用戶。
destory(): 當需要銷燬Servlet時,Servlet容器就會調用這個方法,這個方法會在所有的線程執行完或者超時後執行,在執行完後Servlet容器不會再把請求發送給這個Servlet,這個方法可以用來釋放Servlet佔用的資源和執行一些清理工作。

Servlet容器

Web服務器

    web服務器是通過Http協議來傳輸信息的一種程序,用戶在瀏覽器輸入一個url,服務器通過http協議發送網頁信息到客戶端,然後用戶獲取網頁進行瀏覽。Http協議指明瞭請求(Request)消息和響應(Response)消息的格式。

Servlet容器

    我們發現,通過客戶端和web服務器只能實現靜態網頁的請求,如果用戶要根據自己的需求來讀取不同的動態網頁,這種方式無法滿足。Servlet容器的作用就是充當web服務器和Servlet之間的橋樑,web服務器通過Servlet容器來操作Servlet動態的生成網頁,Servlet容器就是來裝載Servlet的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章