Servlets 使用ServletRequest和ServletResponse设置字符编码

Servlets 使用ServletRequest和ServletResponse设置字符编码,servlets,Servlets,我见过一个处理文件处理的web应用程序(从服务器接收应用程序) 第三方应用程序,并将其存储在数据库中以供进一步使用) 该特定web应用程序还配置了一个servlet过滤器,其唯一基本目的是将字符编码设置为UTF-8 例如: public class ResponseFilterExample implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterCh

我见过一个处理文件处理的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");


好吧,区别在于一个,另一个

上面的文档链接更详细地解释了这一点

:

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

:

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


第一个设置请求的字符编码(从浏览器到服务器),第二个设置响应的字符编码(从服务器到浏览器)。你读过这两个方法()的javadoc吗?
response.setCharacterEncoding("UTF-8");