autoRequestEncoding y autoResponseEncoding
A partir de WebSphere Application Server, versión 5, el contenedor web ya no configura automáticamente los códigos de solicitudes y respuestas, ni los tipos de contenido de las respuestas. Los programadores deberán establecer estos valores utilizando los métodos disponibles en la especificación Servlet 2.3 o posterior. Si los programadores eligen no utilizar los métodos de codificación de caracteres, pueden especificar las extensiones autoRequestEncoding y autoResponseEncoding, que permiten al servidor de aplicaciones establecer los valores de codificación y el tipo de contenidos.
Los valores de las extensiones autoRequestEncoding y autoResponseEncoding son true o false. El valor predeterminado de ambas extensiones es false. Si el valor es false para autoRequestEncoding y autoResponseEncoding, la codificación de caracteres de solicitud y respuesta se establece en el valor predeterminado de especificación de servlet, que es ISO-8859-1. Asimismo, si el valor se establece como false para una respuesta, el contenedor web no puede establecer un tipo de contenido respuesta. Es posible realizar codificaciones de caracteres diferentes si el cliente define la codificación de caracteres en la cabecera de la respuesta o si el código incluye el método setCharacterEncoding(String encoding).
Si el valor de autoRequestEncoding se establece en true y el cliente no ha especificado la codificación de caracteres en la cabecera de solicitud y el código no incluye el método setCharacterEncoding(String encoding), el contenedor web intenta determinar la codificación de caracteres correcta para los parámetros y datos de la solicitud.
Utilice una herramienta de ensamblaje para cambiar los valores predeterminados para las extensiones autoRequestEncoding y autoResponseEncoding.
El contenedor web efectúa cada uno de los pasos de la lista siguiente hasta que encuentra una coincidencia:
- Busca el juego de caracteres en la cabecera de tipo de contenido.
- Intenta correlacionar el entorno nacional de los servidores con un juego de caracteres utilizando las propiedades definidas.
- Intenta utilizar la propiedad del sistema DEFAULT_CLIENT_ENCODING, si hay una establecida.
- Utiliza la codificación de caracteres ISO-8859-1 como valor predeterminado.
Si el valor de autoResponseEncoding se establece en true y el cliente no ha especificado la codificación de caracteres en la cabecera de solicitud y el código no incluye el método setCharacterEncoding(String encoding), el contenedor web efectúa lo siguiente:
- Intenta determinar el tipo de contenido de la respuesta y la codificación de caracteres a partir de la información de la cabecera de solicitud.
- Utiliza la codificación de caracteres ISO-8859-1 como valor predeterminado.