天天看點

Spring學習筆記(二)Servlet基礎

魯春利的工作筆記,好記性不如爛筆頭

Servlet的架構是由兩個Java包組成:javax.servlet和javax.servlet.http。

    在javax.servlet包中定義了所有的Servlet類都必須實作或擴充的的通用接口和類。

    在javax.servlet.http包中定義了采用HTTP通信協定的HttpServlet類。

Servlet的架構的核心是javax.servlet.Servlet接口,所有的Servlet類都直接或間接實作這一接口。

    每一個Servlet就是一個運作于Web server中的小Java程式。Servert接收并響應Web client的請求,通常為HTTP協定的請求。

    為了實作Servlet,可以實作該接口,或者是繼承javax.servlet.GenericServlet或javax.servlet.http.HttpServlet。

    Servlet接口中定義了5個方法,其中有3個方法代表了Servlet的生命周期:

        init方法:初始化servlet對象

        service方法:處理用戶端請求

        destory方法:當Servlet對象退出生命周期時,負責釋放占有的資源

    除此之外,Servlet接口還定義了getServletConfig和getServletInfo方法:

        getServletConfig方法:用來擷取servlet啟動資訊

        getServletInfo方法:使用者來氣servlet本身的基本資訊,如作者、版本号或版權資訊等

GenericServlet定義了一個通用的、與實作協定無關的Servlet。

    GenericServlet簡化了Servlet程式的開發,因為它已經對于Servlet生命周期的init和destory提供了簡單實作(空方法),并且實作了ServletConfig接口的所有方法。另外,GenericServlet也實作了ServletContext 接口中聲明的log方法。

HttpServlet類擴充了GenericServlet并且提供了servlet接口中基于HTTP的實作,一般情況下都是通過該類來擴充Servlet。

    HttpServlet定義了兩種形式的service方法:

實作自定義Servlet的方式

    實作Servlet接口,實作其所有方法;

    繼承GenericServlet抽象類,實作其service方法;

    繼承HttpServlet抽象類,實作其doGet或doPost方法。

HttpServet的響應過程

    當Web容器接收到某個Servlet請求時,Servlet把請求封裝成一個HttpServletRequest對象,然後把對象傳給Servlet的對應的服務方法。

    HttpServlet容器響應Web客戶請求流程如下:

        1)Web客戶向Servlet容器發出Http請求;

        2)Servlet容器解析Web客戶的Http請求;

        3)Servlet容器建立一個HttpRequest對象,在這個對象中封裝Http請求資訊;

        4)Servlet容器建立一個HttpResponse對象;

        5)Servlet容器調用HttpServlet的service方法,把HttpRequest和HttpResponse對象作為service方法的參數傳給HttpServlet對象;

        6)HttpServlet調用HttpRequest的有關方法,擷取HTTP請求資訊;

        7)HttpServlet調用HttpResponse的有關方法,生成響應資料;

        8)Servlet容器把HttpServlet的響應結果傳給Web客戶。

自定義Servlet示例

下一篇: Spring MVC 1

繼續閱讀