文字エンコード用にアプリケーションにフィルターを実装してみてください。
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() {
    }
}
また、tomcatを使用している場合は、コネクタ要素にURIEncoding属性(値はUTF-8)があることを確認してください。
<Connector port="8080" 
           protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           redirectPort="8443"/>
また、すべてのJSPページでこれを指定していることを確認してください。
<%@page contentType="text/html" pageEncoding="UTF-8"%>
お役に立てれば。