Java SE 包含用于 HTTP 客户端功能的 HttpURLConnection,但缺少类似的服务器端选项。为了避免繁琐的手动解析和格式化 HTTP 请求和响应,请考虑位于 jdk.httpserver 模块中的 Java SE 6 中引入的内置 HTTP 服务器。
这里使用内置 HTTP 服务器处理请求的示例:
package com.example; import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class SimpleHttpServer { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/test", new MyHandler()); server.setExecutor(null); // Creates a default executor server.start(); } static class MyHandler implements HttpHandler { @Override public void handle(HttpExchange t) throws IOException { String response = "This is the response"; t.sendResponseHeaders(200, response.getBytes().length); // Specify charset for getBytes() OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); } } }
访问指定 URL (例如,http://localhost:8000/test)使用浏览器查看响应:
This is the response
The com.sun. 不禁止使用包,因为它专门适用于使用 Sun/Oracle 特定 API 的开发人员编写的代码,而不是内置的 Java SE API。因此,利用 com.sun. 类作为 HTTP 服务器是可以接受的,因为这些类包含在所有 JDK 实现中。
以上是如何使用 Java SE API 创建简单的 HTTP 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!