jwebserver-java简单Web服务器

java简单Web服务器

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

  • 构建目的是应用于测试与教学,不是为了替代Jetty、Nginx等高级服务器

  • 不提供身份验证、访问控制或加密等安全功能

  • 仅支持HTTP/1.1,不支持HTTPS

  • 仅支持GET、HEAD请求

  • 可以通过命令行、Java类启动

bin目录下多了这样一个可执行文件:jdk-18.0.2.1\bin\jwebserver.exe

jwebserver有以下可选的参数

>jwebserver -h
Usage: jwebserver [-b bind address] [-p port] [-d directory]
                  [-o none|info|verbose] [-h to show options]
                  [-version to show version information]
Options:
-b, --bind-address    - Address to bind to. Default: 127.0.0.1 (loopback).
                        For all interfaces use "-b 0.0.0.0" or "-b ::".
-d, --directory       - Directory to serve. Default: current directory.
-o, --output          - Output format. none|info|verbose. Default: info.
-p, --port            - Port to listen on. Default: 8000.
-h, -?, --help        - Prints this help message and exits.
-version, --version   - Prints version information and exits.
To stop the server, press Ctrl + C.

翻译过来是:

  • -b:要绑定的ip地址

  • -p:要启动的访问端口

  • -d:要提供服务的目录

  • -o:控制台的输出级别

所以一个较为完整的启动命令是这样的:

jwebserver -p 8088 -d D:\JavaWebTest -b 127.0.0.1 -o info

这条命令是一个以目录D:\JavaWebTest为服务器根目录启动的简单web服务器,服务端口是8088,服务器绑定地址是127.0.0.1,控制台输出级别使用info。

访问:http://127.0.0.1:8088/ ,可以看到JavaWebTest目录下的文件夹和文件

也可以直接使用代码启动服务

public class Test {
    public static void main(String[] args) {
        var server = SimpleFileServer.createFileServer(new InetSocketAddress(8088), Path.of("D:\\Test"), SimpleFileServer.OutputLevel.INFO);
        server.start();
    }
}

实际上就是下面的命令:

jwebserver -p 8088 -d D:\Test -o info

 

posted @ 2023-06-05 18:04  少年阿丁  阅读(222)  评论(0编辑  收藏  举报