Hi Andrzej.
Filters may be used to create request or response wrappers.
It possible to create request and response wrapper objects by using
servlets, custom tags, EL functions and Filters. I think authors keep this in mind and used 'may be' (Filters may be used to create request or response wrappers).
A filter's doFilter() method must call doFilter() on the input FilterChain object in order to ensure that all filters have a chance to execute.
I think its correct.
The only way a filter can be invoked is through a declaration in the DD.
It is true. When client made request, the container decides which filter will call first and which is second and third etc. According to this mapping the FilterChain's doFilter() method call's the next filter.
SCJP5.0, SCWCD5.0, OCEJPAD6, OCPJWSD6