作 者 : 仙人掌工作室
3.1 Servlet基本結構
下面的代碼顯示了一個簡單Servlet的基本結構。該Servlet處理的是GET請求,所謂的GET請求,如果你不熟悉HTTP,可以把它看成是當用戶在浏覽器地址欄輸入URL、點擊Web頁面中的鏈接、提交沒有指定METHOD的表單時浏覽器所發出的請求。Servlet也可以很方便地處理POST請求。POST請求是提交那些指定了METHOD=“POST”的表單時所發出的請求,具體請參見稍後幾節的討論。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SomeServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// 使用“request”讀取和請求有關的信息(比如Cookies)
// 和表單數據
// 使用“response”指定HTTP應答狀態代碼和應答頭
// (比如指定內容類型,設置Cookie)
PrintWriter out = response.getWriter();
// 使用 "out"把應答內容發送到浏覽器
}
}
如果某個類要成為Servlet,則它應該從HttpServlet 繼承,根據數據是通過GET還是POST發送,覆蓋doGet、doPost方法之一或全部。doGet和doPost方法都有兩個參數,分別為HttpServletRequest 類型和HttpServletResponse 類型。HttpServletRequest提供訪問有關請求的信息的方法,例如表單數據、HTTP請求頭等等。HttpServletResponse除了提供用於指定HTTP應答狀態(200,404等)、應答頭(Content-Type,Set-Cookie等)的方法之外,最重要的是它提供了一個用於向客戶端發送數據的PrintWriter 。對於簡單的Servlet來說,它的大部分工作是通過println語句生成向客戶端發送的頁面。
注意doGet和doPost拋出兩個異常,因此你必須在聲明中包含它們。另外,你還必須導入java.io包(要用到PrintWriter等類)、javax.servlet包(要用到HttpServlet等類)以及javax.servlet.http包(要用到HttpServletRequest類和HttpServletResponse類)。