url的post请求 Content-Type:application/json类型 Java后端接收(^_^)

Content-Type为application/json时,假设前台传输的数据为data: {name:'wyc',age:12}

第一种情况在springmvc框架下

处理方法为前台post请求,传输过程中数据需要从json对象转成json字符串data: JSON.stringify({name:'wyc',age:12})

后台接收函数上添加@requestbody注解,并定义一个类包含name和age属性:

public class user {
    String userName;
    String password;
    省略get和set方法
 
}

后台接收函数为

public 方法返回类型 方法名(@RequestBody user user);

说明@RequestBody注解最好使用对象接收,

也可以通过字符串接收,只需要定义一个变量就能接收到

public 方法返回类型 方法名(@RequestBody String  data);此时data接收到数据就是{name:'wyc',age:12}(不推荐,因为还要获取里面的值,要用json转换对象等

第二种情况在servlet下

处理方法为前台传输数据依旧需要从json对象转成json字符串data: JSON.stringify({name:'wyc',age:12})

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{ 
BufferedReader br = request.getReader();
String str, wholeStr = "";
while((str = br.readLine()) != null){
         wholeStr += str;
}
System.out.println(wholeStr);
user user= (user)JSONObject.toBean(JSONObject.fromObject(wholeStr),user.class);
System.out.println(user.getserName());
}

比较麻烦啊,先使用request.getReader();然后再转成对象user;使用request.getParamer()是接收不到的。

你可能感兴趣的:(java)