Servlet和JavaBean
1.Servlet簡介:
Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層,使用 Servlet,您可以收集來自網頁表單的用戶輸入,呈現來自數據庫或者其他源的記錄,還可以動態創建網頁。
2.Servlet的主要作用:
- 讀取客戶端(瀏覽器)發送的顯式的數據。這包括網頁上的 HTML 表單,或者也可以是來自 applet 或自定義的 HTTP 客戶端程序的表單。
- 讀取客戶端(瀏覽器)發送的隱式的 HTTP 請求數據。這包括 cookies、媒體類型和瀏覽器能理解的壓縮格式等等。
- 處理數據並生成結果。這個過程可能需要訪問數據庫,執行 RMI 或 CORBA 調用,調用 Web 服務,或者直接計算得出對應的響應。
- 發送顯式的數據(即文檔)到客戶端(瀏覽器)。該文檔的格式可以是多種多樣的,包括文本文件(HTML 或 XML)、二進制文件(GIF 圖像)、Excel 等。
- 發送隱式的 HTTP 響應到客戶端(瀏覽器)。這包括告訴瀏覽器或其他客戶端被返回的文檔類型(例如 HTML),設置 cookies 和緩存參數,以及其他類似的任務。
3.Servlet生命周期:
- Servlet 通過調用 init () 方法進行初始化。
- Servlet 調用 service() 方法來處理客戶端的請求。
- Servlet 通過調用 destroy() 方法終止(結束)。
- 最後,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的。
init()方法:它在第一次創建 Servlet 時被調用,在後續每次用戶請求時不再調用。因此,它是用於一次性初始化;
public void init() throws ServletException {
// Put your code here
}
service()方法:執行實際任務的主要方法;Servlet容器(即 Web 服務器)調用 service()方法來處理來自客戶端(瀏覽器)的請求,並把格式化的響應寫回給客戶端。每次服務器接收到一個 Servlet請求時,服務器會產生一個新的線程並調用服務。service() 方法檢查 HTTP 請求類型(GET、POST、PUT、DELETE 等),並在適當的時候調用 doGet、doPost、doPut,doDelete 等方法。
public void service(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
response.setContentType("text/html;charset=gbk");
//response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Servlet1</title></head>");
out.println("<body bgcolor=\"#ffffff\">");
out.println("<p>上海</p>");
out.println("</body></html>");
}
doGet()方法:GET 請求來自於一個 URL 的正常請求,或者來自於一個未指定 METHOD 的 HTML 表單,它由 doGet() 方法處理;
doPost()方法:POST 請求來自於一個特別指定了 METHOD 為 POST 的 HTML 表單,它由 doPost() 方法處理。
Destroy()方法:destroy() 方法只會被調用一次,在 Servlet 生命周期結束時被調用。
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
4.Javabean簡介:
JavaBean是一種專門構建的Java類,它使用Java編寫,並根據JavaBeans API規範進行編碼。
以下是將JavaBean與其他Java類有區別的獨特特征 -
- 它提供了一個默認的,無參數的構造函數。
- 它應該是可序列化的,可以實現Serializable接口。
- 它可能有許多可以讀取或寫入的屬性。
- 它可能有一些getter和setter方法的屬性。
Servlet和JavaBean