常见的传递参数的两种方式,第一是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是可以追加的。