(JAVA自学笔记二)Ajax异步请求&json

Ajax异步请求

1.基础

请求和连接中,一般分为同步和异步方式,还有是否阻塞之分。

  • 同步:客户端发送请求给服务器,在服务器响应前,客户端都处于卡死状态。即单线程。
  • 异步:客户端发送请求给服务器,无论服务器是否响应,客户端都可以进行其他操作。即多线程。

异步是相对于web页面的主线程而言,用于加载页面的部分数据,异步校验等,提升用户体验,增强功能。

2.原生js的ajax

3.json

  • 是一种与语言无关的数据交换格式,为键值对形式,java可以用,android可以用,php可以用
  • 两种格式:
  1. 对象格式:{"username":"123","password":"456","account":{"money":"500","time":"2019-05-20"}}
  2. 数组/集合格式:[{"username":"123","password":"456"},{"username":"789","password":"000"}]
  • 对象{}和数组[]可以相互嵌套。
  • json的key是string,value是object。
  • json是js的原生内容,使用方便,js可以直接取出json对象中的数据。

4.js中使用json

var json={"baobao":
            [
                {"name":"liu","addr":"beijing"},
                {"name":"li","addr":"liaoning"}
            ],
            "heihei":
            [
                {"name":"zhang","addr":"guangxi"},
                {"name":"pang","addr":"anhui"}
            ]
        };
alert(json.baobao[0].addr);
alert(json.heihei[1].name);

5.json的转换插件

  • 将java的对象或集合转成json形式字符串
  • json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串。

常用的json转换工具有如下几种:

  1. jsonlib
  2. Gson:google
  3. fastjson:阿里巴巴
  4. jackson

6.jquery的ajax

  • 使用前在html中引入jquery
  • 基础知识:
//格式$.get(url,[data],[callback],[type])中括号表示可省略
//   $.post(url,[data],[callback],[type])中括号表示可省略
//待发送数据,可以是键值对,也可以是json格式
//请求成功时执行回调函数内容
//返回内容格式,jquery会根据设置自动转换
//$.ajax( { option1:value1,option2:value2... } ); ----get和post方法的底层都是这个
常用的option有如下:
async:是否异步,默认是true代表异步
data:发送到服务器的参数,建议使用json格式
dataType:服务器端返回的数据类型,常用text和json
success:成功响应执行的函数,对应的类型是function类型
type:请求方式,POST/GET
url:请求服务器端地址
  • 使用方式:
  • 	function fn1(){
    		//get异步访问
    		$.get(
    			"/WEB22/ajaxServlet2", //url地址
    			{"name":"张三","age":25}, //请求参数
    			function(data){ //执行成功后的回调函数
    				//{\"name\":\"tom\",\"age\":21}
    				alert(data.name);
    			},
    			"json"
    		);
    	}
    	function fn2(){
    		//post异步访问
    		$.post(
    			"/WEB22/ajaxServlet2", //url地址
    			{"name":"李四","age":25}, //请求参数
    			function(data){ //执行成功后的回调函数
    				alert(data.name);
    			},
    			"json"
    		);
    	}
    	function fn3(){
    		$.ajax({
    			url:"/WEB22/ajaxServlet2",
    			async:true,
    			type:"POST",
    			data:{"name":"lucy","age":18},
    			success:function(data){
    				alert(data.name);
    			},
    			error:function(){
    				alert("请求失败");
    			},
    			dataType:"json"
    		});
    	}

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值