Java 18 新特性之Web服务器 jwebserver功能

 更新时间:2022年04月26日 15:59:28   作者:程序猿DD  
JEP 408: Simple Web Server,是这次Java 18推出的一个比较独立的全新功能点。我们可以通过命令行工具来启动一个提供静态资源访问的迷你Web服务器,本文通过一个构建HTML页面的例子,来尝试一下jwebserver的功能

在今年3月下旬的时候,Java版本已经更新到了18。

简单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 -

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

file

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

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

到此这篇关于Java 18 新特性之简单Web服务器 jwebserver的文章就介绍到这了,更多相关java18 Web服务器 jwebserver内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 从HelloWorld和文档注释开始入门Java编程

    从HelloWorld和文档注释开始入门Java编程

    这篇文章主要介绍了从HelloWorld和文档注释开始入门Java编程,涉及到Javadoc工具的使用,需要的朋友可以参考下
    2015-10-10
  • 解决mybatis plus 分页查询有条数,total和pages都是零的问题

    解决mybatis plus 分页查询有条数,total和pages都是零的问题

    这篇文章主要介绍了解决mybatis plus 分页查询有条数,total和pages都是零的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Java Lambda表达式的方法引用和构造器引用实例分析

    Java Lambda表达式的方法引用和构造器引用实例分析

    这篇文章主要介绍了Java Lambda表达式的方法引用和构造器引用,结合实例形式分析了Lambda表达式的方法引用和构造器引用相关原理、用法及操作注意事项,需要的朋友可以参考下
    2019-09-09
  • 解决tk.mybatis中写自定义的mapper的问题

    解决tk.mybatis中写自定义的mapper的问题

    这篇文章主要介绍了使用tk.mybatis中写自定义的mapper的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • IDEA 2020.2 部署JSF项目的详细过程

    IDEA 2020.2 部署JSF项目的详细过程

    本文通过图文并茂的形式教大家如何在IDEA中创建一个JSF项目及遇到问题的解决方法,感兴趣的朋友跟随小编一起看看吧
    2021-09-09
  • 在Idea2020.1中使用gitee2020.1.0创建第一个代码库的实现

    在Idea2020.1中使用gitee2020.1.0创建第一个代码库的实现

    这篇文章主要介绍了在Idea2020.1中使用gitee2020.1.0创建第一个代码库的实现,文中通过图文示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • servlet实现简单的权限管理和敏感词过滤功能

    servlet实现简单的权限管理和敏感词过滤功能

    JavaEE课要求用servlet和过滤器实现权限管理和敏感词过滤功能,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 聊聊RabbitMQ发布确认高级问题

    聊聊RabbitMQ发布确认高级问题

    这篇文章主要介绍了RabbitMQ发布确认高级问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • SpringBoot的@RestControllerAdvice作用详解

    SpringBoot的@RestControllerAdvice作用详解

    这篇文章主要介绍了SpringBoot的@RestControllerAdvice作用详解,@RestContrllerAdvice是一种组合注解,由@ControllerAdvice,@ResponseBody组成,本质上就是@Component,需要的朋友可以参考下
    2024-01-01
  • java中注解的原理解析

    java中注解的原理解析

    这篇文章主要介绍了java中注解的原理解析,java 注解又称 Java 标注,是 JDK5.0 引入的一种注释机制,可以理解为为某个东西,打个标记的记号,等要使用这个注解时,可以通过反射获取标注里面的内容,需要的朋友可以参考下
    2023-10-10

最新评论