No se puede obtener Servlet para procesar el contenido de la solicitud como UTF-8

Estoy convirtiendo una aplicación heredada de ISO-8859-1 a UTF-8, y he usado una serie de recursos para determinar qué debo configurar para que esto funcione. Sin embargo, después de varios cambios de configuración, código y entorno, mi Servlet (en Tomcat 5) no parece procesar el contenido del formulario HTML enviado como UTF-8.

Esto es lo que he configurado para la configuración.

Propiedades del sistema
[user@server ~]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
tomcat5 server.xml
<Connector protocol="HTTP/1.1"
    ...
    URIEncoding="UTF-8"
    useBodyEncodingForURI="true"/>
Archivo JSP
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
...
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Filtro servlet
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
{
    if(request.getCharacterEncoding() == null)
    {
        request.setCharacterEncoding("UTF-8");
    }
    ...

Con algunos registros de depuración sé lo siguiente:

System.getProperty("file.encoding"): "UTF-8"
java.nio.charset.Charset.defaultCharset(): "UTF-8"
new OutputStreamWriter(new ByteArrayOutputStream()).getEncoding(): "UTF8"

Sin embargo, cuando envío mi formulario con una entrada que contiene "Бить баклуши", veo lo siguiente (de mis registros):

request.getParameter("myParameter") = Ð\221иÑ\202Ñ\214 баклÑ\203Ñ\210Ð

Sé que el tipo de contenido de la solicitud eranull, por lo que se estableció explícitamente en "UTF-8" en mi filtro de servlet. Además, estoy viendo mis registros desde una terminal, cuya codificación que conozco también está configurada en UTF-8.

¿Que me estoy perdiendo aqui?¿Qué más necesito configurar para que el Servlet procese correctamente mi entrada como UTF-8? Si más información ayudará, me complacerá agregar más depuración y actualizar esta pregunta con ella.

Editar:

No estoy usando Windows Terminal (estoy usando PuTTY), así que estoy bastante seguro de que el problema no es con lo que estoy viendo los registros. Esto está respaldado por el hecho de que cuando envío mi respuesta al navegador con el contenido enviado y lo publico, es la misma basura que la anterior.El formulario se está enviando desde IE8.Solución:

Miweb.xml la definición de mi CharsetFilter estaba demasiado abajo (debajo de las configuraciones de mi servlet y otros filtros). Moví la definición del filtro a la parte superior del documento web.xml y todo funcionó correctamente. Vea la respuesta aceptada a continuación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta