GenericServlet 類可以說時JSDK 中最重要的類,也是最基本的類。程式員要編寫Servlet 應用程式,一般要繼承JSDK 提供的GenericServlet 類或它的子類HttpServlet 類。
編程思路:下面是一個簡單的例子,在伺服器端執行它,就是向用戶端的瀏覽器中輸出“HELLO WORLD "以及伺服器的時間等資訊。
HelloWorldServlet.java 的原始碼如下:
import java.io.*;
import java.util.Date;
import javax.servlet.*;
public class HelloWorldServlet extends GenericServlet
{
String initString;
public void init(ServletConfig config) throws ServletException
{
//父類的init方法完成對象ServletConfig的儲存工作。
super.init(config);
initString=new String("I have veen initialized");
}
//在Sercice方法中,實現對客戶請求的響應。它拋出兩個例外ServletException
public void service(ServletRequest req,ServletResponse res)
throws ServletException,IOException
{
//類Date得到伺服器當前的時間。
Date today = new Date( );
ServletOutputStream out = res.getOutputStream( );
out.println("HELLO WORLD");
out.println(today.toString());
out.println(getServletInfo());
}
public void Destroy( )
{
}
public String getServletInfo( )
{
return "HELLO WORLD";
}
}
編程技巧說明:
Service 方法是類GenericServlet 中最重要的方法。每次客戶向伺服器發出請求時,伺服器就會調用這個方法。編程人員若想對客戶的請求進行響應的話,就必須覆蓋這個方法,並在這個方法中加入自己的代碼來具體實現對客戶的響應。Service 有兩個參數,ServletRequest 和ServletResponse。其中ServletRequest 儲存了客戶向伺服器發請求的各種屬性。
對象ServletResponse 用來設定如何對客戶進行響應,它有以下三個方法:
* setContentType(String) 用來設定對客戶響應的類型。
* setContentlength(int) 用來設定對客戶響應的長度。
* getOutputStream() 它返回一個寫響應資料的輸出資料流。
在例子中,我們把這個輸出資料流傳遞給ServletOutputStream 對象,它是java.io.outputStream 的子類,我們可以通過它把應答資料送還到用戶端的瀏覽器中。