V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
90xchun
V2EX  ›  Java

SimpleWebServer 0.2.10 发布,第一个非正式见面版本

  •  
  •   90xchun · 2018-01-20 23:53:47 +08:00 · 2817 次点击
    这是一个创建于 2509 天前的主题,其中的信息可能已经有所发展或是发生改变。

    转眼间,距离上一版本发布已经过了一年多,经过反复的测试使用,终于迎来第一个稳定版本

    介于大多人都还不太清楚 SimpleWebServer 是什么东西?(敲黑板)那么我们重新来介绍下

    SimpleWebServer 是一款使用 Java 基于 NIO 编写的超轻量级开源 Web Application Server

    是否遇到有时候想做一些小的 Web 程序,但是迫于 Java 运行环境过于繁琐而迟迟没有下手,那么现在除了 SpringBoot,广大的 Java 程序员又多了一个选择

    轻量级

    并不基于 servlet,源代码仅 3000 行左右,jar 包仅 0.1m 左右,零依赖,无 xml,极低的内存占用,所以不用担心程序能不能在嵌入式(树莓派)/Android 上能否正常运行

    完整

    Cookie,Interceptor,Json,模板,文件上传,基本常用 API 都有,使得写 Web 应用更容易

    快速上手

    request, response, controller. interceptor 还是熟悉的配方,熟悉的味道

    <dependency>
        <groupId>com.hibegin</groupId>
        <artifactId>simplewebserver</artifactId>
        <version>0.2.10</version>
    </dependency>
    
    public class DemoController extends Controller{
    
        public static void main(String[] args) {
            ServerConfig serverConfig = new ServerConfig();
            serverConfig.getRouter().addMapper("", DemoController.class);
            new WebServerBuilder.Builder().serverConfig(serverConfig).build().startWithThread();
        }
    
        public void index() {
              getResponse().renderText("Hello world/v" + ServerInfo.getVersion());
        }
    }
    

    性能

    简单与号称 “性能打爆网卡的 tio ” 对比,感兴趣移步到 https://gitee.com/94fzb/simplewebserver-performance

    变更记录

    新特

    • 多线程解码 HTTP 请求,更加充分使用资源

    优化

    • Cookie 的过期时间的设置方式
    • Json 序列化是使用 Gson 替换 flexjson
    • 对代理请求的处理
    • WebServer 的销毁逻辑
    • HTTPS 配置更加方便
    • 处理 maxRequestBody 逻辑
    • 删除上传文件生成的临时文件
    • 减少 Android 设备的资源占用

    修复

    • 默认的日志存放路径不支持中文路径
    • Android 设备日志保存异常
    • Chrome 浏览器,部分特殊文件无法进行下载
    • 一处内存泄漏
    • HttpSession 中的 Map 不能使用 null
    • 几出已知的 NullPointException

    开源地址

    最后

    Simple Web Server 名称是不是太草率了? 写完第一个版本后,苦于命名,参照了 S3 ( Simple Storage Service )

    2 条回复    2018-01-21 11:13:17 +08:00
    lengyihan
        1
    lengyihan  
       2018-01-21 11:12:41 +08:00 via Android   ❤️ 1
    不错,mark
    lengyihan
        2
    lengyihan  
       2018-01-21 11:13:17 +08:00 via Android
    star 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5484 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:57 · PVG 16:57 · LAX 00:57 · JFK 03:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.