java服务器端接收json格式传递的参数

http://www.exceptionhelp.com/javadetail?articleId=584


前面我们说了传递参数的两种访书,第一是key-value形式,第二是json格式,
对于第一种我们在服务器端直接使用 request.getParameter("key");就能获取key对应的value。但是对于传递的json就不能使用这样的代码了,
利用json传递的参数存在request的body里,我们需要从里面输入流里面读取,下面是代码:
/**
* 获取请求的 body
* @param req
* @return
* @throws IOException
*/
public static String getRequestBody(HttpServletRequest req) throws IOException {
BufferedReader reader = req.getReader();
String input = null;
StringBuffer requestBody = new StringBuffer();
while((input = reader.readLine()) != null) {
requestBody.append(input);
}
return requestBody.toString();
}

StringBuffer requestBody = new StringBuffer();这句要注意一下,有的会使用String来定义requestBody,这样会有一个坏处,
每次reader.readLine()不为空的时候,requestBody += input;就会新创建一个String对象,而StringBuffer是可以追加的

你可能感兴趣的:(Java之路)