play-framework學(xué)習(xí)

Actions, Controllers and Results

大部分的請(qǐng)求到play的處理我們稱為一個(gè)action。

play將請(qǐng)求的request()獲取到然后產(chǎn)生一個(gè)result返回給客戶端。

大概代碼如下

public Result index() {?

? ? ? ?return ok("Got request " + request() + "!");

}

result來自play.mvc.Result

其中的控制器繼承自controller(play.mvc.Controller)

返回的結(jié)果使用Result返回。ok只是其中一種

也可以返回例如badRequest()等

Result ok = ok("Hello world!");Result notFound = notFound("Page not found");

Result pageNotFound = notFound("").as("text/html");

Result badRequest = badRequest(views.html.form.render(formWithErrors));

Result oops = internalServerError("Oops");Result anyStatus = status(488, "Strange response type");

HTTP routing

play里的路由在conf/routes里定義

每一個(gè)請(qǐng)求的定義分三部分構(gòu)成

①請(qǐng)求的類型(GET,POST,PUT,DELETE......)

②請(qǐng)求的路徑 ?/api/apps/:id

③請(qǐng)求的方法在控制器的位置和參數(shù)聲明 ??controllers.ApiController.apps(id: Long)


這里要說明的有

請(qǐng)求在路徑里的參數(shù)用:加名字,方法里的參數(shù)聲明是先名稱后類型。

也可以在這里寫明參數(shù)的默認(rèn)值,比如請(qǐng)求的參數(shù)如果有就用傳過來的值,如果沒有就用默認(rèn)值

?controllers.ApiController.apps(pageSize: Integer ?= 1, pageSize: Integer ?= 10)

Manipulating the response

Session and Flash scopes

Body parsers

play里如果有些參數(shù)是通過請(qǐng)求體傳過來,那么我們可以通過play里內(nèi)置的解析來處理。

在java里直接使用request().body().asJson()即可獲得請(qǐng)求的body的json類型

content-type為application/json會(huì)被解析成json

如果要獲取json里的某些字段,json.get("字段名").asText()


Action composition

我們可以用注解完成authenticator。我們先創(chuàng)建一個(gè)authenticator的java類,當(dāng)然也可以創(chuàng)建比如admin的或者其他權(quán)限的authenticator

繼承自Security.Authenticator

這里面需要重寫getUsername,如果返回null則驗(yàn)證失敗,返回username驗(yàn)證成功


這樣,我們?cè)谡?qǐng)求的前面加此注解,就可以進(jìn)行驗(yàn)證了


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評(píng)論 19 139
  • 夜未冷 雨微涼 晝未暖 雪霜寒 入夢(mèng)時(shí)前有伊人 夢(mèng)醒時(shí)分想一人; 夢(mèng)一場(chǎng) 夜已深 念一人 喚一人 大夢(mèng)初醒忘佳人 ...
    JioneSir閱讀 1,751評(píng)論 0 2
  • 林雷開了一家頭盔店,小店?duì)I業(yè)一年多了,以誠(chéng)信和質(zhì)量贏得了很多顧客的認(rèn)可,生意也算是紅火。 這天,小店里來了一位美女...
    僵尸王恐怖故事閱讀 653評(píng)論 0 0
  • 第三方應(yīng)用市場(chǎng)APP 拒絕盜版從我做起,歡迎大家監(jiān)督。 正版 這里只提供正版軟件購(gòu)買下載的應(yīng)用商店。 HackSt...
    pypypy閱讀 5,876評(píng)論 0 49
  • 國(guó)慶節(jié)前某天早上騎電動(dòng)車上班,沒想到竟然遭遇車禍。當(dāng)一輛黑色轎車猛然間沖進(jìn)視野、撞上我時(shí),我感覺像做夢(mèng)一樣,接著就...
    呱呱呱愛啊閱讀 269評(píng)論 2 0

友情鏈接更多精彩內(nèi)容