【Java 18】简易 Web 服务器
在开发中,经常会需要查看网页文件的内容。比如,查看代码生成的 HTML 格式的报表文件。通常的做法是启动一个简易的 Web 服务器。很多语言都提供了相关的工具。比如,我最常用的是 Python 提供的 HTTP 服务器。在 Java 18 之前,Java 并没有提供这样的功能。
Java 18 新增了一个 jwebserver
工具,可以启动一个简易的 Web 服务器,来访问本地网页。可以在 JDK 的 bin
目录下找到这个工具。jwebserver
有几个启动参数:
-p
指定端口,默认值为8080
。-b
指定绑定地址,默认值为127.0.0.1
。使用0.0.0.0
来绑定到全部网络接口。-d
指定网页文件的目录,默认为当前目录。-o
指定日志级别,默认为info
。另外两个可选值是none
和verbose
。
jwebserver
工具使得 Java 开发人员不再需要安装其他语言以使用 Web 服务器。
除了 jwebserver
工具之外,Java 18 同时新增了相关的 API,允许在代码中创建并启动 Web 服务器。相关的 API 在包 com.sun.net.httpserver
中。
在下面的代码中,创建了一个 Web 服务器,运行在 8080
端口。网页文件在当前目录下的 static
子目录中。
public class LocalFileServer {
public static void main(String[] args) {
var server = SimpleFileServer.createFileServer(
new InetSocketAddress(8080),
Paths.get(".", "static").toAbsolutePath(),
OutputLevel.INFO);
server.start();
}
}
总的来说,jwebserver
工具解决了 Java 平台没有简易 Web 服务器的问题。但是相关 API 所提供的功能有限,在实际开发中的作用不大。