Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
Trabajando con UTF-8
Configuraremos el cliente para recibir y enviar la información en UTF-8.
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Definiendo la codificación de todas las peticiones
Cuando se envía la petición por POST, el servidor TOMCAT no es capaz de saber cuál es el formato de codificación del cliente. Como posible solución está crear un filtro para que todas las peticiones pasen por él y dónde se especifique que sean en formato UTF-8.
UTF8Filter.java
public class UTF8Filter implements Filter {
private String encoding;
//Recogemos el tipo de codificación definido en el web.xml
public void init( FilterConfig filterConfig ) throws ServletException {
encoding = filterConfig.getInitParameter( "requestEncoding" );
}
// Metemos en la request el formato de codificacion UTF-8
public void doFilter( ServletRequest request, ServletResponse response, FilterChain fc )throws IOException, ServletException {
request.setCharacterEncoding( encoding );
fc.doFilter( request, response );
}
public void destroy() {}
}
web.xml
…
<filter>
<filter-name>UTF8Filter</filter-name>
<filter-class>com.pablomonteserin.filter.UTF8Filter</filter-class>
<init-param>
<param-name>requestEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UTF8Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Configurando el servidor para trabajar con UTF8
En Tomcat por defecto se especifica el formato de codificación ISO-8859-1. Para cambiar la codificación tenemos que modificar el archivo server.xml que se encuentra en:
DIRECTORIO_INSTALACION_TOMCAT\conf\server.xml
Añadimos el atributo URIEncoding=“UTF-8” en la etiqueta <Connector port=»8080″ … />
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
Definir constantes en el web.xml
web.xml
<context-param>
<param-name>foo</param-name>
<param-value>bar</param-value>
</context-param>
<%=getServletContext().getInitParameter("foo") %>
${initParam.foo}