我已经研究 Grails 有一段时间了。并浏览了一些关于过滤器和拦截器的信息。两者在跟踪 session 或重定向特定 Controller 中未经授权的用户方面几乎具有相同的功能。
但是我很困惑何时以及为什么应该使用过滤器而不是拦截器,反之亦然。
鉴于 Inceptor 有两个 Controller 方法 beforeInterceptor
和 afterInterceptor
,对于过滤器,有三个常见的闭包 before
、 0x251812231343124113 和 30x12413 。
我的问题是对拦截器使用过滤器的优缺点是什么,反之亦然。通过这种方式,我们开发人员可以决定何时、何地以及为什么我们应该在特定 Controller 中使用过滤器或拦截器来进行一些跟踪、重定向等。
最佳答案
当拦截逻辑仅适用于该 Controller 时,在 Controller 中使用一个或两个拦截器。
当逻辑适用于多个(或所有) Controller 时,或者当您需要在呈现 View 后执行某些操作(没有与 afterView 等效的拦截器)时,或者如果您只想将所有内容集中在一个地方而不是分布在单独的 Controller 文件中。
关于Grails 过滤器与拦截器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11661654/