天天看點

Servlet

一、Servlet的特點

      高效

      友善

      Servlet提供了大量的實用工具例程,例如自動地解析和解碼HTML表單資料、讀取和設定HTTP頭、處理Cookie、跟蹤會話狀态等。

      功能強大

      在Servlet中,許多使用傳統CGI程式很難完成的任務都可以輕松地完成。例如,Servlet能夠直接和Web伺服器互動,而普通的CGI程式不能。Servlet還能夠在各個程式之間共享資料,使得資料庫連接配接池之類的功能很容易實作。

      可移植性好

      Servlet用Java編寫,Servlet API具有完善的标準。是以,為I-Planet Enterprise Server寫的Servlet無需任何實質上的改動即可移植到Apache、Microsoft IIS或者WebStar。幾乎所有的主流伺服器都直接或通過插件支援Servlet。

      節省投資

      不僅有許多廉價甚至免費的Web伺服器可供個人或小規模網站使用,而且對于現有的伺服器,如果它不支援Servlet的話,要加上這部分功能也往往是免費的(或隻需要極少的投資)。

二、Servlet的主要功能

      Servlet的主要功能在于互動式地浏覽和修改資料,生成動态Web内容。這個過程為:

  伺服器将請求資訊發送至Servlet

  Servlet生成響應内容并将其傳給Server。響應内容動态生成,通常取決于用戶端的請求

  伺服器将響應傳回給用戶端

三、JAVA Servlet的優勢

  采用Servlet,伺服器可以完全授權對本地資源的通路(如資料庫),并且Servlet自身将會控制外部使用者的通路數量及通路性質

  Servlet可以是其它服務的用戶端程式,例如,它們可以用于分布式的應用系統中,可以從本地硬碟,或者通過網絡從遠端硬碟激活Servlet。

  Servlet可被連結(chain)。一個Servlet可以調用另一個或一系列Servlet,即成為它的用戶端。

  采用Servlet Tag技術,可以在HTML頁面中動态調用Servlet。

  Servlet API與協定無關。它并不對傳遞它的協定有任何假設。

  Servlet提供了Java應用程式的所有優勢——可移植、穩健、易開發。使用Servlet 的Tag技術,Servlet能夠生成嵌于靜态HTML頁面中的動态内容。

  一個Servlet被用戶端發送的第一個請求激活,然後它将繼續運作于背景,等待以後的請求。每個請求将生成一個新的線程,而不是一個完整的程序。多個客戶能夠在同一個程序中同時得到服務。一般來說,Servlet程序隻是在Web Server解除安裝時被解除安裝。

四、Servlet生命周期

  裝載Servlet。這項操作一般是動态執行的。然而,Server通常會提供一個管理的選項,用于在Server啟動時強制裝載和初始化特定的Servlet。

  Server建立一個Servlet的執行個體

  Server調用Servlet的init()方法

  一個用戶端的請求到達Server

  Server建立一個請求對象

  Server建立一個響應對象

  Server激活Servlet的service()方法,傳遞請求和響應對象作為參數

  service()方法獲得關于請求對象的資訊,處理請求,通路其他資源,獲得需要的資訊

  service()方法使用響應對象的方法,将響應傳回Server,最終到達用戶端。service()方法可能激活其它方法以處理請求,如doGet()或doPost()或程式員自己開發的新的方法

  對于更多的用戶端請求,Server建立新的請求和響應對象,仍然激活此Servlet的service()方法,将這兩個對象作為參數傳遞給它。如此重複以上的循環,但無需再次調用init()方法。一般Servlet隻初始化一次 ,當Server不再需要Servlet時(一般當Server關閉時),Server調用Servlet的Destroy()方法。

本文轉自kenty部落格園部落格,原文連結http://www.cnblogs.com/kentyshang/archive/2007/01/16/621650.html如需轉載請自行聯系原作者

kenty