Servlet介面為所有servlet提供常見的行為。
GenericServlet
類實現了Servlet
,ServletConfig
和Serializable
介面。它提供除了service
方法之外,還實現了這些介面的所有方法。
GenericServlet
類可以處理任何型別的請求,因此它與協定無關。
可以通過繼承GenericServlet
類並提供服務方法的實現來建立通用的servlet
。
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簡單例子。
開啟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 可以看到類似下面的介面 -