响应和请求之间的差异
request . setcharacterencoding(utf-8);
response . set content type(text/html;charset = utf-8);
Request.setCharacterEncoding():设置从请求中获取的值或从数据库中检索的值。
如果指定了,可以直接通过getParameter()获得正确的字符串。如果未指定,默认情况下将使用iso8859-1编码。值得注意的是,在执行setCharacterEncoding()之前,不能执行任何getParameter()。而且,这个规范只对POST方法有效,对GET方法无效。分析的原因是第一个getParameter()执行时,java会根据代码分析所有提交的内容,而后面的getParameter()就不再分析了,所以setCharacterEncoding()是无效的。对于GET方法提交表单,提交的内容在URL中,提交的内容从一开始就已经根据代码进行了分析,所以setCharacterEncoding()自然是无效的。
进入Tomcat的server.xml:
连接器端口= 8080协议= HTTP/1.1连接超时= 20000重定向端口=8443
URIEncoding=GBK/
)添加URIEncoding=GBK,解决get请求响应的乱码问题. set内容类型(text/html;Charset=gb2312):是设置页面中的中文代码。也就是将哪个代码返回给客户端。
前者是设置动态文本(参数,数据库),后者是设置页面上的静态文本。
response.setContentType指定返回给客户端的代码和浏览器显示的代码。
————————————————