说我有一个J2EE过滤器。假设我想在此过滤器中执行某些操作,但是有条件地,并且取决于请求最终命中的servlet。
例如,我想要一个单一的过滤器来阻止任何非GET / POST请求方法,但我有一些servlet可以处理OPTIONS请求方法。所以,如果我知道目标servlet是什么,并检查它是否有一些标记(即接口或注释),以便过滤器可以通过OPTIONS请求(否则返回405)。
到目前为止,我提出的最好的是:request.getServletContext().getServletRegistration(request.getServletPath().substring(1)).getClassName()
(使用正确的NULL检查)为我提供了请求将要访问的servlet的类名。