【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。另外两个可选值是 noneverbose

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 所提供的功能有限,在实际开发中的作用不大。

版权所有 © 2024 灵动代码