jquery中的ajax应用
jquery手册中还需要去了解
function checkname(obj){
var val = obj.value;
var url ="AjaxServlet.do";
var param={uname:'张三2',tA:23}; //传对象
var data= "data="+"123"; //传字符串
var data2 ="data="+"123"+"&data2="+"456"; //传多个参数
$.ajax({
url: url, // 请求路径
type: "POST", //提交方式
dataType:'text', //获取数据类型,还可以是json、xml
cache:false, //是否缓存
async:false, //是否异步 true(异步)或 false(同步)
data:param, //传入的参数
beforeSend:function(){ //请求发送之前触发,
alert("我要出发啦。。。。");
},
success:function(data){ //请求成功后返回的数据
alert("jquery==="+data);
data = eval("(" + data +")" ); //对获取到的数据进行处理,通过eval()转化成js数组
alert("eval==="+data);
alert(data.userA.name);
}
});
}
当 dataType:’text’,时
servlet 只需将数据放入流中即可
resp.setContentType("text/html"); //必须加上
PrintWriter out = resp.getWriter();
out.write("传入的值,一般为字符串");
out.flush();
out.close();
当 dataType:’json’,时
在servlet中需要将数据转化为json,在放入流中
手动转换为json格式
// String jsonStr="{'name':'张三','upw':'123','age':'23','sex':'女'}";
// User user = new User("张三", "123", 12, "男");
// String jsonStr="{\"uname\": \""+ user.getName()+"\",\"age\":\""+user.getAge()+"\"}";
// resp.setContentType("text/html");
// PrintWriter out = resp.getWriter();
// out.write(jsonStr);
// out.flush();
// out.close();
自动转换为json
public static String transToJsonStr(Object obj){
ObjectMapper mapper = new ObjectMapper();
// mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); //表示自动去掉值为null的
StringWriter sw = new StringWriter();
String strJson = null ;
try {
mapper.writeValue(sw, obj);
strJson = sw.toString();
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return strJson ;
}
public static void outJsonStrAndColse(HttpServletResponse resp,String jsonStr){
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html");
PrintWriter out;
try {
out = resp.getWriter();
out.write(jsonStr);
out.flush();
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
User userA = new User("张三a", "123", 12, "男");
User userB = new User("张三b", "123", 122, "女");
List list = new ArrayList<User>();
list.add(userA);
list.add(userB);
String jsonstr = JsonUtil.transToJsonStr(list);
JsonUtil.outJsonStrAndColse(resp, jsonstr);