Java处理http协议相关初步(二)――httpserver (三)

2014-11-24 07:45:54 · 作者: · 浏览: 2
eateContext(),start()方法都是抽象方法(当然HttpServer也是抽象类),是怎么调用的呢?在网上找到其源码时,才发现,HttpServer的创建首先是通过create(InetSocketAddress addr, int backlog)这个静态方法创建,这里面是通过 HttpServerProvider(它也是抽象类,其子类 sun.net.httpserver.DefaultHttpServerProvider中的createHttpServer)来创建的,其后在具体创建过程中则是new了一个 HttpServerImpl类的实例(这个只是一个包装,具体实现是ServerImpl类来完成最后的HttpServer对象的生成);查看ServerImpl的实现,才知道setExecutor设置的是处理TCP链接请求的线程,而createContext 里设置的是针对具体的请求进行处理的回调方法,而且可以通过设置调用多次createContext(),设置不同路径采用不同或相同的处理方法。为什么绕了这么多,采用了什么设计模式,我是还没到那个高度,期待有人能给留言解说下;或者自己以后慢慢的体会吧!

后面再把这些东西合起来,想个大概的应用场景。


摘自 w7849516230的专栏