1.AJAX

[1] AJAX简介

> 全称: Asynchronous JavaScript And XML

> 异步的JavaScript和XML

> Ajax作用:是用JavaScript向服务器发送异步请求,然后服务器给出响应,然后我们在通过DOM来修改页面,然后以XML格式的文件返回给浏览器端。

> XML指的是服务器响应的数据的格式。

> 目前AJAX已经很少使用XML作为响应的格式。因为XML的解析性能及传输性能较差。

[2] 同步和异步

>  同步:

当我们通过浏览器向服务器发送一个请求时,浏览器会刷新整个页面。

> 异步:

当我们向服务器发送请求时,不是刷新整个网页,而是只刷新网页的一部分。

[3] XMLHttpRequest对象

> 我们AJAX的所有操作都是围绕着XMLHttpRequest对象进行。

> 在XMLHttpRequest对象中封装发送给服务器请求报文,同时在服务器发回响应时,响应信息也会在对象中封装。

> 如何获取XMLHttpRequest对象

- var xhr = new XMLHttpRequest();

[4] 使用步骤

1.创建XMLHttpRequest对象

大部分比较新的浏览器都支持的方式(IE7以上)

var xhr = new XMLHttpRequest();

IE6以下的

var xhr = new ActiveXObject("Msxml2.XMLHTTP");

IE5.5以下的

var xhr = new ActiveXObject("Microsoft.XMLHTTP");

通用的获取XMLHttpRequest对象的方法:

//写一个获取XHR的方法function getXMLHttpRequest(){try{//大部分浏览器都支持的方式return new XMLHttpRequest();}catch(e){try{//IE6以下浏览器支持的方式return new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{//IE5以下的浏览器return new ActiveXObject("Microsoft.XMLHTTP");}catch(e){alert("你是火星来的吧!你的浏览器不支持AJAX!");}}}}

2.设置请求信息(请求地址,请求方式,请求参数)

xhr.open(请求方式,请求地址);

在发送post请求时,还需要设置一个请求头,如下:

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

3.发送请求

xhr.send(请求体);

get请求没有请求体,所以send中可以传null或什么都不传。

post请求需要通过send来设置请求参数。

4.接收响应信息

//xhr绑定一个onreadystatechange响应函数,这个函数会在readyState属性发生改变时调用xhr.onreadystatechange = function(){//判断当前readyState是否为4 , 且响应状态码为200if(xhr.readyState==4 && xhr.status==200){//读取响应信息,做相关操作。//如果信息为纯文本xhr.responseText//如果信息为XMLxhr.responseXML}};

  

[5] 响应数据的格式

- 响应一个XML

- 当我们想通过servlet给ajax返回一个比较大量的信息,返回一个对象。

- 返回 User :username:sunwukong  age:18 gender:男

username:sunwukgon,age:18,gender:男

- 我们可以通过一个XML格式来返回一个大量的信息

<user>

<name></name>

<age></age>

<gender></gender>

</user>

- 响应一个JSON对象

[6] 案例

(1)案例Get请求:

<script type="text/javascript">window.onload = function(){var btn = document.getElementById("btn01");btn.οnclick=function(){//1.创建XMLHttpRequest对象,我们使用这个对象完成Ajax请求!var xhr = new XMLHttpRequest();//2.通过open方法设置请求参数var method= "get";var url = "${pageContext.request.contextPath}/AServlet";xhr.open(method, url);//3.发送请求!xhr.send();//4.接收响应信息xhr.onreadystatechange= function(){if(xhr.readyState == 4 && xhr.status == 200 ){var data = xhr.responseText;alert(data);}}}}</script>

  

(2)案例POST请求:

<script type="text/javascript">window.onload = function(){var btn = document.getElementById("btn01");btn.οnclick=function(){//1.创建XMLHttpRequest对象,我们使用这个对象完成Ajax请求!var xhr = new XMLHttpRequest();//2.通过open方法设置请求参数var method= "post";var url = "${pageContext.request.contextPath}/AServlet";xhr.open(method, url);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");//3.发送请求!xhr.send("username=zhangsan&password=lisi");//4.接收响应信息xhr.onreadystatechange= function(){if(xhr.readyState == 4 && xhr.status == 200 ){var data = xhr.responseText;alert(data);}}}}</script>

  

2.JSON

[1] JSON简介

> JSON全称 JavaScript Object Notation(JavaScript对象表示法)

> 类似于JS中对象的创建的方法

> JSON和XML一样,都是一种表示数据的格式

> 但是JSON比XML的存储和解析性能要高的多,JSON要比XML高个30%左右,JSON 比 XML 更小、更快,更易解析。

<user>

<name>sunwukong</name>

<age>18</age>

<gender>男</gender>

</user>

{"name":"孙悟空","age":8,"gender":男}

[2] JSON的格式

> JSON字符串不方便阅读,但是传输性能好

> XML方便阅读,但是传输性能差

> JSON的格式和JS对象类型,但是要求属性名必须使用双引号。不能使用单引号,也不能不写引号!

> JSON对象中实际就是一组一组的键值对的结构,

键和值使用:连接,多个键值对之间使用,分开,注意如果是最后一组键值对,则千万不要再加.

> {

"属性名1":属性值1,

"属性名2":属性值2,

"属性名3":属性值3,

"属性名4":属性值4

}

> JSON运行属性值的类型:

1.字符串

2.数字

3.布尔

4.对象

5.数组

6.null

> 数组:

[属性1,属性2,属性3,属性4]

[3] JS中使用JSON

JSON对象 --> JSON字符串

JSON.stringify(对象)

JSON字符串 --> JSON对象

JSON.parse(JSON字符串)

[4] Java中使用JSON

> 目前Java中用的比较多的JSON解析工具:

json-lib -->  使用麻烦,解析性能最差

Jackson --> 使用较麻烦,解析性能最好

Gson --> 使用简单,解析性能中能

- Gson是谷歌出的一款JSON解析工具,使用简单,且性能较好。

Java对象 --> JSON字符串

JSON字符串 --> Java对象

3.通过jQuery实现AJAX

> 使用get和getJSON都会有缓存问题,并且使用get方法不能传送较多的数据。

> post方法不会有缓存的问题,所以我们开发时使用post方法较多。

[1] post()方法

$.post(url, [data], [callback], [type])

参数:

url:发送AJAX的请求地址,字符串。

data:发送给服务器的请求参数,JSON格式。

callback:当前需要获取服务器发送的响应时,我们可以通过该回调函数。

jQuery会将响应信息以回调函数的参数的形式返回

type:响应信息的类型,字符串。一般两个常用值text、json

[2] get()方法

- get方法和post方法使用方式基本一致。

[3] getJSON()方法

getJSON(url, [data], [callback])

getJSON方法和get方法类似,只不过该方法默认的响应类型为JSON,不需要再手动指定。

4.GSON工具类的使用:

//1将普通对象转换为JSON字符串!Student  stu = new Student("张三",12);Gson gson = new Gson();String json = gson.toJson(stu);System.out.println(json);Student fromJson = gson.fromJson(json, Student.class);System.out.println(fromJson);

//2.把Map转换成JSON字符串Map<String,String> map = new HashMap();map.put("hobby","篮球");map.put("gender", "男");String json2 = gson.toJson(map);System.out.println(json2);Map<String,String> fromJson = gson.fromJson(json2, Map.class);System.out.println(fromJson);

//3.将List转换为JSON字符串List<Student> list = new ArrayList<Student>();list.add(new Student("刘德华", 53));list.add(new Student("冯小刚",63));String json3 = gson.toJson(list);System.out.println(json3);List<Map<String,Object>> fromJson = gson.fromJson(json3, List.class);for(Map map:fromJson){System.out.println(map.get("name"));}

  

转载于:https://www.cnblogs.com/Mr-zhaoz/p/7425564.html

javaWEB知识总结——Ajax和Json相关推荐

  1. 【JavaWeb】21 AJAX/XStream/JSON

    目录 ajax 发送异步请求的四步 案例 hello ajax 发送POST请求 用户名是否已被注册 响应内容为xml数据 省市联动 XStream JSON json-lib的应用 ajax asy ...

  2. JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx

    JavaWeb笔记:第07章 MVC |EL |JST |Filter |Listener |JQuery |AJAX |Maven |JSON |Redis |Linux |Nginx 1. MVC ...

  3. 2019尚硅谷大数据Javaweb篇三 Ajax、JSTL、会话技术、过滤器、监听器、xml、json

    2019尚硅谷大数据 Javaweb篇三Ajax.JSTL.会话技术.过滤器.监听器 tags: 大数据 2019尚学堂 categories: Ajax异步请求 JSTL中的if和forEach 会 ...

  4. highcharts ajax 数据格式,Highcharts ajax获取json对象动态生成报表生成 .

    最近做个项目,项目经理想做一个统计报表,在网上查看些资料就选用Highchars 这里和大家分享下使用心得. 重点说明此代码是针对一个报表显示多个项对比显示. 直接贴代码:web端 $(documen ...

  5. jq处理返回来json_(转)JQuery处理json与ajax返回JSON实例

    son数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法. 一.JSON的一些基础知识. JSON中对象通过 ...

  6. 返回ajax有几种方式,java ajax返回 Json 的 几种方式

    方式 1. : 自写代码转 Json 需要  HttpHttpServletRequest request  HttpServletResponse response 后台 : @RequestMap ...

  7. ajax怎样获取json数据,如何使用ajax读取Json中的数据

    本文给大家分享一下,如何使用ajax读取Json中的数据. 一.基础知识 什么是json? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) ...

  8. ajax返回值中文变成问号,用ajax传递json到前台中文出现问号乱码问题的解决办法...

    用ajax传递json到前台中文出现问号乱码问题的解决办法 我使用的Springmvc,在controller层传输一个json到前台,后台显示没问题,中文正常显示而到了前台 中文就变成了问号. 后来 ...

  9. 07【Listener、Ajax、Json】

    文章目录 07[Listener.Ajax.Json] 一.监听器 1.1 监听器的类别 1.1.1 监听域对象 1.1.2 监听属性 1.3.3 监听session对象状态 1.2 监听案例 1.2 ...

最新文章

  1. MySql各种锁机制的学习
  2. 不讲武德的微信,又来一波新功能!
  3. 网站SEO优化没有捷径!
  4. 安装nginx及依赖包
  5. how to make academic sentences
  6. 关于MGS4和XSI
  7. boost::safe_numerics::safe_signed_range相关的测试程序
  8. matlab经纬度画二维图,Matlab绘制汉经纬度的散点图 2
  9. 前 k 条最短路径算法
  10. OpenCV阈值分割
  11. 停车位配建标准:北上广深
  12. 运维安全操作建议规范手册
  13. DIRECTSHOW中的视频捕捉
  14. mysql 视图 algorithm_MySQL的视图讲解
  15. 面试算法:利用堆栈计算逆向波兰表达式
  16. web大前端-------初识html
  17. alot英文怎么读_alot...of是什么意思
  18. vs2008 html5 的安装,vs2008安装教程,详细教您vs2008安装教程
  19. transform.forward和vector3.forward的使用区别
  20. 判断各类无盘软件是否处于超管状态

热门文章

  1. mysql merge查询速度_MySQL 查询优化之 Index Merge
  2. python训练模型函数参数_keras读取训练好的模型参数并把参数赋值给其它模型详解...
  3. java jackson_Jackson 框架的高阶应用
  4. php计算日期函数,php日期处理函数(计算时间差,转换时间戳日期)
  5. mysql优化方法_mysql优化方案总结
  6. mysql innodb缓冲池_InnoDB 缓冲池
  7. Word2Vec入门
  8. elasticsearch及Kibana入门安装
  9. from xx is not a valid DFS filename
  10. byte,int,char的区别