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創建動態網站項目,請參考:http://www.yiibai.com/servlet/creating-servlet-in-eclipse-ide.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 可以看到類似下面的界面 -

Servlet