POST&GET请求,响应乱码问题解决办法

版权声明:Please make the source marked https://blog.csdn.net/qq_31807385/article/details/83002265

(POST请求放在请求体中,而GET请求在浏览器的地址栏中)

POST请求乱码问题:

假设这样的场景:在浏览器中有一个表单,我们在表单中输入了中文汉字,在Servlet中的doPost中,我们尝试获取这个参数并进行打印,在浏览器提交了请求之后发现在服务器控制台打印的是中文乱码。如何解决这个问题?

在获取这这个参数之前,设置

request.setCharacterEncoding("UTF-8");

注意:这句设置必须在第一次获取请求参数之前

GET请求的乱码问题

和上面的POTS请求一样的场景,如果我们使用相同的方法来设置,最后发现依然会出现乱码的问题,为什么呢?以为Get请求是在地址栏中传递的, 在到达Servlet之前,已经被服务器解析过,即已经乱码了,所以要这样解决:在TomCat服务器的server.xml配置文件的第一个Connector标签中添加:

URIEncoding ="UTF-8"

POST和GRT的响应乱码的问题:

场景是这样的:Servlet对于浏览器提出的请求做出了响应之后,给浏览器响应了中文,结果在浏览器接收到响应解析之后,发现有中文乱码,如何解决?在请求的响应之前设置:

response.setContentType("text/html;charset=UTF-8");

F11在浏览器中查看响应头,会发现多了一条内容:Content-Type: text/html ; characterset :utf - 8; 这个响应头告诉浏览器,服务器响应的是一个HTML页面,使用的字符集是UTF-8,所以浏览器就会使用UTF-8 来解码,就不会出现乱码问题。

猜你喜欢

转载自blog.csdn.net/qq_31807385/article/details/83002265