我正在写一个用于学术目的的项目,除其他无关紧要的内容外,还包括编写一个监视servlet / jsp响应时间的过滤器。
事实是,过滤器应该可以在服务器中部署的每个Web应用程序上运行,而不仅可以在特定的Web应用程序上运行,我只是找不到有关应用“全局”过滤器的任何信息。
可能吗
注意:重要的是要提到我正在使用 Apache Tomcat 7作为首选服务器。
谢谢!
米奇
您可以在Tomcat的公共类路径中提供过滤器,并编辑Tomcat自己/conf/web.xml的过滤器以添加过滤器,但这不能在不存在的webapp上下文中运行(即,它不能覆盖 所有 可能的请求),并且可以在所有已部署的webapp中覆盖。更强大的解决方案取决于所使用的servlet容器。如果是Tomcat,则需要Valve组件。
/conf/web.xml
开球示例:
import org.apache.catalina.valves.ValveBase; public class MyValve extends ValveBase { @Override public void invoke(Request request, Response response) throws IOException, ServletException { // ... getNext().invoke(request, response); } }
将其注册如下server.xml:
server.xml
<Valve className="com.example.MyValve" />