精巧的 java 嵌入式 http 服务器 httpkit

Apache
Java
跨平台
2016-11-30
lnwazg

httpkit是精巧的java嵌入式http服务器,超快的启动速度(实测仅需80毫秒),是tomcat、jetty的完美替代方案。

使用方法

//起一个server实例
int port = 7777;
HttpServer server = HttpServer.bind(port);


//设置上下文路径
server.setContextPath("root");


//设置controller类的扫描包
server.packageSearchAndInit("com.lnwazg.main.ctrl");


//设置自动磁盘扫描
server.autoSearchThenAddWatchResourceDirRoute();


//监听在这个端口处
server.listen();

然后访问文件列表: http://127.0.0.1:7777/root/list

访问具体的控制器 http://127.0.0.1:7777/root/base/index

Controller类的写法

package com.lnwazg.main.ctrl;


import java.io.File;
import java.util.ArrayList;
import java.util.List;


import com.lnwazg.httpkit.anno.BasePath;
import com.lnwazg.httpkit.controller.Controller;


/**
 * 示例controller<br>
 * 注解指定这个类的path
 * @author nan.li
 * @version 2016年11月30日
 */
@BasePath("/base")
public class FirstController extends Controller
{
    void index()
    {
        Person person = new Person();
        person.age = "18";
        person.name = "hudson";
        List<Person> list = new ArrayList<>();
        for (int i = 0; i < 5; i++)
        {
            list.add(person);
        }
        person = new Person();
        person.name = getParam("fff");
        list.add(person);
        
        //输出abc
        ok("abc");
        
        //输出一个json对象
        //okJson(list);
        
        //        okJson(GsonHelper.gson.toJson(list));
        //        okJson(list);
        //        okJson(new FrontObj().success().setData(list));
        //        okJson(success(list));
        //        okJson(fail(list));
        //        okJson(fail(list,10002,"转换错误"));
        //        okJson(fail(10002, "转换错误"));
        //        okJson(fail(10003));
    }
    
    void index2()
    {
        //输出一个文件
        okFile(new File("c:\\1.jpg"));
    }
    
    public static class Person
    {
        String name;
        
        String age;
    }
}
加载中

评论(1)

傅易
傅易
支持 Servlet 规范吗 #httpkit#

暂无资讯

暂无问答

HttpKit增加getBytes方法

HttpKit的get方法只返回String,没有返回Bytes的方法,有些场景无法使用,现在增加相关方法,希望下个版本能加入。 直接贴源代码: public static byte[] getBytes(String url, Map<Str...

2015/01/07 12:15
70
1
扩展JFinal的HttpKit

对HttpKit做了些扩展,增加了PUT、DELETE方法,可传入自定义SSLSocketFactory,代码如下: public class HttpKit { private HttpKit() { } /**  * https 域名校验  */ pri...

2015/08/31 15:50
243
0
最近在做的一件事件编写JFinal教程《Jfinal极速开发实战》

以Jfinal的开发环境和基础知识入手,JfinaUIB为实战项目,详细的介绍Jfinal的开发入门、实战、二次扩展开发

2015/08/20 16:00
2.5K
3
老外写的关于协程的性能文章-主打http协议

https://dzone.com/articles/high-concurrency-http-clients-on-the-jvm HTTP is probably the most popular application-level protocol and there are many libraries that implement it o...

2016/11/23 09:44
225
0
HTTP 访问接口封装,app开发中常用

HttpKit.java import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java...

2016/05/17 10:36
14
2
JFinal应对Content-Type为application/json的ajax请求参数处理

ajax传JSON或在后端通过HttpPost提交请求时,设置的Content-Type为application/json或者text/json时,request.getParameter()并不能取到对应的参数,Controller中getPara()类似方法也无法取到...

2016/06/14 08:45
1K
0
JFinal书籍《JFinal极速开发实战》正式发布

JFinal教程,JFinal实战

2015/09/18 16:08
4.9K
3

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部