什么是Play中的请求响应周期

时间:2012-07-10 04:27:42

标签: java playframework

我刚刚开始研究Play 2.0,虽然它到目前为止还不是很复杂但是我没有得到非常基本的东西,即请求响应周期。我想要一个JAVA Play的请求响应周期的最小例子

2 个答案:

答案 0 :(得分:2)

基本上,请求由HTTP路由器处理,该路由器获取一个URL,例如:mydomain.com/details/。然后它会尝试在路由配置文件中查看此条目。在路径文件的第一个匹配行中,有一个相应的方法(控制器方法),因此它调用控制器方法,该方法将返回由要呈现的视图确定的html响应参数。

简化:请求(网址) - >在路线表中找到路线 - >呼叫静态控制器方法 - >返回带有视图的HTML回复

(也可以参数化url,例如:/ details / 12和routes表:/ details /:id,这样你就可以将id传递给控制器​​方法了)

另一件事:也可以进行参数化的“反向路由”,例如。一个直接调用控制器方法的按钮,它将从路径文件中找到相应的URL

官方文档非常适合这个主题:http://www.playframework.org/documentation/2.0.2/JavaRouting

答案 1 :(得分:1)

我想指出的是,如果你想通过POST传递数据,你必须将你的请求绑定到某个模型字段,然后在你的应用程序中检索传递的数据:如下所示:

你的HTML:

<form action="/login" method="POST">
<input name="username"/>
...
</form>

你的路线:

POST  /login      controllers.Application.login()

您的申请:

public static Result login(){
Form<User> passedform = form(User.class).bindFromRequest();
if(passedform.hasErrors){
return badRequest("shit").as("text/plain");
} else {
User user = passedform.get();
System.out.print(user.username);
  }
}

现在输出是你在输入字段中给出的用户名..这将以这种方式工作python / django:

def login(request):
  print(request.POST.get('username'))

:)))但无论如何,游戏也是美丽的

希望我能帮助你