Ajax自学笔记

Ajax自学笔记

一、概念

​ Ascynchronous JavaScript And XML 异步的JavaScript和XML,Ajax是一种在无需重新加载整个页面的情况下,能够更新网页内容的技术。

二、实现方式

1. 原生的Js实现方式(了解即可)

发送异步请求:

  • 创建核心对象

    var xmlhttp;
    if(window.XMLHttpRequest)
        {	//如果是IE7+,FireFox,Chrome,Opera,Safari浏览器,则采用这种方式创建对象
            xmlhttp=new XMLHttpRequest();
        }
    else
        {
            //低版本浏览器创建核心对象
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    
  • 建立连接请求

    xmlhttp.open("GET","ajaxServlet?username=tom",true)
    /*
    	参数说明:1.请求方式:GET或POST 
    				GET方式请求参数在URL后拼接,send方法为空参
    				POST方式请求参数在send方法中定义
    			2. 请求的url
    			3. 同步或异步请求:true 异步 false 同步
    */
    
  • 发送请求

    xmlhttp.send("username=tom");
    
  • 响应

    //当服务器响应成功后才能获取响应
    //当xmlhttp对象的就绪状态改变时会触发事件onreadystatechange.
    xmlhttp.onreadystatechange=function(){
        //判断就绪状态是否为4(请求已完成且响应已就绪),判断响应状态码是否为200(响应成功)
        if(xmlhttp.readtState==4 && xmlhttp.status==200){
            //获取服务器的响应结果
            var result=xmlhttp.responseText;
            alert(result);
        }
    }
    

2. JQeury实现方式(必须引入JQuery文件)

  • $.ajax()

    语法:$.ajax({键值对});

    $.ajax({
        url: "ajxServlet",//请求路径
        type: "POST",//请求方式,默认为GET
        //data: "username=jack&age=23",//设置请求的参数
        data:{"username":"jack","age":23},//json格式设置请求参数
        success:function(data){
            alert(data);
        },//设置响应成功后的回调函数
        error:function(){
            alert("ops!")
        },//表示如果请求响应出现错误,会执行的回调函数
        dataType:"text"//设置接收到的响应数据的格式,text为纯文本
    })
    
  • $.get() 发送get请求

    $.get(url,[data],[callback],[type])
    //url:请求路径
    //data:请求参数
    //callback:回调函数
    //type:响应结果的类型
    function fun(){
        $.get("ajaxServlet",{username:"Tom"},function(data){
            alert(data)
        },"text")
    }
    
  • $.post() 发送post请求

    同上

JSON

一、概念

JavaScript Object Notation JavaScript对象表示法

//Java表示
Person p=new Person();
p.serName("张三");
p.setAge(23);
p.setGender("男");
//JSON表示
var p={"name":"张三","age":23,"gender":"男"}; 

json现在多用于存储和交换文本信息的语法,进行数据的传输。

二、语法

1. 基本规则

数据在名称/值中:

  • json数据是由键值对构成的,键用引号(单双都行)引起来,也可以不用引号
    • 值的取值类型
      • 数字
      • 字符串
      • 逻辑值
      • 数组(在方括号中)
      • json对象(在花括号中):{“adress”:{“province”:“四川”…}}
      • null
  • 数据由逗号分隔
  • 花括号保存对象:使用{}定义json格式
  • 方括号保存数据

2. 获取数据

  • json对象.键名
  • json对象[“键名”]
  • 数组对象[索引]
var person={"name":"张三","age":16,"gender":"男"};//定义基本格式
var persons=[
    {"name":"张三","age":16,"gender":"男"},
    {"name":"李四","age":17,"gender":"女"},
    {"name":"王五","age":18,"gender":"女"},
    {"name":"赵六","age":19,"gender":"男"}
]//以数组方式定义多个json对象
//获取person中的数值
for(var key in person){
    alert(key+":"+person[key]);
}
//双重循环获取persons中的数值
for(var i=0;i<persons.length;i++){
    //外循环获取对象
    var p=persons[i];
    //内循环获取对象内的值
    for(var key in p){
        alert(key+":"+p[key]);
    }
}

三、JSON解析器

1.常见的解析器

​ Jsonlib,Gson,fastjson,jackson

2. JSON字符串数据转换为Java对象

(1) 使用步骤

  • 导入jackson的相关jar包

  • 创建jackson核心对象ObjectMapper

  • 调用ObjectMapper的相关方法进行转换

    • readValue(json字符串数据,Class)
    @Test
    public void Test5()throws Exception{
        //1.初始化一个json字符串
        String json="{\"gender":\"男",\"name":\"张三",\"age":16}";
        //2.创建一个ObjectMapper对象
        ObjectMapper mapper=new ObjectMapper();
    	//3.转换为Person对象
    	Person person=mapper.readValue(json,Person.class);//返回一个Person对象
    }
    

3.Java对象转换为JSON(结果为字符串)

(1) 使用步骤

  • 导入jackson的相关jar包

  • 创建jackson核心对象ObjectMapper

  • 调用ObjectMapper的相关方法进行转换

    //人的Model类
    public class Person{
        private String name;
        private int age;
        private String gender;
        public String getName(){
            return this.name;
        }
        public int getAge(){
            return this.age;
        }
        pubic String getGender(){
            return this.gender;
        }
        public void setName(String name){
            this.name=name;
        }
        public void setAge(int age){
            this.age=age;
        }
        public void setGender(String gender){
            this.gender=gender;
        }
    }
    
    //java对象转json测试
    import org.junit.Test
    public class JacksonTest{
        @Test
        public void test1() thows Exception{
            //1.创建Person对象
            Person p=new Person();
            p.setName("张三");
            p.setAge(16);
            p.setGender("男");
            //2.创建Jackson的核心对象 ObjectMapper
            ObjectMapper mapper=new ObjectMapper();
            //3.调用方法转换
            /*
            	方法:
            	WriteValue(参数1,obj对象)
            		参数1:
            		  File:将obj对象转换为json字符串,并保存到指定到的文件中
            		  Writer:将obj对象转换为json字符串,并将json数据填充到字符输出流中
            		  OutputStream:将obj对象转换为json字符串,并将json数据填充到字节输出流中
            	writeValueAsString(obj):将对象转换为json字符串
            */
            String result=mapper.writeValaueAsString(p);
           	//输出的结果:{"name":"张三","age":23,"gender":"男"}
            mapper.writeValue(new File("d://a.txt"),p);//将结果保存在d盘a.txt文件中
        }
    }
    

(2) 注解

  • @JsonIgnore:排除属性

  • @JsonFormat:属性值的格式化

    public class Person{
        private String name;
        private int age;
        private String gender;
        //@JsonIgnore (忽略该属性,不把它转换为json)
        @JsonFormat(pattern="yyyy-MM-dd")//将日期转换为特定格式的日期
        private Date birthday;
        public Date getBirthday(){
            return this.birthday;
        }
        public String getName(){
            return this.name;
        }
        public int getAge(){
            return this.age;
        }
        pubic String getGender(){
            return this.gender;
        }
        public void setName(String name){
            this.name=name;
        }
        public void setAge(int age){
            this.age=age;
        }
        public void setGender(String gender){
            this.gender=gender;
        }
        public void setBirthday(Date birthday){
        	this.birthday=birthday;
        }
    }
    
    @Test
    public void test2(){
        Person p=new Person();
        p.setName("张三");
        p.setAge(23);
        p.setGender("男");
        p.setBirthdat(new Date());
        ObjectMapper mapper=new ObjectMapper();
        String json=mapper.writeValueAsString(p);
    }
    

(3) 复杂java对象转换

  • List对象

    @Test
    public void test3(){
        Person p=new Person();
        p.setName("张三");
        p.setAge(23);
        p.setGender("男");
        Person p1=new Person();
        p1.setName("李四");
        p1.setAge(16);
        p1.setGender("女");
      	Person p2=new Person();
        p2.setName("王五");
        p2.setAge(18);
        p2.setGender("男");
        List<Person> list=new List<Person>();
        list.add(p);
        list.add(p1);
        list.add(p2);
        ObjectMapper mapper=new ObjectMapper();
        //结果与JQuery中对象数组的表示一致
        String jason=mapper.writeValueAsString(list);
    }
    
  • Map对象

    @Test
    public void Test3(){
        Map<String,Object> map=new HashMap<String,Object>();
        map.put("name","张三");
        map.put("age",16);
        map.put("gender","男");
        ObjectMapper mapper=new ObjectMapper();
        //结果与标准json格式一致
        String json=mapper.writeValueAsString(map);
    }
    

String(list);
}

  • Map对象



@Test
public void Test3(){
    Map<String,Object> map=new HashMap<String,Object>();
    map.put("name","张三");
    map.put("age",16);
    map.put("gender","男");
    ObjectMapper mapper=new ObjectMapper();
    //结果与标准json格式一致
    String json=mapper.writeValueAsString(map);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于学习Ajax,我可以为您提供一些学习笔记。以下是一份简要的Ajax学习笔记,希望对您有所帮助: 1. 什么是Ajax? - Ajax全称为Asynchronous JavaScript and XML(异步JavaScript和XML),是一种用于创建交互式Web应用程序的技术。 - 它通过在后台与服务器进行数据交换,实现在不刷新整个页面的情况下更新部分页面内容。 2. Ajax的优点: - 异步处理:可以在后台发送和接收数据,而无需刷新整个页面。 - 提高用户体验:通过部分更新页面内容,可以提供更快的响应时间和更流畅的用户体验。 - 减轻服务器负担:只更新需要的部分内容,减少了不必要的数据传输和服务器负载。 3. Ajax的基本原理: - 使用XMLHttpRequest对象向服务器发送请求,并接收响应。 - 通过JavaScript在前端处理响应数据。 - 更新页面内容,以显示最新的数据。 4. Ajax的核心技术: - XMLHttpRequest对象:用于与服务器进行数据交换。 - JavaScript:用于处理响应数据和更新页面内容。 - XML或JSON:用于传输数据格式。 5. Ajax的使用步骤: - 创建XMLHttpRequest对象。 - 定义请求类型、URL和是否异步。 - 发送请求并接收响应。 - 处理响应数据并更新页面内容。 6. 常见的Ajax框架和库: - jQuery:一个流行的JavaScript库,提供了简化Ajax开发的方法和函数。 - Axios:一个基于Promise的HTTP客户端,用于浏览器和Node.js。 - Fetch API:一种用于发送和接收网络请求的新标准。 这只是Ajax学习的一些基本概念和步骤,您可以进一步深入学习Ajax的相关知识和实践。希望这些笔记对您有所帮助!如有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值