1 Servlet 概述java
Servlet簡介——開發動態web資源的技術
Sun公司在API提供了一個servlet接口,如開發一個java程序向瀏覽器輸出數據:
1)編寫一個java類,實現servlet接口;
2)把開發好的java類部署到web服務器中。web
Servlet程序是由WEB服務器調用,web服務器收到客戶端的Servlet訪問請求後:
①Web服務器首先檢查是否已經裝載並建立了該Servlet的實例對象。若是是,則直接執行第④步,不然,執行第②步。
②裝載並建立該Servlet的一個實例對象。
③調用Servlet實例對象的init()方法。
④建立一個用於封裝HTTP請求消息的HttpServletRequest對象和一個表明HTTP響應消息的HttpServletResponse對象,而後調用Servlet的service()方法並將請求和響應對象做爲參數傳遞進去。
⑤WEB應用程序被中止或從新啓動以前,Servlet引擎將卸載Servlet,並在卸載以前調用Servlet的destroy()方法。編程
Servlet是用Java編寫的且協議和平臺都獨立的服務器端的組件。與客戶端組件Applet相對應。Servlet擴展了面向請求/響應的服務器的模塊,使用平臺專用的API進行服務器端的編程。Servlet爲服務器和基於Web的客戶之間的通訊提供了一條更爲簡單的途徑。它的特殊用途包括:瀏覽器
(1) 容許用戶之間的合做。一個Servlet能夠同時併發處理大量的請求,並且能夠同步請求,所以使用Servlets可以支持像在線會議這樣的系統。Servlets可以併發地服務多個客戶。服務器
(2) 轉發請求。Servlets可以轉發請求到其它的服務器和Servlets,所以Servlets可以被用來在多個鏡像同一個內容的服務器之間來平衡負載,在多個服務器上根據任務類型或者組織邊界分割單一的邏輯服務。併發
1. 初始化Servletspa
當服務器載入一個Servlet時,服務器運行Servlet的init方法。初始化在客戶請求被處理和Servlet被銷燬以前完成。對象
2. Servlet_Client交互接口
初始化成功後,HTTP Servlet調用Service方法處理客戶請求,Service方法將每一個請求分配處處理這個請求的方法,從而支持標準的HTTP客戶請求。HttpServlet類中的方法處理客戶請求時使用如下兩個參數:資源
(1) HttpServletRequest對象:封裝了從客戶來的數據,主要提供了訪問初始請求數據的方法和字段;訪問客戶數據時使用getParameter方法獲得一個已命名參數的值。
(2) HttpServletResponse對象:封裝了對客戶的響應。使用getWriter方法返回文本數據給客戶(能夠以HTML網頁的形式表現出來)。
Service方法支配的HTTP請求如:
doGet 處理GET、條件GET和HEAD請求
doPost 處理POST請求
doPut 處理PUT請求
doDelete 處理DELETE請求
一般,編寫的Servlet重載處理它支持的HTTP交互的方法,若是出錯,返回一個BAD_REQUEST(400)錯誤。