AJAX

实现方式

  1. 原生的JS实现方式

      //1.创建核心对象
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    } //2. 建立连接
    /*
    参数:
    1. 请求方式:GET、POST
    * get方式,请求参数在URL后边拼接。send方法为空参
    * post方式,请求参数在send方法中定义
    2. 请求的URL:
    3. 同步或异步请求:true(异步)或 false(同步) */
    xmlhttp.open("GET","ajaxServlet?username=tom",true); //3.发送请求
    xmlhttp.send(); //4.接受并处理来自服务器的响应结果
    //获取方式 :xmlhttp.responseText
    //什么时候获取?当服务器响应成功后再获取 //当xmlhttp对象的就绪状态改变时,触发事件onreadystatechange。
    xmlhttp.onreadystatechange=function()
    {
    //判断readyState就绪状态是否为4,判断status响应状态码是否为200
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    //获取服务器的响应结果
    var responseText = xmlhttp.responseText;
    alert(responseText);
    }
    }
  2. JQeury实现方式

    1. $.ajax()

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

       //使用$.ajax()发送异步请求
      $.ajax({
      url:"ajaxServlet1111" , // 请求路径
      type:"POST" , //请求方式
      //data: "username=jack&age=23",//请求参数
      data:{"username":"jack","age":23},
      success:function (data) {
      alert(data);
      },//响应成功后的回调函数
      error:function () {
      alert("出错啦...")
      },//表示如果请求响应出现错误,会执行的回调函数 dataType:"text"//设置接受到的响应数据的格式
      });
    2. $.get():发送get请求

      • 语法:$.get(url, [data], [callback], [type])

      • 参数:

        • url:请求路径
        • data:请求参数
        • callback:回调函数
        • type:响应结果的类型
    3. $.post():发送post请求

      • 语法:$.post(url, [data], [callback], [type])

      • 参数:

        • url:请求路径
        • data:请求参数
        • callback:回调函数
        • type:响应结果的类型

JSON

语法

  1. 基本规则

    • 键用引号(单双都行)引起来,也可以不使用引号
    • 值的取值类型:
      1. 数字(整数或浮点数)
      2. 字符串(在双引号中)
      3. 逻辑值(true 或 false)
      4. 数组(在方括号中) {"persons":[{},{}]}
      5. 对象(在花括号中) {"address":{"province":"陕西"....}}
      6. null
      • 数据由逗号分隔:多个键值对由逗号分隔
      • 花括号保存对象:使用{}定义json 格式
      • 方括号保存数组:[]
  2. 获取数据:
    1. json对象.键名

    2. json对象["键名"]

    3. 数组对象[索引]

    4. 遍历

       //1.定义基本格式
      var person = {"name": "张三", age: 23, 'gender': true}; var ps = [{"name": "张三", "age": 23, "gender": true},
      {"name": "李四", "age": 24, "gender": true},
      {"name": "王五", "age": 25, "gender": false}]; //获取person对象中所有的键和值
      //for in 循环
      /* for(var key in person){
      //这样的方式获取不行。因为相当于 person."name"
      //alert(key + ":" + person.key);
      alert(key+":"+person[key]);
      }*/ //获取ps中的所有值
      for (var i = 0; i < ps.length; i++) {
      var p = ps[i];
      for(var key in p){
      alert(key+":"+p[key]);
      }
      }

JSON数据和Java对象的相互转换

  • JSON解析器:

    • 常见的解析器:Jsonlib,Gson,fastjson,jackson(Spring MVC)

      以下使用jackson

  • JSON转为Java对象

    1. 导入jackson的相关jar包
    2. 创建Jackson核心对象 ObjectMapper
    3. 调用ObjectMapper的相关方法进行转换 readValue(json字符串数据,Class)
  • Java对象转换JSON

    1. 导入jackson的相关jar包
    2. 创建Jackson核心对象 ObjectMapper
    3. 调用ObjectMapper的相关方法进行转换
      1. 转换方法:

        • writeValue(参数1,obj)

          参数1:

          • File:将obj对象转换为JSON字符串,并保存到指定的文件中
          • Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
          • OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
        • writeValueAsString(obj):将对象转为JSON字符串

      2. 注解:

        1. @JsonIgnore:排除属性。

        2. @JsonFormat:属性值得格式化

          @JsonFormat(pattern = "yyyy-MM-dd")

      3. 复杂java对象转换

        1. List:数组
        2. Map:对象格式一致
  • 细节

    服务器响应的数据,在客户端使用时,要想当做 JSON 数据格式使用。有两种解决方案:

    1. $.get(type):将最后一个参数 type 指定为"json"
    2. 在服务器端设置MIME类型 response.setContentType("application/json;charset=utf-8")

JavaWeb笔记(九)Ajax&Json的更多相关文章

  1. 超全面的JavaWeb笔记day23<AJAX>

    AJAX AJAX概述 1 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言 ...

  2. jQuery学习笔记之Ajax用法详解

    这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...

  3. 【笔记】AJAX基础

    [笔记]AJAX基础 Django AJAX  知识储备:JSON 什么是 JSON JSON 是轻量级的文本数据交换格式 JSON 独立于语言和平台.JSON 解析器和 JSON 库支持许多不同的编 ...

  4. 学习笔记:AJAX 跨域问题

    学习笔记:AJAX 跨域问题 AJAX 跨域是浏览器的问题. 只要 xhr 请求,不同的域名就会出现 AJAX 跨域问题. JSONP 是一要简单方式,但是有很多弊端,需要修改服务端代码. JSONP ...

  5. jQuery:自学笔记(5)——Ajax

    jQuery:自学笔记(5)——Ajax 使用Ajax快捷函数 说明 出于简化AJAX开发工作的流程,jQuery提供了若干了快捷函数. 实例 1.显示 test.php 返回值(HTML 或 XML ...

  6. bootstrap-data-target触发模态弹出窗元素的data使用 data-toggle与data-target的作用 深入ASP.NET MVC之九:Ajax支持 Asp.Net MVC4系列--进阶篇之AJAX

    bootstrap-data-target触发模态弹出窗元素的data使用 时间:2017-05-27 14:22:34      阅读:4479      评论:0      收藏:0      [ ...

  7. struts2 + ajax + json的结合使用,实例讲解

    struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4 ...

  8. AJAX,JSON搜索智能提示

    效果 开发结构参考AJAX,JSON用户校验 主要有两个核心文件 1,处理输入字符,进行后台搜索的servlet Suggest.java package org.guangsoft.servlet; ...

  9. php ajax json jquery 记录

    php+jquery+ajax+json简单小例子 <html> <title>php+jquery+ajax+json简单小例子</title> <?php ...

  10. 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9374935 作者:七十一雾央 新浪微博:http:// ...

随机推荐

  1. sql server 基础

    1 .左连接 select a.* ,b.* from student as aleft join hobby as bon a.hobbyid=b.hobbyid 2. 右 连接 select a. ...

  2. Ubuntu下几种常用的文本编辑器

    常见的基于控制台的文本编辑器有以下几种: emacs           综合性的GNU emacs 编辑环境 nano              一个类似于经典的pico的文本编辑器,内置了一个pi ...

  3. MySQL 存储过程参数IN OUT INOUT区别

    MySQL 存储过程参数IN OUT INOUT对比 一.IN -- 创建测试存储过程 delimiter // create procedure p_in ( IN num int ) begin ...

  4. javascript原生API总结

    一.查找: getElementById() 方法返回带有指定 ID 的元素(唯一): getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组). ...

  5. AngularJS 指循环数组对象

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  6. hdu_5288_OO’s Sequence

    OO has got a array A of size n ,defined a function f(l,r) represent the number of i (l<=i<=r) ...

  7. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [spring/applicationContext-service.xml]: Cannot resolve refer

    <!-- aop --> <aop:config> <aop:pointcut expression="execution(* com.zsn.Service. ...

  8. JQuery制作网页—— 第四章JavaScript对象及初识面向对象

    1.对象:在JavaScript中,所有事物都是对象,如字符串.数值.数组.函数等. JavaScript中的基本数据类型: number(数值类型)   string(字符串类型)  boolean ...

  9. 日期格式兼容iOS

    iOS不支持2016-02-11 12:21:12格式的日期 目前Safari可以支持的标准格式: MM-dd-yyyy yyyy/MM/dd MM/dd/yyyy MMMM dd, yyyy MMM ...

  10. python--Wrapper

    然后给大家介绍的是Wrapper(装饰器),使用广泛.python笔试,面试的话也会百分百问到的,基础和中级的知识储备还是必用的. 让我们开始. 先来一些基础相关知识 *args,**kwargs的区 ...