当前位置: 首页 > article >正文

【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服务器,它为开发者提供了一个便捷的测试和教育工具。尽管其功能相对简单,但在特定场景下(如快速测试静态页面)却非常有用。


http://www.kler.cn/news/319281.html

相关文章:

  • 主流卷积神经网络CNN总结
  • 网络安全知识:灾难恢复计划简介
  • 第一感觉有问题,但是没有提出来,要相信直觉。
  • Linux快速安装ClickHouse(附官方文档)
  • 【Vue】Pinia
  • 【AI创作组】Matlab中进行符号计算
  • HTML与JavaScript结合实现简易计算器
  • Leetcode面试经典150题-94.二叉树的中序遍历
  • Java面试篇基础部分- 锁详解
  • 数据结构——概论
  • CNN网络训练WISDM数据集:模型仿真及可视化分析
  • 人工智能:重塑未来的技术力量
  • ubuntu22.04取消开机输入密码(实测)
  • 一文说清楚ETL与Kafka如何实现集成
  • Windows 快捷键大全:提升工作效率的小技巧
  • 华为HarmonyOS地图服务 7- 在地图上绘制标记
  • HTTP(超文本传输协议)基础
  • Redis——持久化策略
  • 网络威慑战略带来的影响
  • 智谱清影 - CogVideoX-2b-部署与使用
  • 30个GPT提示词天花板,一小时从大纲到终稿
  • JavaScript类型判断(总结)
  • F5研究显示:企业加速IT发展,以充分挖掘生成式AI潜力
  • 基于 RealSense D435相机实现手部姿态检测
  • Imagen与其他生成模型的对比:DALL-E、Stable Diffusion、MidJourney
  • Markdown书写技巧深度解析
  • 赋能未来工厂:EasyCVR视频平台助力装备制造业迈向智能制造
  • Unity实现原始的发射子弹效果
  • Python+appium自动化+夜神模拟器inspector部署验证
  • TypeScript系列:第四篇 - typeof 与 keyof