使用Request Dispatcher的Java过滤器 - 使用JavaEE 6注释

ET1*_*T13 3 java dispatcher java-ee-6 servlet-filters

我使用JaveEE 6 Annotation为"/ folder/*"创建了一个过滤器

@WebFilter("/folder/*")
Run Code Online (Sandbox Code Playgroud)

但是,当我去"/test.html"有一个电话

request.getRequestDispatcher("/folder/test.jsp").forward(request, response);
Run Code Online (Sandbox Code Playgroud)

在doGet中,页面未被过滤.在浏览器中手动转到"/folder/test.jsp"时,过滤器工作正常.如何在使用调度程序时使其工作?

我找到了一个xml方法的解决方案,可以在这里这里创建多个地方的过滤器,但是无法使用注释找到解决方案.谢谢!

Jör*_*ann 5

注释似乎有一个dispatcherTypes属性来支持这个,所以以下应该工作:

@WebFilter(value={"/folder/*"},
           dispatcherTypes={DispatcherType.REQUEST, DispatcherType.FORWARD})
Run Code Online (Sandbox Code Playgroud)