轻量级奇迹:Java 18迎来迷你Web服务器的时代

简介: 轻量级奇迹:Java 18迎来迷你Web服务器的时代

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

jwebserver

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

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

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

HTML 页面准备

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

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

第三步:随便写点 HTML 内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
  <h1>Hello World</h1>
</body>
</html>

jwebserver 命令启动

打开终端,输入命令:

$ jwebserver

尝试访问一下 http://127.0.0.1:8000/ ,就可以获得之前准备的 HTML 内容了,同时,在终端也看到了请求日志。

关于 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 代码启动

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        var addr = new InetSocketAddress(9000);
        var server = SimpleFileServer.createFileServer(
                addr, Path.of("/"), SimpleFileServer.OutputLevel.INFO);
        server.start();
    }
}


相关文章
|
2月前
|
Java Linux 定位技术
Minecraft配置文件参数说明(JAVA服务器篇)
Minecraft JAVA版服务器启动后会生成server.properties配置文件,位于minecraft_server/根目录下。该文件包含多项关键设置,如游戏模式(gamemode)、最大玩家数(max-players)、难度(difficulty)等。此文档详细说明了各配置项的功能与默认值,帮助用户高效管理服务器环境。
322 60
|
6月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
159 9
|
2月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
3月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
150 7
|
4月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
163 9
|
5月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
157 7
Spring Boot 入门:简化 Java Web 开发的强大工具
|
6月前
|
Java Maven Spring
Java Web 应用中,资源文件的位置和加载方式
在Java Web应用中,资源文件如配置文件、静态文件等通常放置在特定目录下,如WEB-INF或classes。通过类加载器或Servlet上下文路径可实现资源的加载与访问。正确管理资源位置与加载方式对应用的稳定性和可维护性至关重要。
148 7
|
6月前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
307 2
|
6月前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
145 0
|
25天前
|
存储 缓存 弹性计算
阿里云经济型e实例云服务器评测:企业官网搭建的性价比之选
阿里云服务器经济型e实例可以用来搭建企业网站吗?云服务器作为搭建企业官网的基础设施,其性能、稳定性、成本等因素直接影响着官网的运营效果。阿里云经济型e实例云服务器作为一款性价比较高的产品,备受用户关注。许多企业在选择云服务器搭建官网时,都会将其纳入考虑范围。本文将详细探讨阿里云经济型e实例云服务器的特点、性能表现、稳定性与可靠性,以及成本考量,最终解答是否适合用它来搭建企业官网。

热门文章

最新文章