2011-02-26 77 views
0

我的公司有一个servlet过滤器,我们希望将其包含在各种第三方Java Web应用程序中。编辑供应商的web.xml文件存在一些犹豫不决的情况。这种犹豫是否值得?有没有另一种方法来做到这一点?有问题的应用程序服务器是Tomcat和Weblogix ...是否必须在web.xml文件中指定servlet过滤器?

回答

5

如果使用Servlet API高达2.5版 - 如果您希望可移植性,则没有其他方式 - 您必须在web.xml中包含Filter

如果使用的Servlet API 3.0,你可以在过滤器中使用web-fragment.xml你的罐子里,或@WebFilter注解,它会自动部署

(在web-app应该只以包括来自其他模块声明指定 metadata-complete="false"
3

AFAIK,他们必须在web.xml中。您的犹豫是有保证的 - 我从不喜欢这种修改,因为它使得很难合并供应商升级。但我不确定你有选择。只要确保您的黑匣子/验收测试足够强大,即可检测升级过程中您的滤波器何时掉线。

2

是的。

我已经能够以编程的方式做到这一点(in Jetty请参阅addFilter()方法),但这是一个特定的Jetty类,因此我没有意识到解决此问题的非容器特定方法,所以要确保你的代码部署在Tomcat和Jetty上,你的方法是唯一安全的方法。

相关问题