Let’s add a second Wrapper...
Compression filter design, version 3 (pseudocode)
1 The filter passes the request object and a custom response object to the servlet. The custom response has a special getOutputStream method.
2 When the servlet asks for an output stream, it doesn’t KNOW that it will get a “special” output stream.