如何在Java中创建一个简单的HTTP服务器
2024-08-03
50
在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); } }更新于:1个月前
赞一波!1
相关文章
- 一些简单html实例集合
- IIS配置HTTP 301重定向到HTTPS实测有效
- PHP之内置web服务器
- 如何正确安装IIS服务器
- Apache报错:无法使用可靠的服务器域名
- C#的网站通过Windows性能计数器监测服务器的性能
- linux的shell脚本中如何在一个字符串中查找指定字符串是否存在
- Layui 数据表格方法渲染中的复杂表头简单使用示例
- cms系统套标签的简单介绍
- 你如何在 Python 中循环字典?
- 如何在 Anaconda 中安装 Python 包?
- 你如何在 Python 中编写自动售货机代码?
- 如何在 Python 中读取 .data 文件?
- Windows多线程编程之使用Windows API CreateThread创建一个线程
- 如何在 Python 中创建静态类数据和静态类方法?
- 如何在 Python 中使用 Matplotlib 创建一个空的 Figure?
- 如何在 seaborn 中创建三角相关热图?
- 如何在Python中创建AGE计算器Web App PyWebIO?
- 如何在 Python 中只删除空文件夹?
- 如何在 Pandas 中创建一个空的数据帧并向其附加行和列?
文章评论
全部评论