簡體   English   中英

在Play中,是否可以在路由之前應用過濾器?

[英]In Play, is there a way to apply filters before routing?

根據文檔,篩選器鏈發生在路由請求之后。 在路由請求之前 ,有什么方法可以應用過濾器鏈?

特別是,我們想在URL映射之前應用許多過濾器。 如果我們將它們作為常規過濾器使用,要么我們不能使用路由時發生的請求綁定,要么必須在操作中自己做。

是,

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)

文檔中可以得出:“如果確實需要在調用路由器之前修改請求,那么更好的方法是將邏輯放在Global.onRouteRequest中。”

在Play的較新版本(例如2.6.x)中,在路由之前應用自定義邏輯的首選方法是實現自定義HttpRequestHandler (有關HttpRequestHandler的Java版本,請參見此頁面 )。

在許多情況下,您可以擴展默認請求處理程序並覆蓋routeRequest方法。

過濾器文檔中

如果確實需要在調用路由器之前修改請求,則更好的方法是將邏輯放在HttpRequestHandler

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM