get post数据的读取分析

get 请求 将数据附在url后面 形成如xxx/fetch?id=1&type=商品
后台通过

string id=request.getParameter("id");
String goodType=request.getParameter("type");

而post请求,则需要后台通过

public String controllerPostUtil(HttpServletRequest request){
String json="";
BufferReader br=null;
StringBuffer sb=null;
try{
br=request.getReader();
String str="";
while((str=br.readLine())!=-1){
  sb.append(str);
}
br.close();
}catch(IOException e){
e.printStack();
}

json=sb.toString();
return json;
}
即得到

问题来了:
1为什么我后台还是拿不到数据呢?

检查前台传送的data是不是标准json格式。JSON.Stringify(data);

2我get请求中文乱码啦!

1),tomcat的server.xml 设置
 <Connector URIEncoding="UTF-8" 
                 port="8080"   maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               connectionTimeout="20000" disableUploadTimeout="true" />
(2),设置编码集(对get请求无用,因为get是通过url传递,所以对request设置编码集没用!!!)
(3),url上附带了中文,你可以前台通过encodeurl(encodurl(url))
后台URLDecode.decode(str,“utf-8”) 即可
3 我post请求乱码啦!
因为通过前面  我们拿取post的数据是通过request.reader()获取
所以post乱码原因
可能未设置request编码集 request.setCharacterEncoding("utf-8");

——————————-face problem then solve it

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值