后端

play-framework学习

2018-01-04  本文已影响0人  avery1

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验证成功

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

上一篇下一篇

猜你喜欢

热点阅读