对ajax的理解:
Ajax是一门网页异步交互技术,
DOM模型是Ajax最本质的技术
Ajax是“Asynchronous JavaScript + XML的简写
中文名称定义为异步的JavaScript和XML
使用ajax技术不必刷新整个页面,只需对页面的局部进行更新;
有时候同一个页面同时访问很多次同一个servlet或者controller层,明明代码没有问题,但是有些数据或者下拉框出不来,或者是数据出来不完整,不完全。因为默认的async: false。这个时候就需要考虑异步的问题了。一般在script标签里加上这句代码就好了。
$.ajaxSettings.async=false;
下面举一个简单的例子:
不刷新页面从后台获取int类型的值。
Html代码:
<input id="linkmanId">
Ajax代码:
$.ajax({
url:"${ctx}/servlet/PNRServlet?type=newid",//请求地址
type:"post",//请求方式为post、get
//data:{"b":linkmanIds},//请求数据
//data : $('#form1').serialize(), //序列化输出字符串类型的结果
datatype:"json",//服务器返回的数据类型
success:function(result){//ajax成功时调用success //result返回的数据
//也可以把if条件判断写成if (result.resultCode == 200) { //200状态码 = 成功
layer.alert("获取数据成功!" ,{icon:0,title:"提示"} );
$("#linkmanId").val(result);
},
error:function(){//ajax失败是调用方法
layer.alert("获取数据失败!" ,{icon:0,title:"提示"} );
}
});
后台代码:
public void newid(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
int b = ip.selectValue();//调用实现类中写的一个获取值的方法
//int转换成json对象的时候取到的值会是空的,
//因为json对象和json字符串不一样,json对象要有键值对(key,value)
//所以在int类型转JSON的时候需要先将int类型转换成String类型,再进行转换
String v = String.valueOf(b);
//String a=Integer.toString(b); //这种也可以把int转为String类型
JSONArray arrays = new JSONArray();
arrays.add(v);
PrintWriter outs = response.getWriter();
outs.write(v);
outs.flush();
outs.close();
}
得到的input的结果:
在网页上按F12对js代码进行断点: