如何在Java中创建一个简单的HTTP服务器
在Java中创建一个简单的HTTP服务器可以通过利用Java内置的com.sun.net.httpserver.HttpServer类来完成。以下将会对此进行详细的介绍。
一、HttpServer类总览
Java提供了com.sun.net.httpserver类,该类提供了实现HTTP服务器的有限公开API。使用它可以启动一个监听指定端口的HTTP服务器,并且对请求的URL做出响应。
此类包含start()方法来启动服务器,createContext()方法来指定URL路径和处理该路径请求的回调函数。最后,通过调用HttpServer.create()并传递一个InetSocketAddress建立服务器。
import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; import java.net.InetSocketAddress; public class SimpleHttpServer { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0); server.createContext("/applications/myapp", new MyHandler()); server.setExecutor(null); // creates a default executor server.start(); } }
二、创建处理程序
HttpHandler是处理HTTP交换的回调函数。它只有一个方法void handle(HttpExchange t)。HttpExchange有请求方法getField()、响应方法sendResponseHeaders()、以及获取RequestBody和ResponseBody的方法。
import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.StandardCharsets; class MyHandler implements HttpHandler { @Override public void handle(HttpExchange t) throws IOException { String response = "This is the response"; t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); } }
三、运行服务器
最后,在编写完处理程序和主程序后,可以运行主程序以启动服务器。然后浏览器访问http://localhost:8000/applications/myapp,就会显示出我们在处理程序中定义的响应内容了。
public class Main { public static void main(String[] args) throws Exception { SimpleHttpServer.main(args); } }
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。