什么是doFilter在java的过滤器中的doFilter方法中做什么?

gir*_*iri 38 java servlet-filters

我想知道在我们的dofilter方法中我做了这个调用chain.doFilter.什么是doFilter在doFilter中做什么?是不是会得到递归调用?

Boz*_*zho 53

Servlet过滤器是责任链设计模式的实现.

所有过滤器都是链接的(按照web.xml中的定义顺序).的chain.doFilter()是在进行到该链中的下一个元素.链的最后一个元素是目标资源/ servlet.


Jaa*_*koK 14

它调用的doFilterchain对象的方法,而不是它本身,所以不,它不会是递归的.

这个名字chain表明你有一系列的过滤器,每个过滤器都会进行一些处理,然后按顺序传递给下chain一个过滤器,所以每个对象都有一个成员指向序列中的下一个过滤器,在过滤器之后调用它进行了自己的处理.那么序列中的最后可能不得不nullchain值,也对自己知道,这是序列中的最后一个.