可以想象成你向response中写返回内容后,这个内容会打包传给tomcat服务器,然后由服务器传给客户端(浏览器),浏览器通过某种解析方法解析这个返回的包,那么:
response.setCharacterEncoding的意思就是你在写入这个包的内容时采用的是哪种解析方式,而
response.setContentType的意思就是你在解析这个返回包的时候用的是哪种解析方式
这个ContentType实际上是附着在http中的消息头上的内容,通过消息头浏览器来确认解析返回包的形式。
例如:
response.setContentType("text/html;charset=utf-8");
就等价于以下这两句话:
response.setHeader("content-type", "text/html"); //设置header的content-type
response.setCharacterEncoding("utf-8");//
如果你点开一个网页的F12来查看这个网页的响应header就会发现下面这行代码
content-type:text/html;charset=utf-8
也就是对应了上面的两句话。