request.getReader()的怪异事件
Map<String, String[]> pmap = request.getParameterMap();
BufferedReader br = request.getReader(); String res = "";
while ((res = br.readLine()) != null) { System.out.println("request body:" + res); out.print("<BR/>request body:" + res); }
以上代码在servlet里可以打印出来post请求的参数吗?
答案是不可以!!
为什么呢?
这个十分怪异,找了朋友,让他们帮忙用request.getReader()获得post参数,却都告诉我可以拿到。。
我就纳闷了,我的代码哪里出了错?
于是把朋友的代码拷过来,试了一下,成了!
就是第一行的getParameterMap(),这句话把数据读了一遍之后,后面的request.getReader()拿不到了!
去掉第一行的getParameterMap()就可以了。。。。
getReader只能调用一次
原因参考API,及这个帖子http://topic.csdn.net/t/20030816/03/2152573.html