已解决
我在浏览器F12看到,内容类型是 :text/plain;iso-8859-1。
我一开始以为,乱码和请求方式有关系。现在看应该没关系。
响应头中包含内容类型:Content-Type
1、text/html 就是说本次响应,响应内容是超文本html。(字符集为utf-8)
2、text/plain :响应内容是纯文本 (字符集iso-8859-1)
3、application/json :响应内容是一个json对象。(字符集utf-8)
而jetty服务器中,默认的就是根据不同的响应内容,设置为不同的字符集,如上。
解决:
这个方法,我返回的内容,就是String对象。jetty服务器一看是纯文本,就在响应头中设置了:Content-Type:text/plain;iso-8859-1
我把响应内容改为一个json对象,之后,jetty服务器,就在响应头中改变了内容类型:
Content-Type:application/json;utf-8
知识点:javaweb中服务器和客户端(浏览器),是基于http协议的。
http协议规定了请求和响应的具体格式。
以后出现乱码问题,先看一下响应头。大概就是看本次响应的内容类型、字符集。
jetty作为一个网站的服务器,当然要处理http协议包。她默认了一些响应规则,当然web开发程序员应该也可以修改。
这种乱码问题,不是出在服务端、就是客户端。这是废话,没有第三端了。
可以借此多理解一下编程规则。准确的说是原理,这个问题的解决,感觉理解了一点原理。