2

在 Java 中,我们可以在过滤器中执行以下操作:

chain.doFilter(request, response);

这意味着我们可以使用我们自己的RequestWrappers并执行以下操作:

chain.doFilter(new RequestWrapper(request), response);

chain.doFilter在 grails中的等价物是什么?我想创建我RequestWrapper的然后调用doFilter以便下一个过滤器得到它?

4

1 回答 1

3

Grails 过滤器(如此所述)不是作为 servlet 过滤器实现的。我不认为 grails 过滤器提供了包装请求的方法。

通过利用 groovy 的动态特性,您也许可以达到相同的效果。例如,您可以修改请求对象的元类以将某些方法委托给另一个对象。

另一种选择是使用常规的 servlet 过滤器:

  1. 创建一个javax.servlet.Filtersrc/groovyor中扩展的类src/java
  2. 运行grails install-templates(如果你还没有)。
  3. 像使用纯 Java Web 应用程序一样更新src/templates/war/web.xml以包含<filter>和元素。<filter-mapping>
于 2013-09-26T15:49:31.740 回答