# LuaWebURL **Repository Path**: xiaohuenh345_admin/lua-web-url ## Basic Information - **Project Name**: LuaWebURL - **Description**: 一个将lua脚本应用在web开发中并作为url - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-07 - **Last Updated**: 2026-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README |文档|下载链接| |---|---| |base64教程.md|[下载](./base64教程.md)| |json教程.md|[下载](./json教程.md)| |chineseId教程.md|[下载](./chineseId教程.md)| |hash教程.md|[下载](./hash教程.md)| |http教程.md|[下载](./http教程.md)| |token教程.md|[下载](./token教程.md)| |task教程.md|[下载](./task教程.md)| |xml教程.md|[下载](./xml教程.md)| |dump教程.md|[下载](./dump教程.md)| |importluaj教程.md|[下载](./importluaj教程.md)| |print教程.md|[下载](./print教程.md)| |bilang教程.md|[下载](./bilang教程.md)| |webServer教程.md|[下载](./README.md)| |serverMassage教程.md|[下载](./README.md)| # Lua-Web-URL > 一个基于 自研 HTTP 服务 的高性能动态 Web 服务器,支持 Lua 和 BiLang 双脚本引擎驱动,同时集成 FTP 服务。通过 `git clone http://gitee.com/xiaohuenh345_admin/lua-web-url.git` 获取源码,使用 `bash in.sh` 打包部署。 ## 项目架构 ```mermaid graph LR A[ServerMassage
主入口] --> B[WebServer
HTTP/HTTPS
自研 HTTP 服务] A --> C[SimpleFTPServer
FTP] B --> D[.lua / .luaj] B --> E[.bi] D --> F[Lua 引擎
LuaJ] E --> G[BiLang 引擎
自定义] ``` ## 核心模块 1. ServerMassage(服务管理器) > 命令行交互式服务管理,通过 `init.json` 配置多服务器实例。 |命令|说明| |---|---| |`start`|启动所有配置的服务器| |`start `|启动指定端口的服务器| |`stop`|停止所有运行中的服务器| |`stop `|停止指定端口的服务器| |`list`|列出所有运行中的服务器| > 启动协议:首次运行需同意 `agreement.rule` 条款(设置 `S = true`)。 ## `init.json` 配置示例: ```json { "servers": [ { "port": 8080, "hostPath": "/path/to/webroot", "jksPath": "/path/to/ssl.jks", "password": "passwd", "serverType": "web" }, { "port": 2121, "ftpUser": "admin", "ftpPass": "admin", "ftpDir": "/path/to/ftpdir", "serverType": "ftp" } ] } ``` 2. WebServer(自研 HTTP 服务) > 自研 HTTP 服务,非第三方框架。支持 `.lua`/`.luaj`(Lua 引擎)和 `.bi`(BiLang 引擎)动态脚本,以及 `.jar` 可执行包和静态文件托管。 |特性|说明| |---|---| |HTTP 服务|自研实现,非 NanoHTTPD 等第三方框架| |动态脚本|`.lua`/`.luaj` → LuaJ 引擎;`.bi` → BiLang 引擎| |静态文件|自动识别 MIME 类型,支持目录索引| |默认页|`index.lua` → `index.bi` → `index.json` → `index.html` → `index.htm`| |SSL/TLS|通过 JKS 密钥库配置 HTTPS| |安全|路径遍历防护、响应防重复发送| ## 启动参数: ```bash java WebServer [port] [rootDir] [jksPath] [password] # 默认: 8080 webroot ssl.jks "" ``` 3. Lua 脚本环境 > 每个 HTTP 请求创建独立的 Lua 全局环境,预置以下模块: |模块|说明| |---|---| |`_WEBRequest`|HTTP 请求信息(method/uri/headers/params/body/remote_addr)| |`_METHOD`|请求方法布尔判断(get/post/put/delete/head)| |`response`|响应控制(send/sendHtml/sendJson/setHeader/status/sendCustom)| |`http`|HTTP 客户端(get/post/put/delete/head)| |`json`|JSON 编解码| |`xml`|XML 编解码| |`base64`|Base64 编解码| |`hash`|MD5/SHA-1/SHA-256/SHA-512/HMAC/CRC32| |`token`|JWT/API Key/签名/时间戳/UUID/密码哈希/访问令牌等| |`chineseId`|中国身份证解析与行政区划查询| |`task`|任务调度(同步/延迟执行)| |`dump`|数据格式化打印| |`map` / `list`|Java 集合 ↔ Lua Table 转换| |`javatools`|Java 反射与对象操作| |`sql` / `sqlx`|SQL 执行与连接管理| |`print`|重定向至服务器日志| |`loglist`|日志缓冲区引用| |`getLuaDir`|获取当前脚本目录| |`importLuaJ`|动态加载 Java Lua 模块| |`luajava.astable`|Java List/Map → Lua Table| |`null`|Java null 值| 4. BiLang 脚本环境 > BiLang 是一种轻量级面向对象脚本语言,同样支持 Web 请求处理。 |内置对象|说明| |---|---| |`request`|HTTP 请求信息(method/uri/headers/params/body)| |`_METHOD`|请求方法布尔判断| |`response`|响应控制(同 Lua)| |`http`|简化 HTTP 客户端(get/post)| |`base64`|Base64 编解码| |`md5`|MD5 哈希| |`sql`|SQL 执行| |`getScriptDir`|获取当前脚本目录| |`print`|日志打印| |`loglist`|日志缓冲区| | BiLang 语言特性:数字/布尔/字符串/列表/映射/函数/Lambda/类/继承/接口/`@local`/`fixed`/代码编译保护。 5. FTP 服务(SimpleFTPServer) |配置项|说明| |---|---| |`port`|监听端口| |`ftpDir`|根目录| |`ftpUser` / `ftpPass`|认证信息(默认 admin/admin)| ## 快速开始 ```bash # 克隆项目 git clone http://gitee.com/xiaohuenh345_admin/lua-web-url.git cd lua-web-url # 打包 bash in.sh # 运行(需先同意协议条款) java -jar target/lua-web-url.jar ``` ## 脚本示例 ### Lua (index.lua) ```lua if _METHOD.post then local name = _WEBRequest.body.name or "Guest" response.sendJson('{"message":"Hello, ' .. name .. '"}') else response.sendHtml("

Welcome

") end ``` ### BiLang (index.bi) ```bi if _METHOD.post { name = get(request, "body").name if name == nil { name = "Guest" } response.sendJson("{\"message\":\"Hello, " + name + "\"}") } else { response.sendHtml("

Welcome

") } ``` ## 模块文档索引 |文档|状态| |---|---| |[base64教程.md](base64教程.md)|✅| |[json教程.md](json教程.md)|✅| |[chineseId教程.md](chineseId教程.md)|✅| |[hash教程.md](hash教程.md)|✅| |[http教程.md](http教程.md)|✅| |[token教程.md](token教程.md)|✅| |[task教程.md](task教程.md)|✅| |[xml教程.md](xml教程.md)|✅| |[dump教程.md](dump教程.md)|✅| |[importluaj教程.md](importluaj教程.md)|✅| |[print教程.md](print教程.md)|✅| |[bilang教程.md](bilang教程.md)|✅| |[webServer教程.md](README.md)|✘| |[serverMassage教程.md](README.md)|✘|