乐趣区

关于java:Java-18-新特性简单Web服务器-jwebserver

在往年 3 月下旬的时候,Java 版本曾经更新到了 18。接下来 DD 打算继续做一个系列,次要更新从 Java 9 开始的各种更新内容,但我不全副都介绍,次要挑一些有意思的内容,以文章和视频的形式来给大家介绍和学习。为了第一工夫取得内容更新,对文章模式感兴趣的小伙伴能够关注我的博客或者公众号(程序猿 DD),对视频模式感兴趣的能够关注我的 B 站或视频号(程序猿 DD)。

简略 Web 服务器:jwebserver

JEP 408: Simple Web Server,是这次 Java 18 推出的一个比拟独立的全新性能点。咱们能够通过命令行工具来启动一个提供动态资源拜访的迷你 Web 服务器。

该工具的定位官网文档中说了一堆:

这里我简略总结几点,不便大家了解:

  • 构建目标是利用于测试与教学,不是为了代替 Jetty、Nginx 等高级服务器
  • 不提供身份验证、访问控制或加密等平安性能
  • 仅反对 HTTP/1.1,不反对 HTTPS
  • 仅反对 GET、HEAD 申请
  • 能够通过命令行、Java 类启动

上面咱们通过一个构建 HTML 页面的例子,来尝试一下 jwebserver 的性能。

HTML 页面筹备

第一步:创立一个文件夹,比方就叫 jwebserver

第二步:创立一个 html 文件,就叫 index.html

第三步:轻易写点 HTML 内容,比方上面这样(懒的敲的话,能够依据图片内的提醒间接获取本案例须要的所有内容):

jwebserver 命令启动

关上终端,输出命令:

$ jwebserver

启动速度很快,能够看到如下输入:

尝试拜访一下http://127.0.0.1:8000/,就能够取得之前筹备的 HTML 内容了。

同时,在终端也看到了申请日志:

127.0.0.1 - - [20/ 4 月 /2022:00:10:58 +0800] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [20/ 4 月 /2022:00:10:58 +0800] "GET /banner-spring-boot.png HTTP/1.1" 200 -

对于 jwebserver 还有一些可选的参数,具体有这些:

-h or -? or --help
 Prints the help message and exits.

-b addr or --bind-address addr
 Specifies the address to bind to.  Default: 127.0.0.1 or ::1 (loopback).  For
 all interfaces use -b 0.0.0.0 or -b ::.

-d dir or --directory dir
 Specifies the directory to serve.  Default: current directory.

-o level or --output level
 Specifies the output format.  none | info | verbose.  Default: info.

-p port or --port port
 Specifies the port to listen on.  Default: 8000.

-version or --version
 Prints the version information and exits.

其中比拟有用的是

  • -b:要绑定的 ip 地址
  • -p:要启动的拜访端口
  • -d:要提供服务的目录
  • -o:控制台的输入级别

所以一个较为残缺的启动命令是这样的:

jwebserver -p 9000 -d / -b 127.0.0.1 -o info

这条命令是一个以根目录 / 启动的服务器,服务端口是 9000,绑定地址是 127.0.0.1,控制台输入级别应用 info。

再尝试拜访一下:http://127.0.0.1:9000/,能够看到根目录 / 下的文件夹和文件:

怎么样?是不是还挺简略好用的?好了,明天的分享就到这里!如果您学习过程中如遇艰难?能够退出咱们超高品质的技术交换群,参加交换与探讨,更好的学习与提高!

另外,不要走开,关注我!下一篇更新如何应用 Java 代码来启动这个服务器!

欢送关注我的公众号:程序猿 DD。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源

退出移动版