Satguru: A - Your response filter can wrap the response (i.e. can add or modify the response). The example in HFS is the Compression Wrapper where the response is wrapped by a compression filter, so all requests matching the url-pattern you specify automagically get their responses compressed.
E - the key here is the word "must". You might have a filter that wants to stop certain requests from getting through. In this case you would not want to call doFilter since you would not want any further processing of the blocked request.
Howdy, I agree with satguru about answer "E". I think it's poorly-worded and you should give yourself a point regardless of how you answer it, because of ways it can be interpreted.
To be 100% clear, it should have left out the last half of the sentence, and just say:
"E. A filter's doFilter() method must call doFilter() on the input FilterChain object."
The part that says, "... in order to ensure that all filters have a chance to execute." is the problem, because while you do not HAVE to call doFilter(), because as Roger said, you might want to stop processing, but if you DO want to ensure the other filters have a chance to execute, then you DO need to call doFilter(). So, this will be on our list of things to improve.