详细文档见:http://www.runoob.com/ajax/ajax-tutorial.html
1.ajax
1.1ajax 概念
异步JavaScript和XML,AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。
原理:客户端向浏览器XMLHttpRequest发送请求,由XMLHttpRequest向服务端发送请求并接受响应的数据,再由XMLHttpRequest向浏览器解析数据。
1.2 原生 ajax 使用步骤
ajax入门程序步骤:
1.创建一个核心对象 XMLHttpRequest
2.编写一个回调函数
3.编写请求方式和请求的路径(open操作)
4.发送请求(send操作)
1.3ajax-api 详解
1.3.1 常用属性:
onreadystatechange:检测readyState状态改变的时候
readyState:ajax核心对象的状态
0:核心对象创建 1:调用了open方法 2:调用了send方法 3:部分响应已经生成(没有意思) 4:响应已经完成(使用的是这个状态)
status:状态码 详见09 servelet
if(xmlhttp.readyState==4 && xmlhttp.status==200){
}
responseText:响应回来的文本
1.3.2 常用方法:
open("请求方式","请求路径"[,"是否异步"]) 默认异步
send(["参数"]):发送请求 参数是请求方式为post的时候的参数,get方式的参数在地址栏。
setRequestHeader("content-type","form表单enctype属性的值"):设置post请求的参数的类型 必须放在send方法之前.
2.JQuery.ajax
通过 HTTP 请求加载远程数据。对原生 ajax 做了封装,使用 ajax 更加方便。四种方式:
2.1:jquery 对象.load(url,params,function(数据){});
2.2★$.get(url,params,function(数据){},type);
发送get请求的ajax
url:请求的路径
params:请求的参数 参数为key\value的形式 key=value {"":"","":""}
fn:回调函数 参数就是服务器发送回来的数据
type:返回内容格式,xml, html, script, json, text, _default。
若结果为json格式, 打印返回值的时候是一个对象
例如若json为 {"result":"success","msg":"成功"}
获取msg的值 只需要参数(数据).msg
2.3★ $.post(url,params,function(数据){},type);
发送post请求的ajax
3.JSON
3.1json 概念
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。开发中常用于前台与后台数据交换的一种格式。
3.2json 格式:
格式1:value可以为任意值
{"key":value,"key1":value1}
格式2:e可以为任意值
[e1,e2]
3.3json 解析
var json= {"usename":"tom","age":18};
alert(json.age);
3.3jsonlib 工具类,可以使对象转换成 json 数据
1.导入jar包
2.使用api
JSONArray.fromObject(对象) 数组和list
JSONObject.fromObject(对象) bean和map
另附:JsonUtils 核心代码【曾在 ssm 项目中使用】
/**
* 自定义响应结构
*/
public class JsonUtils {
// 定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();
/**
* 将对象转换成json字符串。
* <p>Title: pojoToJson</p>
* <p>Description: </p>
* @param data
* @return
*/
public static String objectToJson(Object data) {
try {
String string = MAPPER.writeValueAsString(data);
return string;
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
/**
* 将json结果集转化为对象
*
* @param jsonData json数据
* @param clazz 对象中的object类型
* @return
*/
public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
try {
T t = MAPPER.readValue(jsonData, beanType);
return t;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 将json数据转换成pojo对象list
* <p>Title: jsonToList</p>
* <p>Description: </p>
* @param jsonData
* @param beanType
* @return
*/
public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
try {
List<T> list = MAPPER.readValue(jsonData, javaType);
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于