一、Servelet介紹

來源:互聯網
上載者:User

一、概述

Servlet是一種獨立於平台和協議的伺服器端的Java應用程式,可以產生動態Web頁面。

Servlet是位於Web 服務器內部的伺服器端的Java應用程式,與傳統的從命令列啟動的Java應用程式不同,Servlet由Web伺服器進行載入,該Web伺服器必須包含支援Servlet的Java虛擬機器。其結構如所示:

 

Servlet主要完成以下幾個方面的工作:

1、讀取從用戶端發送來的資料

2、讀取瀏覽器請求的資料

3、產生結果

4、發送資料給用戶端

5、發送http響應資料

 

二、HttpServlet類

HttpServlet類是一個抽象類別,擴充了GenericServlet類。HttpServlet類用於建立一個適用於Web網站並支援HTTP協議的Servlet。一個HttpServlet的子類必須至少重載以下方法中的一個。
doGet()方法,適用於HTTP GET請求。
doPost()方法,適用於HTTP POST請求。
doPut()方法,適用於HTTP PUT請求。
doDelete()方法,適用於HTTP DELETE請求。
init()和destroy()方法,管理Servlet生命週期中的資源。
getServletInfo()方法,提供Servlet本身的資訊。

 

doGet()方法概述:protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
由伺服器調用(通過service()方法)來允許一個servlet處理一個GET請求。覆寫該方法來支援一個GET請求也自動地支援一個HTTP HEAD請求。一個HEAD請求是一個GET請求,在響應中只返回要求標頭地區,沒有返回BODY地區。當覆寫這個方法的時候,讀取請求資料,寫入回應標頭,獲得響應的writer或輸出資料流對象,最後,寫入響應資料。最好包含content type和編碼(encoding)。當使用一個PrintWriter對象去返迴響應,需要在訪問PrinterWriter對象之前設定content type。servlet容器必須在提交響應前寫入頭資訊,因為在HTTP協議下,必須在傳送BODY之前傳送頭資訊。在可能的情況下,設定頭資訊的Content-Length(使用ServletResponse.setContentLength(int)方法)以允許servlet容器使用一個持久性串連向用戶端返迴響應,從而改善效能。如果整個響應適合放入響應緩衝區,那麼Content-Length會被自動設定。GET方法是比較安全的,如果用戶端的請求需要改變儲存的資料,應該使用其它HTTP方法。
The GET method should also be idempotent, meaning that it can be safely repeated. Sometimes making a method safe also makes it idempotent. For example, repeating queries is both safe and idempotent, but buying a product online or modifying data is neither safe nor idempotent. (暫時不能翻譯)
如果請求的格式錯誤,doGet會返回一個HTTP的“Bad Request”資訊。

 

doHead()方法概述:protected void doHead(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
從一個protected service()方法返回一個HTTP HEAD請求,並處理該請求。當用戶端只需要知道回應標頭,比如Content-Type或者Content-Length,用戶端只需要發送一個HEAD請求。HTTP HEAD準確地計算輸出的位元組數來設定Content-Length。
如果你覆寫該方法,可以避免計算響應的BODY,而只需設定回應標頭以改善效能。

 

doPost()方法概述:protected void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
由伺服器調用(通過service()方法)以允許一個servlet去處理一個POST請求。HTTP POST方法允許客戶在同一時間內向伺服器發送無長度限制的資料,而且好像信用卡號等都是允許的。當覆寫該方法時,讀取請求資料,寫入回應標頭,獲得響應的writer或輸出資料流對象,最後,寫入響應資料。最好包含content type和編碼(encoding)。當使用一個PrintWriter對象去返迴響應,需要在訪問PrinterWriter對象之前設定content type。當使用HTTP 1.1進行編碼時(這意味著響應帶有一個Transfer-Encoding 頭),不要設定Content-Length 頭。

 

doPut()方法概述:protected void doPut(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
由伺服器調用(通過service()方法)以允許一個servlet去處理一個PUT請求。PUT操作允許客戶好像使用FTP一樣把檔案放置到伺服器。

 

doDelete()方法概述:protected void doDelete(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
由伺服器調用(通過service()方法)以允許一個servlet去處理一DELETE請求。DELETE操作允許客戶從伺服器中刪除一個文檔或網頁。

 

doOptions()方法概述:protected void doOptions(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
由伺服器調用(通過service()方法)以允許一個servlet去處理一OPTIONS請求。OPTIONS操作決定伺服器支援哪種HTTP方法,並返回一個適當的頭資訊。舉例:如果一個servlet覆寫了doGet()方法,doOptions()方法將會返回如下頭資訊:Allow: GET, HEAD, TRACE, OPTIONS

 

doTrace()方法概述:protected void doTrace(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
由伺服器調用(通過service()方法)以允許一個servlet去處理一TRACE請求。該方法用於程式調試,無需被覆寫。

protected service()方法概述:protected void service(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException
從public service()方法接收標準的HTTP請求,並把它們指派給doXXX成員方法。該方法無需被覆寫。

 

public service()方法概述:指派客戶的請求到protected service()方法,該方法無需被覆寫。

 

 

參考:

http://www.cnblogs.com/johnny/articles/19688.aspx

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.