• Java 18 新特性:简单Web服务器 jwebserver


    在今年3月下旬的时候,Java版本已经更新到了18。接下来DD计划持续做一个系列,主要更新从Java 9开始的各种更新内容,但我不全部都介绍,主要挑一些有意思的内容,以文章和视频的方式来给大家介绍和学习。为了第一时间获得内容更新,对文章形式感兴趣的小伙伴可以关注我的博客或者公众号(程序猿DD),对视频形式感兴趣的可以关注我的B站或视频号(程序猿DD)。

    简单Web服务器:jwebserver

    JEP 408: Simple Web Server,是这次Java 18推出的一个比较独立的全新功能点。我们可以通过命令行工具来启动一个提供静态资源访问的迷你Web服务器。

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

    file

    这里我简单总结几点,方便大家理解:

    • 构建目的是应用于测试与教学,不是为了替代Jetty、Nginx等高级服务器
    • 不提供身份验证、访问控制或加密等安全功能
    • 仅支持HTTP/1.1,不支持HTTPS
    • 仅支持GET、HEAD请求
    • 可以通过命令行、Java类启动

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

    HTML页面准备

    第一步:创建一个文件夹,比如就叫jwebserver

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

    第三步:随便写点HTML内容,比如下面这样(懒的敲的话,可以根据图片内的提示直接获取本案例需要的所有内容):

    file

    jwebserver命令启动

    打开终端,输入命令:

    $ jwebserver

      启动速度很快,可以看到如下输出:

      file

      尝试访问一下http://127.0.0.1:8000/,就可以获得之前准备的HTML内容了。

      file

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

      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 -
      • 1

      关于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.
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17

      其中比较有用的是

      • -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/ ,可以看到根目录/下的文件夹和文件:

        file

        怎么样?是不是还挺简单好用的?好了,今天的分享就到这里!如果您学习过程中如遇困难?可以加入我们超高质量的技术交流群,参与交流与讨论,更好的学习与进步!

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

        欢迎关注我的公众号:程序猿DD。前沿技术早知道,弯道超车有希望!积累超车资本,从关注DD开始!

      • 相关阅读:
        神经网络 模型表示2
        接口自动化测试思路和实战(4):数据驱动测试框架
        训练环境搭建过程中遇到的一些问题
        你们看吧,一看一个不吱声
        c++学习---类和对象
        从输入一个网址到浏览器页面展示到底发生了什么
        JAVA8新特性-Stream
        APP自动化_操作微信小程序实现自动化_多终端并行
        java集合处理数据量过大导致超过Mysql in的最大值
        详解GDAL (Python)读写栅格数据
      • 原文地址:https://blog.csdn.net/dyc87112/article/details/124293584