ajax 发送json格式给servelt

$.ajax({
type:“post”,
url:“Add”,
processData:false,//为true时将数据序列化
data:JSON.stringify({“addname”:name,“addphone=”:phone}),//<=json字符串写法
//data:{“addname”:name,“addphone”:phone},//<=json对象写法
//data:“username=”+name+’&’+“password=”+pwd,//<=这是为contentType:application/x-www-form-urlencoded的写法
//dataType是接收服务端的数据类型
//contentType是告诉服务端的传过去的数据是啥类型(默认为application/x-www-form-urlencoded)
//如果dataType:“text”,则servlet=>response.setContentType(“text/html;charset=UTF-8”);
//如果dataType:“json”,则servlet=>response.setContentType(“application/json;charset=UTF-8”),并且要在后台将数据转换成json字符串格式/json对象格式;
//如果ajax的contentType:“json”,data属性需要设置为json字符串/json对象
//可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象
//可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串
//如果data是字符串,使用eval("("+data+")")可以将其转换为json对象,和JSON.parse的功能一样
//dataType:“text”,
dataType:“json”,
contentType:“json”,
success:function(data){
//以下是对servlet返回的数据进行处理
console.log(“data”+data);
//var json=eval(’(’+data+’)’);//或者用var obj=JSON.parse(data);//后台返回json字符串时使用
var json=JSON.stringify(data);//后台返回json对象时使用
//alert(json.name+“保存成功!联系电话为”+json.phone);//转换后的数据为对象时使用
alert(name+“保存成功!联系电话为”+phone);//转换后的数据为字符串时使用,属性要和后台一致
str=’’+(num-1)+’’+name+’’+phone+‘修改 删除’
$(“table”).append(str);
$(".addmd").modal(“hide”);
},
error:function(){
alert(“false”);
}
})
})

后台servlet:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“application/json;charset=UTF-8”);
//json数据是通过request body(请求体)传送的
//request.getParameter()只能获取request head(请求头)中的数据
//所以使用ajax传json数据给servlet时,放弃request.getParameter()方法
//采用流的方式读取request body中的json串。然后将json字符串转为JSONObject对象,
//最后将JSONPObject对象转为Java对象。
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
(ServletInputStream)request.getInputStream(), “utf-8”));
StringBuffer sb = new StringBuffer("");
String temp;
while ((temp = br.readLine()) != null) {
sb.append(temp);
}
br.close();
//获取到的json字符串
String acceptjson = sb.toString();
System.out.println(“acceptjson:”+acceptjson);
//将json字符串转为jsonobject对象
JSONObject json = JSONObject.fromObject(acceptjson);
System.out.print(“json.toString:”+json.toString());
PrintWriter out=response.getWriter();
out.print(json.toString());
//将jsonobject对象转为java对象
People people = (People)JSONObject.toBean(json,People.class);//People类是我自己定义的
System.out.println(people);
} catch (Exception e) {
e.printStackTrace();
}
//此处当ajax传过来的是json对象可用
/*
String name=request.getParameter(“addname”);
String phone=request.getParameter(“addphone”);
System.out.println(“获取ajax传过来的数据:”+name+phone);
PrintWriter out=response.getWriter();
PeopleDAO PeopleDao = new PeopleDAO();
People p=new People(name,phone);
PeopleDao.addPeople§;
JSONObject json=new JSONObject();
json.put(“name”,name);
json.put(“phone”,phone);
System.out.println(name+“保存成功!”);
out.print(json.toString());
*/
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值