Procurando por um exemplo para inserir conteúdo na resposta usando um filtro de servlet

Eu tenho procurado na net e stackoverflow por um exemplo de alguém inserindo conteúdo na resposta usando um filtro de servlet, mas só pode encontrar exemplos de pessoas capturando / comprimindo a saída e / ou alterando os cabeçalhos. Meu objetivo é acrescentar uma parte do HTML antes do fechamento </ body> de todas as respostas HTML.

Eu estou trabalhando em uma solução que estende o HttpServletResponseWrapper para usar meu próprio PrintWriter, em seguida, substituindo os métodos de gravação nele. Dentro do método write eu estou armazenando os últimos 7 caracteres para ver se é igual à tag body de fechamento, e então eu escrevo meu pedaço HTML mais a tag body de fechamento, antes de continuar as operações normais de gravação para o resto do documento.

Eu sinto que alguém já deve ter resolvido esse problema, e provavelmente mais elegantemente do que eu. Eu apreciaria quaisquer exemplos de como usar um filtro de servlet para inserir conteúdo em uma resposta.

ATUALIZADA

Respondendo a um comentário, também estou tentando implementar o CharResponseWrapper dehttp://www.oracle.com/technetwork/java/filters-137243.html. Aqui está o meu código:

PrintWriter out = response.getWriter();
CharResponseWrapper wrappedResponse = new CharResponseWrapper(
        (HttpServletResponse)response);

chain.doFilter(wrappedRequest, wrappedResponse);
String s = wrappedResponse.toString();

if (wrappedResponse.getContentType().equals("text/html") &&
        StringUtils.isNotBlank(s)) {
    CharArrayWriter caw = new CharArrayWriter();
    caw.write(s.substring(0, s.indexOf("</body>") - 1));
    caw.write("WTF</body></html>");
    response.setContentLength(caw.toString().length());
    out.write(caw.toString());
}
else {
    out.write(wrappedResponse.toString());
}

out.close();

Também estou encerrando a solicitação, mas esse código funciona e não deve afetar a resposta.

questionAnswers(3)

yourAnswerToTheQuestion