JavaSparkServer中文混合笔记

网站:http://sparkjava.com/documentation#getting-started
有些东西不知道怎么翻译,所以可能有用词不准确的地方。英语好的可以直接去官网看,我这说是个笔记,其实很多地方就是个摘抄。看中文查询比较快速,这篇文章主要给自己查询用。

做server需要学习网络这是一定的,接触新技术可能也会有更多不知道的东西。沿袭李笑来的规劝,学习不用太完美主义,有些概念不了解,只要没到非用不可的程度,就不要节外生枝,先放一放。学大体的内容。毕竟你爱看电视,但是也不一定知道怎么做一个电视。

||目录||
启动server
Route
Halting 停止访问
Filters 设置验证 过滤器

(持续更新。。)

启动server

如何开启server?

发送request之后,自动开启

你可以设置如果初始化失败的信息

initExceptionHandler((e) -> System.out.println("Uh-oh"));

default:
private Consumer<Exception> initExceptionHandler = (e) -> {
    LOG.error("ignite failed", e);
    System.exit(100);
};

如何关闭server?

stop();

Route

route是spark 里最重要的一部分,因为整个的请求就是一个route的集合。

route一般由三个部分组成:

  • 动词: verb (get, post, put, delete, head, trace, connect, options)
  • 路径: path (/hello, /users/:name)
  • 返回: callback (request, response) -> { }

如果想要调用相关的request必须与route相匹配。

get("/", (request, response) -> {
    // Show something
});

post("/", (request, response) -> {
    // Create something
});

put("/", (request, response) -> {
    // Update something
});

delete("/", (request, response) -> {
    // Annihilate something
});

options("/", (request, response) -> {
    // Appease something
});

Route的路径中(path)可以有通过params()和splat()调用的参数。

// matches "GET /hello/foo" and "GET /hello/bar"
// request.params(":name") is 'foo' or 'bar'
get("/hello/:name", (request, response) -> {
    return "Hello: " + request.params(":name");
});

// matches "GET /say/hello/to/world"
// request.splat()[0] is 'hello' and request.splat()[1] 'world'
get("/say/*/to/*", (request, response) -> {
    return "Number of splat parameters: " + request.splat().length;
});

路径组(Path groups)=> path()
适合不同类class的request

path("/api", () -> {
    before("/*", (q, a) -> log.info("Received api call"));
    path("/email", () -> {
        post("/add",       EmailApi.addEmail);
        put("/change",     EmailApi.changeEmail);
        delete("/remove",  EmailApi.deleteEmail);
    });
    path("/username", () -> {
        post("/add",       UserApi.addUsername);
        put("/change",     UserApi.changeUsername);
        delete("/remove",  UserApi.deleteUsername);
    });
});

Halting 停止访问

在route 和 filter(之后会介绍) 里用于立即关闭requst

halt();                // 停止
halt(401);             // 返回状态status并停止
halt("Body Message");  // 返回信息并停止
halt(401, "Go away!"); // 返回状态status,信息并停止

Filters 设置验证 过滤器

这里有三种filter

  • before each request
  • after each request
  • after after-filters.

前者是在任何request之前要先进行验证,后者是在request之后进行验证。至于为啥要after我也不知道,如果有同学知道欢迎帮着科普一下。第三种是在第二种之后。

filter不是一定要有path的。

before((request, response) -> { 
boolean authenticated; 
// ... check if authenticated if (!authenticated) 
{ 
halt(401, "You are not welcome here"); 
}
});


after((request, response) -> {
 response.header("foo", "set by after filter");
});


afterAfter((request, response) -> { 
response.header("foo", "set by afterAfter filter");
});

//有path的
before("/protected/*", (request, response) -> { 
// ... check if authenticated halt(401, "Go Away!");
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容