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