过滤器具体如何在我的过滤器上实现ContainerRequestFilter和ContainerResponseFilter的URL?

时间:2018-02-28 18:58:30

标签: java filter java-ee-7

我正在实施如下过滤器:

@Provider
public class MyFilter implements ContainerRequestFilter, ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext requestContext) throws IOException {
       System.out.print("request");
    }

    @Override
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
       System.out.print("response");
    }

}

如何使过滤器仅适用于遵循特定模式(regexp)的URL?

1 个答案:

答案 0 :(得分:1)

过滤器中不允许使用正则表达式 - 某些通配符

<filter>
    <filter-name>MyFilter</filter-name>
    <filter-class>...</filter-class>
</filter>

<filter-mapping>
    <filter-name> MyFilter</filter-name>
    <url-pattern>/Employee/*</url-pattern>
</filter-mapping>

您可以使用过滤器缩小URL,然后在过滤器Java代码中,您可以使用RegEx进行条件处理