2

根据文档,过滤器链发生在请求被路由之后。有没有办法在请求被路由之前应用过滤器链?

特别是,我们希望在 URL 映射之前应用一些过滤器。如果我们将这些作为普通过滤器执行,则要么我们不能使用路由时发生的请求绑定,要么我们必须自己在操作中执行此操作。

4

3 回答 3

0

是的,

onRouteRequest(Http.RequestHeader request)
Called when an HTTP request has been received.

有关更多详细信息,请查看此 https://www.playframework.com/documentation/2.2.0/api/java/play/GlobalSettings.html#onRouteRequest(play.mvc.Http.RequestHeader)

You need a class to extends GlobalSettings, 
and then override the method onRouteRequest(Http.RequestHeader request)
于 2014-05-09T19:08:36.850 回答
0

文档中:“如果您确实需要在调用路由器之前修改请求,那么更好的方法是将您的逻辑放在 Global.onRouteRequest 中。”

于 2014-05-09T19:08:44.317 回答
0

在较新版本的 Play(例如 2.6.x)中,在路由之前应用自定义逻辑的首选方法是实现自定义HttpRequestHandler(请参阅此页面以获取 Java 版本的文档HttpRequestHandler)。

在许多情况下,您可以扩展默认请求处理程序并覆盖该routeRequest方法。

过滤器文档中

如果您确实需要在调用路由器之前修改请求,则更好的方法是将您的逻辑放入其中HttpRequestHandler

于 2018-09-06T17:54:59.580 回答