发布于 2018-01-21 00:02:38 | 59 次阅读 | 评论: 0 | 来源: 网友投递
simplewebserver 基于 NIO 的 webserver
simplewebserver 是基于 NIO 的简单 web 服务器:简易,灵活,更少的依赖,更多的扩展。更少的内存占用
转眼间,距离上一版本发布已经过了一年多,经过反复的测试使用,终于迎来第一个稳定版本
介于大多人都还不太清楚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)