在grails中似乎沒有過濾器的左右攔截器。在Spring的情況下我們有相同的情況。如果我們想按照grails格式實現它,最好的方式來做到這一點。爲什麼在grails中沒有過濾攔截器?
0
A
回答
1
你可能會有點模仿。在before
閉包中,您可以檢查請求,會話等,並確定是否繼續常規呼叫。如果您希望可以重定向或在過濾器中提供響應,並返回false
以指示不應調用控制器。
如果您想允許控制器繼續,您可以在after
關閉中工作。您可以將信息存儲在before
關閉中的請求範圍中(例如request.currentRequestNumber = counter.incrementAndGet()
),並利用使用屬性訪問來存儲和檢索請求屬性,從而在after
關閉中(例如int currentRequestNumber = request.currentRequestNumber
)檢索它。
然而,您不能「調用」控制器並檢查其結果,並選擇是發送該響應,還是修改它,或發送不同的響應。儘管你可以用響應包裝來做到這一點,但你有一個自定義編寫器來捕獲呈現的響應。
請注意,使用常規servlet過濾器(即實現javax.servlet.Filter
並在web.xml中註冊的類)可以獲得更多靈活性(但Grails/Groovy幫助更少)。
相關問題
- 1. Grails過濾器vs攔截器
- 2. 攔截器或過濾器
- 3. Spring攔截器/過濾器
- 4. Gorm/Grails中域類的環境過濾器/攔截器?
- 5. Grails 3在過濾器之前運行攔截器
- 6. 爲什麼使用攔截器或過濾器時,我們有驗證器
- 7. 如何在Grails 3中使用過濾器而不是攔截器?
- 8. Spring攔截器vs servlet過濾器
- 9. 如何使用Spring攔截或過濾器攔截資源
- 10. 攔截 - 網址和過濾器
- 11. ActiveMQ攔截器來過濾隊列
- 12. 如何攔截Linq過濾器
- 13. 爲什麼AsyncRestTemplate在彈簧中沒有像RestTemplate這樣的攔截器?
- 14. 是否有與Java URL過濾器/攔截器等價的PHP?
- 15. 如何爲ILogger攔截攔截器
- 16. Grails攔截器模型在單元測試中爲null
- 17. Struts 2中的過濾器和攔截器2
- 18. Spring MVC中攔截器和過濾器的區別
- 19. Spring Security的過濾器有多個URL攔截映射
- 20. 攔截所有HTML流量的Java Servlet過濾器
- 21. 攔截器不攔截
- 22. java攔截器不攔截
- 23. 在攔截器
- 24. 尋找grails服務類的攔截器
- 25. 爲什麼過濾器卡在nrepl中?
- 26. 攔截器沒有被調用retrofit2
- 27. 郵差4.9.3 - 沒有攔截器開關
- 28. angularjs攔截:爲什麼不接受
- 29. 爲什麼Spring不攔截交易?
- 30. EJB 3.1攔截器是「攔截器」嗎?