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();