Java 笔记 十五 Ajax与Json

156 阅读2分钟

Ajax

1. js原生方法实现方式

function request() {
        // 创建实例
        var xmlHttp;
        if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        } else {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        // 建立连接
        xmlHttp.open("get", "servletTest1?username=tom", true);
        // 发送请求
        xmlHttp.send();
        // 接收响应
        xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                alert(xmlHttp.responseText);
            }
        }
}

2. JQuery实现方式

    1. $.ajax()
        语法: $.ajax({键值对})
        $.ajax({
            url: "servletTest1",
            type: "POST",
            data: {username: "tom", age: 20},
            success: function(resp) {
                alert(resp);
            },
            error: function() {
                alert("出错啦!")
            },
            dataType: "json" // 设置接收到的响应数据格式
        });
        
    2. $.get()
        语法: $.get(url, [data], [callback], [type])
        参数:
            url: 请求路径
            data: 请求参数
            callback: 回调方法
            type: 响应结果的类型
            
            $.get(
                "servletTest1",
                {username: "tom", age: 23},
                function(data) {
                    alert(data);
                },
                "text"
            );
            
    3. $.post()
        语法: $.post(url, [data], [callback], [type])
        参数:
            url: 请求路径
            data: 请求参数
            callback: 回调方法
            type: 响应结果的类型

JSON

1. 概念: JavaScript Object Notation JavaScript对象表示法
    json现在多用于存储和交换文本信息的语法
    进行数据的传输
    JSON比xml更小,更快,更易于解析
2. 语法:
    1. 基本规则:
        数据在名称/键值对中: json数据是由键值对构成的
            1. 键用引号引起来,也可以不适用引号
            2. 值类型
                1. 数字(整数或浮点数)
                2. 字符串
                3. 逻辑值
                4. 数组(在方括号中) {"person": [{},{}]}
                5. 对象(在花括号中) {"address": {"province": "山西"...}}
                6. null
            3. 数据有逗号分隔
            4. 花括号保存对象: 使用{}定义json格式
            5. 方括号保存数组: []
3. JSON转换

    JSON解析器: Jsonlib, Gson, fastjson, jackson
    1. JSON转Java对象
    2. Java对象转换JSON
        1. 使用步骤:
            1. 导入jackson的相关jar包
            2. 创建jackson核心对象ObjectMapper
            3. 调用ObjectMapper的相关方法进行转换
                1. 转换方法:
                    writeValue(参数1, obj):
                        参数1:
                        File:将obj对象转换为JSON字符串,并保存到指定文件中
                        Write: 将obj对象转换为JSON字符串,并将json数据田中到字符输出流中
                        OutputStream: 将obj对象转换成JSON字符串,并将json数据填充到字节输出流中
                    writeValueAsString(obj): 将对象转换为json字符串
                2. 注解:
                    1. @JsonIgnore: 排除属性
                    2. @JSONFormat: 属性值的格式化
                    
                3. 复杂java对象转换
                    1. List: 数组
                    2. Map: 对象格式一致
4. 校验用户名是否存在
    1. 服务器响应的数据,在客户端使用时,要想当做json数据格式使用
        1. $.get(type): 将最后一个参数type指定为"json"
        2. 在服务器端设置MIME类型
            response.setContentype("application/json;charset=utf-8")