日期:2014-05-17  浏览次数:20641 次

请问servlet中如何获得post来的数据
问题不简单,因为前提是不能使用request.getParameter这个函数,因为如果使用这个函数,我前台就必需得把post文本写成name=value的形式,这会带来一个大麻烦,就是一些字符的转义,由于发送的文本比较大,转义想起来就疼,于是想到把内容用base64来编码一下,但还是有麻烦,客户端编码后,servlet中解码后,总是有一些汉字会乱码,真心烦了。我想如果servlet中能直接获取到post来的原始内容而不需要request.getParameter,那一切问题全解决了。

客户端textArea中得到的文本先转成utf-8再转成base64 ,服务器端servlet中再解码,结果正常。(转换用的方法从网上找的,号称真正兼容js和java,并经过测试)

客户端input中得到的文本经一系列转换后到服务器里解出乱码(当然是中文)
我试了下直接客户端把汉字常量经系列转换后到服务器又解出乱码。
真心烦了,请教一下不用getParameter如何得到post来的文本内容?
------最佳解决方案--------------------


  BufferedReader sis; 
  sis = request.getReader();
  char[] buf = new char[1024];
  int len = 0;
  StringBuffer sb = new StringBuffer();
  while((len = sis.read(buf))!= -1){
   sb.append(buf,0,len);
  }
  System.out.println(sb.toString());

------其他解决方案--------------------
null