jdk 原生的HttpServer(com.sun.net.HttpServer) 创建web服务器

半世苍凉 提交于 2020-08-10 20:14:18

最早的学习web编程是写一个Servlet,然后重写里面的service方法,然后去配置web.xml配置,最后部署在tomcat或者jetty等容器中启动。后面是使用一写strtus或者springmvc框架。其实通过jdk源码,可以快速创建web服务,和golang及其的相似。

HttpServer

public static void main(String[] args) {

HttpServer server = HttpServer.create();
server.bind(new InetSocketAddress(8081), 3);
server.createContext("/health", new HealthHandler());
server.createContext("/info", new InfoHandler());
executorService = Executors.newFixedThreadPool(5, DaemonThreadFactory.defaultThreadFactory(daemon));
server.setExecutor(executorService);
server.start();
}


static class HealthHandler implements HttpHandler {
    @Override
    public void handle(HttpExchange httpExchange) throws IOException {
        String responseString = "{\"status\":\"UP\"}";
        httpExchange.sendResponseHeaders(200, responseString.length());
        OutputStream os = httpExchange.getResponseBody();
        os.write(responseString.getBytes());
        os.close();
    }
}

static class InfoHandler implements HttpHandler {

    @Override
    public void handle(HttpExchange httpExchange) throws IOException {
        String responseString = "{}";
        httpExchange.sendResponseHeaders(200, responseString.length());
        OutputStream os = httpExchange.getResponseBody();
        os.write(responseString.getBytes());
        os.close();
    }

}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!