Java 适用于所有Web应用程序的tomcat筛选器
问题:我想对所有Web应用程序进行筛选 我创建了一个过滤器,用于监视对ApacheTomcat服务器的请求 例如,它被称为MyFilter。我在netbeans中创建了它,它创建了两个独立的目录:Java 适用于所有Web应用程序的tomcat筛选器,java,tomcat,Java,Tomcat,问题:我想对所有Web应用程序进行筛选 我创建了一个过滤器,用于监视对ApacheTomcat服务器的请求 例如,它被称为MyFilter。我在netbeans中创建了它,它创建了两个独立的目录: webpages - contains: META-INF WEB-INF index.jsp (a file which i created for viewing monitored data) source packages my.package/MyFilte
webpages - contains:
META-INF
WEB-INF
index.jsp (a file which i created for viewing monitored data)
source packages
my.package/MyFilter
同样,当我从netbeans执行它时,它会部署它并将我发送到
每当我在/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根据定义,筛选器将仅在其定义的web应用程序中运行
您可以在Tomcat的conf/
目录中的web.xml
中定义它,以便默认情况下将其包含在部署到该Tomcat的所有web应用程序中(请注意,您还需要使filter类对所有web应用程序可用,可能需要将其放在Tomcat的lib/
目录中)
或者,您可以实现一个,它在概念上类似于过滤器,但可以安装在Tomcat的引擎、主机或上下文上。可能重复@BalusC,我知道阀门,但可以使用过滤器完成吗?是的。也许您只需要在Tomcat的
web.xml
中修复过滤器的URL模式?它被设置为/*,不应该用于所有请求吗?是的。也许你的问题是因为你根本没有一个webapp?筛选器仅在已部署的Web应用程序上运行。您询问如何为所有Web应用程序设置全局筛选器。谢谢,但就我而言,我必须使用筛选器实现它。我将它添加到web.xml,并在apache启动时加载,但它似乎仍然只对/MyFilter路径运行filter命令。顺便说一句,我在webapps/目录中找到了build/web/*。我遗漏了什么?您将它添加到了哪个web.xml
?您的web应用程序中的哪一个?或者到Tomcat安装的conf/
目录中的一个?两者都可以。我认为问题在于,在conf/web.xml中,我需要为过滤器指定不同的路径-class@Liorsolo:是否确保筛选器类实际位于所有应用程序的类路径上?您是否将其放入一个JAR(及其所有依赖项!)并将其放入Tomcatslib/
?它生成一个war文件而不是JAR。tomcat的lib只包含jar