Create a filter:
import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class CharacterEncodingFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("UTF-8"); servletResponse.setContentType("text/html; charset=UTF-8"); filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }
Declare it in your web.xml:
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>your.package.filter.CharacterEncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
And you are good to go. Also make sure that each JSP page contains: <%@ page contentType="text/html;charset=UTF-8" language="java" %> . If your application is running on tomcat, make sure your URIEncoding="UTF-8" attribute is added to your Connector element.
Paulius matulionis
source share