详细文档见: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; } }
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于