使用ServletRequest和ServletResponse设置字符编码

时间:2011-07-05 17:38:34

标签: servlets

我见过一个处理文件处理的Web应用程序(从中恢复应用程序) 第三方应用程序并将它们存储在数据库中以供进一步使用)。

该特定Web应用程序还配置了servlet过滤器,其唯一基本目的是将字符编码设置为UTF-8。

例如:

public class ResponseFilterExample implements Filter {
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterchain) throws IOException, ServletException {
        filterchain.doFilter(request, response);
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8"); 
    }
}

现在我的问题是,

之间有什么区别
request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

1 个答案:

答案 0 :(得分:0)

嗯,区别在于一个sets the encoding on the request,另一个sets the encoding on the response

以上文档链接更详细地解释。

ServletRequest.setCharacterEncoding()

  

覆盖此请求正文中使用的字符编码的名称。必须在读取请求参数或使用getReader()读取输入之前调用此方法。否则,它没有效果。

ServletResponse.setCharacterEncoding()

  

设置发送到客户端的响应的字符编码(MIME字符集),例如,设置为UTF-8。