博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Summer Project
阅读量:4938 次
发布时间:2019-06-11

本文共 2486 字,大约阅读时间需要 8 分钟。

Summer Project

是一个用于学习交流,基于的简单mvc库。

使用

  • 快速开始
public class Application {    public static void main(String[] args) {        Summer.me()                .before("/example/*", (request, response) -> {                    log.debug("path: {}", request.path());                    // pass                    return true;                })                .get("/example", (request, response) -> response.json(Result.of("summer *_*!!!")))                .get("/example/:id", (request, response) -> response.text(request.paths().get("id")))                .post("/example/:id", (request, response) -> response.text(request.paths().get("id")))                .put("/example/:id", (request, response) -> response.text(request.paths().get("id")))                .delete("/example/:id", (request, response) -> response.text(request.paths().get("id")))                .listen(9000)                .serve();    }}
  • 自定义
public class Application {    public static void main(String[] args) {        ExampleController controller = new ExampleController();        // 获取一个summer实例        Summer summer = Summer.me();        Router router = summer.router();        // 自定义notFound处理        router.notFound((request, response) -> response.text("404"));        // 自定义错误处理        router.failureHandler((request, response, t) -> response.text("500"));        // 注册路由        router.get("/example/text", controller::text);        router.get("/example/json", controller::json);        // http服务监听9000端口,并启动服务        summer.listen(9000).serve();    }}

关于

Request

命名参数

显然,:name就是一个命名参数,可以通过request.paths().get("name")方法获取命名参数。

模式匹配: /user/:name/user/zhangsan             匹配/user/lisi                 匹配/user/wangwu/zhaoliu       不匹配/user/                     不匹配

注意: :name name 必须为字母[a-zA-Z], 否则视为精确匹配!

前置钩子

Ant风格:

  • ? 匹配一个字符
  • * 匹配一个或多个字符
  • ** 匹配一个或多个目录

请求体

request.body()方法支持下列Content-Type:

  • multipart/form-data
  • application/x-www-form-urlencoded

对于application/json请求头, 使用request.json()方法即可。

文件上传

  • request.files()
  • request.file(name)

拿到FileUpload对象,操作文件。

Response

写响应

  • response.text(text)
  • response.json(json)

Content-Type(text/plainapplication/json)分别会被添加到响应头。

文件下载

使用下面的方法:

  • response.sendFile(file)

重定向

response.redirect(targetUrl)将会设置http状态码为302,并添加Location到响应头。

静态资源

Summers.summer()        // 静态资源        .staticFile("/static", "/developer/Code/summer")        .listen(9000)        .serve();

例如,http://ip:9000/static/some.txt将会被映射为本地文件路径/developer/Code/summer/some.txt

例子

特别感谢

转载于:https://www.cnblogs.com/bener/p/9174727.html

你可能感兴趣的文章
写在人生的路上——2016年上半年总结
查看>>
员工选票系统-java
查看>>
C语言、C语言的起源以及类似C语言的编程语言的历史简直不要太漫长,我简单总结列表如下:...
查看>>
sp1.3-1.4 Neural Networks and Deep Learning
查看>>
JavaScript易错知识点整理
查看>>
Biological Clocks
查看>>
2018-10-11
查看>>
国内NLP的那些人那些会
查看>>
SQL 将一个表中的所有记录插入到一个临时表中
查看>>
nmea协议
查看>>
js 中对象的特性
查看>>
hdoj3714【三分】
查看>>
嵌入式开发入门(4)—驱动入门之时序图分析【20121211修改,未完】
查看>>
Python 使用字符串
查看>>
Quartz Core之CALayer
查看>>
java:一个项目的开发过程(转)
查看>>
express框架学习笔记
查看>>
记录一个css的综合运用
查看>>
操作系统下载路径
查看>>
网站开发 关于图片压缩 以及图片使用
查看>>