根据文档,过滤器链在请求路由后发生。在请求路由之前,有没有办法让过滤器链应用?
特别是,我们希望在URL映射之前应用许多过滤器。如果我们将这些作为普通过滤器执行,要么我们不能使用路由时发生的请求绑定,要么我们必须自己在操作中执行此操作。
答案 0 :(得分:0)
onRouteRequest(Http.RequestHeader request)
Called when an HTTP request has been received.
You need a class to extends GlobalSettings,
and then override the method onRouteRequest(Http.RequestHeader request)
答案 1 :(得分:0)
来自documentation: “如果你确实需要在调用路由器之前修改请求,那么更好的方法是将你的逻辑放在Global.onRouteRequest中。”
答案 2 :(得分:0)
在较新版本的Play(例如2.6.x)中,在路由之前应用自定义逻辑的首选方法是实现自定义HttpRequestHandler(有关Java版本的文档,请参见this page) HttpRequestHandler
。
在许多情况下,您可以extend the default request handler并覆盖routeRequest
方法。
如果确实需要在调用路由器之前修改请求,那么更好的方法是将逻辑放在
HttpRequestHandler
中。