【java21】java21新特性之简单的Web服务器jwebserver

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 8899127.0.0.1 端口 8899 上的 d:\var\www\web 及子目录提供服务
URL http://127.0.0.1:8899/

浏览器请求:http://127.0.0.1:8899/,运行结果如下:

Java18中的jwebserver是一个实用且易于使用的静态Web服务器,它为开发者提供了一个便捷的测试和教育工具。尽管其功能相对简单,但在特定场景下(如快速测试静态页面)却非常有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

morris131

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值