今日内容

1. AJAX:
2. JSON

AJAX:

1. 概念: ASynchronous JavaScript And XML    异步的JavaScript 和 XML1. 异步和同步:客户端和服务器端相互通信的基础上* 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。* 客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 [1] 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。提升用户的体验2. 实现方式:1. 原生的JS实现方式(了解)//1.创建核心对象var xmlhttp;if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=new XMLHttpRequest();}else{// code for IE6, IE5xmlhttp=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响应状态码是否为200if (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. 概念: JavaScript Object Notation     JavaScript对象表示法Person p = new Person();p.setName("张三");p.setAge(23);p.setGender("男");var p = {"name":"张三","age":23,"gender":"男"};* json现在多用于存储和交换文本信息的语法* 进行数据的传输* JSON 比 XML 更小、更快,更易解析。2. 语法:1. 基本规则* 数据在名称/值对中:json数据是由键值对构成的* 键用引号(单双都行)引起来,也可以不使用引号* 值得取值类型: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]);}}3. JSON数据和Java对象的相互转换* JSON解析器:* 常见的解析器:Jsonlib,Gson,fastjson,jackson1. JSON转为Java对象1. 导入jackson的相关jar包2. 创建Jackson核心对象 ObjectMapper3. 调用ObjectMapper的相关方法进行转换1. readValue(json字符串数据,Class)2. Java对象转换JSON1. 使用步骤:1. 导入jackson的相关jar包2. 创建Jackson核心对象 ObjectMapper3. 调用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:对象格式一致

案例:

* 校验用户名是否存在1. 服务器响应的数据,在客户端使用时,要想当做json数据格式使用。有两种解决方案:1. $.get(type):将最后一个参数type指定为"json"2. 在服务器端设置MIME类型response.setContentType("application/json;charset=utf-8");

AjaxJson笔记(1)相关推荐

  1. 【Java Web开发指南】AjaxJson笔记

    文章目录 AJAX: JSON: 案例: AJAX: 1. 概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML1. 异步和同步:客户端和服务 ...

  2. Ajax简单易理解笔记

    Ajax笔记 一.get和post请求 1.post-file 二.什么是Ajax 三.封装Ajax 四.用户注册ajax接口测试 五.ajax-post 六.ajax-jquery 练习:一键换内容 ...

  3. select下拉框 笔记

    以前记得select很溜的,好久没写前端都忘完了,把以前的代码又看了下,得做笔记啊 一 2018-09-08 09:11:40 select里面应当填充List<Map<String, S ...

  4. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

  5. 【运维学习笔记】生命不息,搞事开始。。。

    001生命不息,搞事不止!!! 这段时间和hexesdesu搞了很多事情! 之前是机械硬盘和固态硬盘的测速,我就在那默默的看着他一个硬盘一个机械测来测去. 坐在他后面,每天都能看到这位萌萌的小男孩,各 ...

  6. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

  7. pandas以前笔记

    # -*- coding: utf-8 -*- """ Created on Sat Jul 21 20:06:20 2018@author: heimi "& ...

  8. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  9. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

最新文章

  1. 服不服?40行Python代码,实现卷积特征可视化
  2. 并发、并行、串行、同步、异步、阻塞、非阻塞
  3. 如何选择最佳技术来加速文件传输!
  4. linux下安装mysql-5.6.41
  5. 自动打包linux,Linux环境下Springboot自动打包发布功能
  6. 成都信息工程大学计算机分数线,2017年成都信息工程大学录取分数线
  7. STM32Cubemx出现工程突然自动退出的问题
  8. ES6与ES2015、ES2016以及ECMAScript的区别
  9. ESP32学习笔记(46)——MQTT客户端
  10. 使用pyspider框架抓取猫途鹰旅游信息
  11. 如何一键关闭win安全中心(Windows Defender )
  12. 、用ecshop整合淘宝客api改造用于淘宝客程序
  13. 《我喜欢生命本来的样子》读后感作文2100字
  14. 直播回放:快速上手,使用 Kotlin 把支付宝小程序装进自己的 App
  15. 如何自动注册推特推广号,推特注册的具体步骤
  16. 厦门超微服务器维护,超微GPU服务器品牌
  17. Stack Ball 堆栈球小游戏unity3d开发教程
  18. 对ROS局部运动规划器Teb的理解
  19. mysql 1265错误_mysql – 错误1265.尝试从txt文件加载数据时,列的数据被截断
  20. flex通过blazeds与java实现增删改查-整个实现流程

热门文章

  1. 网络协议之:socket协议详解之Socket和Stream Socket
  2. zookeeper简介以及C客户端用法
  3. 满分简便解法:1002 写出这个数 (20分)
  4. 软件工程中的所有内聚类型【吐血整理,附带排名!】
  5. 【已解决】请先调用 init 完成初始化后再调用其他云 API。init 方法可传入一个对象用于设置默认配置,详见文档。; at cloud.callFunction api 解决方案
  6. Spring中BeanPostProcessor 执行过程
  7. Web前端开发笔记——第四章 JavaScript程序设计 第三节 数据类型
  8. java replaceall删除中括号和内容_「技术文章」《阿里巴巴 Java 开发手册》精华摘要...
  9. Redis数据库(一)——介绍、配置与优化
  10. Linux系统安全及应用(账号控制、su、sudo、开关机安全控制、终端登录安全控制等)