这个项目目前还没完工 目标是打造一个轻量级的开源web框架 如果完工会将jar发到releases中
项目原名为"JHTTP" 命名是由一个"J" 和一个"HTTP"组成
所谓J 就是Java的首字母 代表这个框架是用于Java的 而HTTP 总所周知是一个超文本传输协议
这个项目就是提供一个便捷的HTTP调用方式 而不用自己造轮子或者是使用麻烦的JSP
在一次自搜的时候发现和一个Gitee上的项目重名了... 在新名字找灵感的时候想到了flask这个框架
flask框架是建立在python上的一个轻量级web框架 在flask基础上就想到了flock(羊群) 认为这个名字和我的用户名匹配 就使用了这个名字
话说这个名字似乎和这个项目原本的作用没什么关系 但是其他的很多框架和他本身的目的关系也不大 flock这个名字也还行?
这里只是一个简略的介绍 具体内容请查看开发手册(TODO)
创建服务器使用JHttpServer来创建 代码如下
JHttpServer server = new JHttpServer();使用一个函数式接口Route实现handle方法来创建路由 如下面代码实现获得当前时间的功能 handle返回值为一个bytes[]
timeRoute = new Route() {
@Override
public byte[] handle(JHttpRequest req) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = formatter.format(date);
return formattedDate.getBytes();
}
}使用JHttpServer.sign来将路由绑定到服务器上 如下列代码将上列路由绑定到服务器上
server.sign("/api/v1/getTime", timeRoute);当然我们也可以使用匿名函数来获得更简洁美观的代码
server.sign("/api/v1/getTime", (req) -> {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = formatter.format(date);
return formattedDate.getBytes();
});最后 当我们把业务代码全部写完 就可以把服务器运行起来了
try {
server.run("0.0.0.0", 80);
} catch (IOException e) {
e.printStackTrace();
}注意 JHttpServer.run会抛出IOException 使用时需要加上try-catch语句或者显式throw来防止程序意外终止
Server is running at http://127.0.0.1:80
INFO: find 1 user
INFO: HTTP/1.0 200 OK!
INFO: find 1 user
ERROR: 114514 This is a sheep
还在TODO阶段...
TODO
TODO
TODO
....预计寒假结束会做出第一个版本 尽请期待(大概吧)
By cleversheep2011