tomcat - español - header(''content-type: text/html; charset=utf-8'');
Tomcat 7.0.35 establece el encabezado de respuesta HTTP Content-Type charset para archivos HTML estáticos (1)
Estoy sirviendo algunos archivos HTML estáticos y un servlet en un solo archivo war de un servidor independiente Tomcat 7.0.35 que usa el Conector HTTP.
Deseo especificar el conjunto de caracteres de todos los archivos HTML estáticos configurando el encabezado de respuesta HTTP Content-Type=text/html;charset=UTF-8
.
Tomcat de forma predeterminada sirve archivos HTML con Content-Type=text/html
(sin porción de juego de caracteres).
Seguí las instrucciones en:
http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q8
Pero el encabezado aún contiene Content-Type=text/html
sin ;charset=UTF-8
Mi web.xml se reproduce a continuación. Tenga en cuenta que traté de cambiar el url-pattern
a /*
, *
, /index.html
e index.html
, pero ninguno de estos funcionó.
FYI, el archivo /index.html está siendo servido correctamente por Tomcat (excepto por el que falta ;charset=UTF-8
). El servlet / getData también está funcionando correctamente y he configurado correctamente las respuestas del servlet Content-Type=text/html;charset=UTF-8
utilizando response.setContentType("application/json;charset=UTF-8");
.
Gracias por cualquier ayuda.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<filter>
<filter-name>CharacterEncoding</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncoding</filter-name>
<url-pattern>/index.html</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>DataServlet</servlet-name>
<servlet-class>com.rcg.data.web.DataServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DataServlet</servlet-name>
<url-pattern>/getData</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>
¿Has intentado configurar el mapeo MIME para incluir el juego de caracteres?
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>