The filter should work fine for binary content. To set the MIME type of a response the filter relies on the ServletContext.getMimeType() method. Make sure the MIME type for your particular URL is appropriately set in either web.xml for your web app, or for your container.
For example. If I want to cache JPEG images, I could map the filter as follows.
And make sure the MIME type "image/jpeg" was set for the "jpg" extension.
You would apply the same method for other MIME types and extensions.