request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。
Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应作用就是与客户端交互
请求方式有8中,只讨论get与post
请求处理的方式区别对待 超链接默认是get 、表单提交method 方式post或者get
对于get请求
方法一: 来一个请求处理一个请求。
tomcat默认的编码格式就是ISO-8859-1
例如、name=new String(name.getBytes("ISO-8859-1"),"UTF-8");
这是string类的方法(查手册)
byte[] | getBytes(Charset charset) |
但是这样局限性太大,如果获取很多的参数,这样是繁琐的;
方法二: 2、修改tomcat: 在tomcat 安装目录下的conf文件夹下的server.Xml文件大概60行
修改为 <Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" useBodyEncodingForURI="true"/>
也就是添加useBodyEncodingForURI="true"这个属性
解释:
URIEncoding是对所有GET方式的请求的数据进行统一的重新编码,
而useBodyEncodingForURI则是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码,不同的页面可以有不同的重新编码的编码
例如设置请求编码格式UTF-8 :request.setCharacterEncoding("UTF-8");
这个就很灵活了,想使用什么编码格式就传递相应的编码格式。
对于post请求
很简单只要request.setCharacterEncoding("UTF-8");就成功了(这个与tomcat的server.xml文件更改没有关系,可以自行证明)
设置请求体的文字编码 格式,一定写在获取参数之前
Response负责返回数据给客户端:
输出数据到页面:
1、:响应的格式改成UTF-8
response.setCharacterEncoding("UTF-8");
2、:指定浏览器编码:
response.setHeader("Content-Type", "text/html;charset=UTF-8");在dopost与doget中有效;
//默认的编码是ISO-8859-1
处理中文乱码
方法一、使用 response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "text/html;charset=UTF-8");
方法二、response.setContentType("text/html;charset=utf-8"); 这个方法相当于是方法一的两个的综合;