doFilter doing inside a
doFilter? Isn’t it a recursive call?
Servlet Filters are an implementation of the Chain of responsibility design pattern.
All filters are chained (in the order of their definition in web.xml). The
chain.doFilter() is proceeding to the next element in the chain. The last element of the chain is the target resource/servlet.