pippo - 微型Java Web框架


Apache
跨平台
Java

软件简介

它是一个开源(Apache许可证)微型Java Web框架,拥有最少的依赖,以及快速的学习曲线。
该项目的目标是创建一个微型的Web框架在Java中这应该是易于使用和破解。

其概念是不是新的 (灵感来自于 Sinatra, Express JS, Play Framework),但目的是提供一个清晰,简单易用的模块化解决方案。
pippo可用于中小型应用,并应用在基于微服务架构的应用程序中。

示例代码:

 publicclassSimpleDemo {
 
    publicstaticvoidmain(String[] args) {
//        new Pippo().start(); // run the default web server with the default web server settings
 
        Pippo pippo =newPippo(newSimpleApplication());
        pippo.getServer().getSettings().staticFilesLocation("/public");
        pippo.start();
    }
 
}
 
publicclassSimpleApplicationextendsApplication {
 
    @Override
    publicvoidinit() {
        super.init();
 
        GET("/",newRouteHandler() {
 
            @Override
            publicvoidhandle(Request request, Response response) {
                response.send("Hello World");
            }
 
        });
 
        GET("/file",newRouteHandler() {
 
            @Override
            publicvoidhandle(Request request, Response response) {
                response.file(newFile("pom.xml"));
            }
 
        });
 
        GET("/json",newRouteHandler() {
 
            @Override
            publicvoidhandle(Request request, Response response) {
                Contact contact =newContact()
                        .setName("John")
                        .setPhone("0733434435")
                        .setAddress("Sunflower Street, No. 6");
                // you can use variant 1 or 2
//                response.contentType(HttpConstants.ContentType.APPLICATION_JSON); // 1
//                response.send(new Gson().toJson(contact)); // 1
                response.json(contact);// 2
            }
 
        });
 
        GET("/template",newRouteHandler() {
 
            @Override
            publicvoidhandle(Request request, Response response) {
                Map<String, Object> model =newHashMap<String, Object>();
                model.put("greeting","Hello my friend");
                response.render("hello.ftl", model);
            }
 
        });
 
        GET("/error",newRouteHandler() {
 
            @Override
            publicvoidhandle(Request request, Response response) {
                thrownewRuntimeException("Errorrrrrrrr...");
            }
 
        });
 
    }
 
}