键名
|
意义
|
url
|
请求资源的url
|
data
|
请求参数
通常写法: data{"k1":"v1","k2":"v2"} |
type
|
请求方式:get、post
|
success
|
成功获得响应后执行的回调函数
|
error
|
响应失败时调用的回调函数
|
dataType
|
响应消息的数据类型
默认情况下,浏览器会根据响应的mime类型来解析 |
$.ajax({
//首先传入一些可选参数
url:"ajaxServlet",//请求的url
type:"POST",//请求方式
//传递数据,方式1:
//data:"name=lhp&age=22",
//传递数据的方式2,json方式:
data:{
"name":"lhp",
"age":"22"
},
//成功获得服务器响应后的回调函数,参数代表了服务器响应的数据
success:function (data) {
alert(data);
},
// 接收服务器响应出错时的回调函数
error:function () {
alert("出错啦!");
},
//指定接收的响应数据类型
//默认情况下,浏览器会根据响应的mime类型来解析
dataType:"text"
});
$.get(url,[data],[callback],[dateType])
参数名
|
意义
|
url
|
请求资源的url
|
data
|
传递的请求参数,使用json对象的方式来存储数据
|
callback
|
成功获得服务器响应后执行的回调函数
|
dataType
|
响应数据的类型
|
$.get("ajaxServlet",{name:"lhp",age:"22"},function(data) {
alert(data);
},"text");
$.post(url,[data],[callback],[dateType])
同上,区别在于$.get()使用get方式,$.post()使用post方式发送ajax请求
JSON
概念
JavaScript Object Notation
JavaScript对象表示法
多用于存储和交换文本信息
JSON比XML更小、更快、更容易解析
数据类型与定义方式
定义方式:
用大括号表示这是一个json对象,大括号内用键值对形式定义对象属性
用中括号表示一个数组
var person = {
//json的数据类型
"name":"lhp",//字符串类型
"age":22,//数字类型,可以是整型和浮点型
"gender":true,//布尔类型
"hobby":["lol","animation","comic"],//数组类型
"aaa":null,//null类型
"city":{"name":"chengdu","province":"sichuan","country":"china"}//json对象类型
//数组和对象可以嵌套
}
JSON对象的遍历:获取JSON对象的所有键对应的所有值
for in 循环
for (var key in Obj){
Obj[key]
}
Obj代表要遍历的JSON对象,key代表遍历中的属性名,使用Obj[key]来得到属性值
代码
JSON数据和Java对象的相互转换
JSON解析器
常见的解析器:Jsonlib,Gson,fastjson,jackson
JSON转为Java对象
使用步骤
- 导入jar包
- 创建ObjectMapper对象
- 调用转换的方法
方法名 | 说明 |
T readValue(String jsonStr, Class<T> calss) | jsonStr:待转换的json字符串 clss:目标Java对象的class对象 |
Java对象转为JSON
使用步骤
- 导入jar包
- 创建ObjectMapper对象
- 调用转换的方法
转换方法
方法名 | 说明 |
writeValue(参数1,Object o) |
参数1
1.传入File对象:将转换的json对象写入文件中
2.传入Writer:将转换的json对象写入字符输出流中
3.传入OutputStream;将转换的json对象写入字节输出流中
Object:待转换的Java对象
|
String writeValueAsString(Object o) |
传入待转换的Java对象,返回该对象的JSON数据字符串
|
jackson注解
一下两个注解是注解在Java对象的属性上的
@JsonIgnore:转换成json对象时,忽略此属性
@JsonFormat(pattern ="yyyy年MM月dd日"):该属性(通常为date类型)在转换为json键值对时,会被格式化。相当于使用了SimpleDateFormat
代码
JavaBean
public class Person {
private String name;
private int age;
private boolean gender;
// @JsonIgnore//转换成json对象时,忽略此属性
@JsonFormat(pattern = "yyyy年MM月dd日") //JsonFormat注解的pattern属性,相当于使用simpleDateFormat来格式化日期
private Date birthDay;
…省略构造方法和getter/setter
测试类
案例:检查用户名是否存在
需求:
用户名在输入框中输入了用户名后,当输入框失去焦点,就检查该用户名是否存在,并给出提示信息
步骤:
1.给输入框绑定失去焦点事件,失去焦点时发送ajax请求,请求参数为输入的用户名
2.在服务器端获取username,检查是否存在
3.返回结果
代码
前端代码
服务器端代码
林小乌:
更多免费技术资料可关注:annalin1203