一个自主开发的Filter如果编写得当,是完全可行的,但它不够可维护/可重用,因为它与特定的Web应用程序紧密耦合。Java EE容器管理的安全性和Spring Security提供了一个API,对于每个Web应用程序都是相同且可重用的。这可能会更容易实现/维护相同的开发人员/维护人员在多个不同项目上工作。虽然相对容易实现,但一个自主开发的Filter只是违反了DRY。顺便说一下,我不建议使用PhaseListener,因为它仅钩住JSF请求,而不是其他请求,如静态CSS / JS / HTML文件和“纯”JSP文件。