2011-02-26 159 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上,你的方法是唯一安全的方法。

相關問題