下面的代碼顯示了一個簡單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基本結構,如果某個類要成為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類)。
最後,doGet和doPost這兩個方法是由service方法調用的,有時你可能需要直接覆蓋service方法。以上是Servlet基本結構