play-framework学习

Actions, Controllers and Results

大部分的请求到play的处理我们称为一个action。

play将请求的request()获取到然后产生一个result返回给客户端。

大概代码如下

public Result index() { 

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

}

result来自play.mvc.Result

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

返回的结果使用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里定义

每一个请求的定义分三部分构成

①请求的类型(GET,POST,PUT,DELETE......)

②请求的路径  /api/apps/:id

③请求的方法在控制器的位置和参数声明   controllers.ApiController.apps(id: Long)


这里要说明的有

请求在路径里的参数用:加名字,方法里的参数声明是先名称后类型。

也可以在这里写明参数的默认值,比如请求的参数如果有就用传过来的值,如果没有就用默认值

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

Manipulating the response

Session and Flash scopes

Body parsers

play里如果有些参数是通过请求体传过来,那么我们可以通过play里内置的解析来处理。

在java里直接使用request().body().asJson()即可获得请求的body的json类型

content-type为application/json会被解析成json

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


Action composition

我们可以用注解完成authenticator。我们先创建一个authenticator的java类,当然也可以创建比如admin的或者其他权限的authenticator

继承自Security.Authenticator

这里面需要重写getUsername,如果返回null则验证失败,返回username验证成功


这样,我们在请求的前面加此注解,就可以进行验证了


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,224评论 19 139
  • 夜未冷 雨微凉 昼未暖 雪霜寒 入梦时前有伊人 梦醒时分想一人; 梦一场 夜已深 念一人 唤一人 大梦初醒忘佳人 ...
    JioneSir阅读 1,731评论 0 2
  • 林雷开了一家头盔店,小店营业一年多了,以诚信和质量赢得了很多顾客的认可,生意也算是红火。 这天,小店里来了一位美女...
    僵尸王恐怖故事阅读 587评论 0 0
  • 第三方应用市场APP 拒绝盗版从我做起,欢迎大家监督。 正版 这里只提供正版软件购买下载的应用商店。 HackSt...
    pypypy阅读 5,773评论 0 49
  • 国庆节前某天早上骑电动车上班,没想到竟然遭遇车祸。当一辆黑色轿车猛然间冲进视野、撞上我时,我感觉像做梦一样,接着就...
    呱呱呱爱啊阅读 247评论 2 0