Servlet GenericServlet類


Servlet介面為所有servlet提供常見的行為。

GenericServlet類實現了ServletServletConfigSerializable介面。它提供除了service方法之外,還實現了這些介面的所有方法。

GenericServlet類可以處理任何型別的請求,因此它與協定無關。

可以通過繼承GenericServlet類並提供服務方法的實現來建立通用的servlet

GenericServlet類的方法

GenericServlet類中有很多方法。它們分別如下:

序號 方法 描述
1 public void init(ServletConfig config) 用於初始化servlet
2 public abstract void service(ServletRequest request, ServletResponse response) 為傳入請求提供服務,每當使用者請求一個servlet時呼叫它。
3 public void destroy() 在整個生命週期中僅呼叫一次,以表明servlet正在被銷毀。
4 public ServletConfig getServletConfig() 返回ServletConfig物件
5 public String getServletInfo() 返回有關servlet的資訊,如作者,版權,版本等。
6 public void init() 這是servlet程式員的一個方便的方法,現在不需要呼叫super.init(config)
7 public ServletContext getServletContext() 返回ServletContext的物件。
8 public String getInitParameter(String name) 返回給定引數名稱的引數值。
9 public Enumeration getInitParameterNames() 返回web.xml檔案中定義的所有引數。
10 public String getServletName() 返回servlet物件的名稱。
11 public void log(String msg) 在servlet紀錄檔檔案中寫入給定的訊息。
12 public void log(String msg,Throwable t) 將說明性訊息寫入servlet紀錄檔檔案和堆疊跟蹤。

通過繼承GenericServlet類的Servlet範例

下面是一個通過繼承GenericServlet類的servlet簡單例子。

開啟Eclipse,建立一個動態網站專案(Dynamic Web Project):genericservlet,如下 -

註:有關如何在Eclipse建立動態網站專案,請參考:/10/111/3353.html

MyServlet.java的程式碼如下所示 -

package com.yiibai;

import java.io.*;
import javax.servlet.*;

public class MyServlet extends GenericServlet {
    public void service(ServletRequest req, ServletResponse res) throws IOException, ServletException {

        res.setContentType("text/html");

        PrintWriter out = res.getWriter();
        out.print("<html><body>");
        out.print("<div style=\"text-align:center;\"><h2>hello generic servlet</h2></div>");
        out.print("</body></html>");

    }
}

執行上面專案,開啟瀏覽器,輸入網址: http://localhost:8080/genericservlet/index 可以看到類似下面的介面 -