所有webapps的tomcat过滤器

时间:2011-10-18 14:06:45

标签: java tomcat

问题:我想对所有网络应用进行过滤。

我创建了一个过滤器,用于监控对apache tomcat服务器的请求。

为了举例,它被称为MyFilter。我在netbeans中创建了它,它创建了2个独立的目录:

webpages - contains:
    META-INF
    WEB-INF
    index.jsp (a file which i created for viewing monitored data)

source packages
    my.package/MyFilter

同样当我从netbeans执行它时,它会部署它并将我发送到http://localhost:8080/MyFilter

每当我在/ MyFilter / somepath下查看页面时,它都会运行过滤器。

我希望过滤器在所有路径上运行,而不仅仅是针对webapp

我需要在哪里找到项目文件?我需要哪些项目文件?我应该编辑conf / web.xml并添加过滤器吗?或者我应该只在特定的webapp的web.xml中?

修改

我将生成的.war文件复制到tomcat / webapps

当我启动tomcat时,它会创建一个目录(tomcat / webapps / MyFilter /)

我将过滤器添加到tomcat / conf / web.xml中。当我启动它时,它无法加载:// localhost:8080 /但成功加载(和过滤器):// localhost:8080 / MyFilter

1 个答案:

答案 0 :(得分:10)

根据定义的过滤器只能在其定义的Web应用程序中运行。

您可以在Tomcat的web.xml目录中的conf/中定义它,以便将它包含在默认情况下部署到该Tomcat的所有Web应用程序中(请注意,您还需要制作过滤器)可用于所有Web应用程序的类,可能是将它放在Tomcat的lib/目录中。

或者,您可以实现Tomcat Valve,它在概念上类似于过滤器,但可以安装在Tomcat中的引擎,主机或上下文中。