BlazingWebx:无需Html/JS完全用Java创建Web服务


一个用于 100% 使用 Java 创建 Web 服务器和构建 Web 用户界面的 Java 库。

  • BlazingWebx 是一个 Java 库,旨在让您 100% 使用 Java 构建单页 Web 应用程序 (SPA),而无需直接编写 html 和 JavaScript。此目标是通过使用 Java 类来实现的,这些类组合在一起以创建优雅的用户体验,利用 HTMX 进行客户端和服务器通信,同时保持项目最小化。
  • BlazingWebx 还旨在简化服务器端编程以及客户端和服务器之间传递数据的方式。

特征

  • Web 服务器 API
  • Web UI API(实现所有 HTML5 元素)
  • 内置 HTMX API
  • 静态内容服务器
  • 支持最常用的 HTTP 方法
  • 简单 Map 到 Json 的实现
  • Java 哈希 API 的简单包装器
  • Https 请求 API
  • ORM API 实现

例子
您基本上创建了 2 个类。您的程序类包含您的 Java 入口点。此类注册您的服务器类。

1、Program.java

package example;

import blazing.Blazing;

public class Program {
    public static void main() {
        Blazing.createServer(HelloWorldServer.class);
    }
}

接下来是服务器类。该库使用 Java 注释来查找用于路由路径和设置服务器的方法。

2、HelloWorldServer.java

package example;

import blazing.Route;
import blazing.WebServer;
import blazing.JediResponse;
import webx.*; 

@WebServer("6900")
@Static(
"/images")
public class HelloWorldServer {
    
    @Initializer
    public static void init() {
     
// NOTE: Space for loading/connecting server resources such as a database. 
    }

    @Destructor
    public static void deinit() {
     
// NOTE: Close the db connections
    }
    
    @Get(
"/")
    public static void home(BlazingResponse reponse) {
        var page = new Html()
            .addChild(
                new Button(
"Click Me")
                    .hxPost(
"/hello")
                    .hxSwap(
"outerHTML")
            );

        response.sendUiResponse(page);
    }

    @Post(
"/hello")
    public static void hello(BlazingResponse response) {
        response.sendUiResponse(new P(
"Hello, world)); // Send a <p> Hello, world </p>
    } 
}

3、运行程序并访问https://localhost:6900或您选择的任何端口。您应该有一个带有文本的按钮Click me,如果您触发点击事件,文本Hello, World应该替换按钮。

为什么

  • 消除与创建 Web 应用程序相关的复杂性。
  • 通过将 UI 编写为代表组件的类来删除模板。通过继承可以创建新的组件。
  • 尽量减少后端和前端之间的桥梁。

要求

  • Java 21 或更高版本
  • 你最喜欢的 IDE/文本编辑器

下载