jdk6提供了一個簡單的http server api,據此我們可以建構自己的嵌入式http server,它支援http和https協定,提供了http1.1的部分實作,沒有被實作的那部分可以通過擴充已有的http server api來實作,程式員必須自己實作httphandler接口,httpserver會調用httphandler實作類的回調方法來處理用戶端請求,在這裡,我們把一個http請求和它的響應稱為一個交換,包裝成httpexchange類,httpserver負責将httpexchange傳給httphandler實作類的回調方法.下面代碼示範了怎樣建立自己的http
server
/**
* created by intellij idea.
* user: chinajash
* date: dec 30, 2006
*/
public class httpserverapitester {
public static void main(string[] args) {
try {
httpserver hs = httpserver.create(new inetsocketaddress(8888),0);//設定httpserver的端口為8888
hs.createcontext("/chinajash", new myhandler());//用myhandler類内處理到/chinajash的請求
hs.setexecutor(null); // creates a default executor
hs.start();
} catch (ioexception e) {
e.printstacktrace();
}
}
}
class myhandler implements httphandler {
public void handle(httpexchange t) throws ioexception {
inputstream is = t.getrequestbody();
string response = "<h3>happy new year 2007!--chinajash</h3>";
t.sendresponseheaders(200, response.length());
outputstream os = t.getresponsebody();
os.write(response.getbytes());
os.close();