jwebserver是Java 18中引入的一个全新功能点,它允许用户通过命令行工具快速启动一个提供静态资源访问的迷你Web服务器。这个服务器不支持CGI和Servlet,因此其主要用途是轻量级的静态文件服务,如HTML、CSS、JavaScript和图片等。
其实在如Python、Ruby、PHP、Erlang等许多语言都提供了开箱即用的Web服务器,可见一个简单的Web服务器是一个常见的需求,Java一直没有这方面的支持,现在可以了。
使用jwebserver非常简单,只需在命令行中输入jwebserver命令即可启动服务器。默认情况下,服务器会绑定到本地回环地址(127.0.0.1)的8000端口,并在当前目录下提供静态文件服务。
浏览器请求:http://127.0.0.1:8000/,运行结果如下:
此外,jwebserver还提供了一些可选的参数,以便用户根据需要调整服务器的配置,如:
-b
或--bind-address
:指定服务器绑定的地址,默认为127.0.0.1或::1(IPv6的回环地址)。-d
或--directory
:指定服务器提供服务的目录,默认为当前目录。-o
或--output
:控制服务器的输出级别,可选值为none、info和verbose,默认为info。-p
或--port
:指定服务器监听的端口,默认为8000。
>jwebserver.exe -h
用法:jwebserver [-b 绑定地址] [-p 端口] [-d 目录]
[-o none|info|verbose] [-h 显示选项]
[-version 显示版本信息]
选项:
-b, --bind-address - 要绑定到的地址。默认值:127.0.0.1(环回)。
如果要表示所有接口,请使用 "-b 0.0.0.0" 或 "-b ::"。
-d, --directory - 要为其提供服务的目录。默认值:当前目录。
-o, --output - 输出格式。none|info|verbose。默认值:info。
-p, --port - 要监听的端口。默认值:8000。
-h, -?, --help - 输出此帮助消息并退出。
-version, --version - 输出版本信息并退出。
要停止服务器,请按 Ctrl + C。
在D:\var\www\web
目录下创建一个网页文件index.html
:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1>hello java18</h1>
</body>
</html>
然后启动一个绑定到127.0.0.1地址、监听8899端口、并在D:\var\www\web
目录下提供服务的服务器,可以使用如下命令:
# 临时修改命令行的编码为UTF-8(代号65001),默认为GBK(代号936)
>chcp 65001
Active code page: 65001
>jwebserver.exe -b 127.0.0.1 -d d:\var\www\web -p 8899
为 127.0.0.1 端口 8899 上的 d:\var\www\web 及子目录提供服务
URL http://127.0.0.1:8899/
浏览器请求:http://127.0.0.1:8899/,运行结果如下:
Java18中的jwebserver是一个实用且易于使用的静态Web服务器,它为开发者提供了一个便捷的测试和教育工具。尽管其功能相对简单,但在特定场景下(如快速测试静态页面)却非常有用。