Valve是位于Catalina容器中的组件,可以插入到请求处理pipeline中,对请求做某些处理。
Servlet filter的作用与valve相同,不同的是valve是Tomcat的私有机制,与tomcat的基础架构/API是紧耦合的。Servlet API是公有的标准,所有的Web容器都支持filter机制。所以valve不是跨web容器的,filter是可以的。
另一个重要的区别是valve工作在容器级别,拦截所有应用的请求,servlet filter工作在应用级别,只能拦截指定的某个应用的所有请求。所以如果想做整个server端的拦截器,必须通过valve来实现。
Servlet filter的作用与valve相同,不同的是valve是Tomcat的私有机制,与tomcat的基础架构/API是紧耦合的。Servlet API是公有的标准,所有的Web容器都支持filter机制。所以valve不是跨web容器的,filter是可以的。
另一个重要的区别是valve工作在容器级别,拦截所有应用的请求,servlet filter工作在应用级别,只能拦截指定的某个应用的所有请求。所以如果想做整个server端的拦截器,必须通过valve来实现。
本文探讨了Valve和Servlet Filter两种请求处理机制的区别。Valve作为Tomcat专有的组件,能够作用于整个服务器层面,而Filter则遵循标准Servlet API,适用于所有Web容器,并仅限于特定的应用上下文。
838

被折叠的 条评论
为什么被折叠?



