Java__Ajax与Json

Ajax简介

Ajax是什么

Asynchronous JavaScript and XML,
    异步的    JavaScript and XML

例如:
用户1:发请求1–>服务器处理1–>响应1
用户2:发请求2–>服务器处理2–>响应2

AJAX响应过程

  • (异步应用在B/S程序中,发请求–>服务器处理–>响应)
  • Ajax应用优点:
    • 提升用户体验度;
    • 使用户操作更连续;
    • 避免页面的整体频繁等待,避免页面的整体频繁刷新;
    • 提升处理效率,提升响应速度;

Ajax原理

  • 以XMLHttpRequest为核心,异步发送请求,接受响应结果
  • 以JavaScript语言为基础,进行界面处理
  • 以Json/XML作为数据传输格式
  • 以HTML、CSS作为界面渲染
    AJAX原理

JSP(JSTL/EL)
HTML(Ajax+JavaScript)

Ajax基本使用方法

XMLHttpRequest对象常用方法和属性

-readyState属性:Ajax请求处理状态,值分为0,1,2,3,4
-onreadystatechange事件:readState 属性切换时调用绑定的function
-responseText:获取服务器返回的text信息(在readyState==4时使用,才有效)
-responseXML属性:获取服务器返回的xml信号
-status属性:HTTP响应状态,例如404,500,200

Ajax示例:用户名检测

发送Ajax请求

  • 时机:焦点离开用户名输入框,onblur
  • 提交数据:用户名
  • URL地址:check.do(name=xxx)

服务器处理

/check.do(name=xxx)
—>CheckServlet—>用户名可用/用户名被占用

Ajax回调处理

获取服务器返回信息
显示到用户名后面

补充知识

POST提交

  • open(“post”,url,true);
  • xhr.setRequestHeader(“content-type”,”application/x-www.

动态生成下拉单选项

发送Ajax请求

  • 时机:页面载入后onload
  • 提交数据:无
  • 请求地址:cities.do

服务器处理

/cities.do–>CityServlet–>响应输出省份信息
“河北:河南:山东”

Ajax回调处理

解析返回的信息:按;切割 split
循环切割的内容,生成option

河北;河南;山东;广州

<cities>
  <city>
    <id>1</id>
    <name>河北</name>
  </city>
  <city>
    <id>2</id>
    <name>河南</name>
  </city>
  <city>
    <id>3</id>
    <name>山东</name>
  </city>
</cities>

JSON应用

JSON简介

JavaScript Object Notation
JavaScript对象格式–》数据格式/JavaScript类型

JavaScript中JSON类型

var obj = {"key1":value1,"key2":value2};
obj.key1;//获取value1
obj.key2;//获取value2

JSON在Ajax中的应用

  • 在Servlet端将Java对象转成JSON字符串
  • 在Js回调函数端将JSON字符串转变成JSON变量
    json在ajax中的使用
var data = xhr.responseText;//json字符串


[{"name":"上海","no":101},
{"name":"北京","no":102},
{"name":"深圳","no":103}]

JQuery对Ajax的支持

JQuery脚本库是对原始js的封装。
$(“tr”);//把所有< tr >元素选出来
[原始tr,原始tr,原始tr]

(btn1).click(fn1); (“btn1”).click(fn2);

addClass(“c1”);//class=”c1”
addClass(“c2”);//class=”c1 c2”

val()–>value
html()—>innerHTML

select对象.append(option对象);//将option添加到select里
$(#"s1").remove();//删除id=s1 元素
$(#"s1").empty();//清空id=s1元素里的内容
hide()--->slideUp(1000);--->fadeOut(1000);
show()---->slideDown(1000);---->fadeIn(1000);

jQuery中Ajax函数: ajax() get() post() getJSON() getScript() load()

divspanjQuery对象.loadurl[提交的参数]);
$.get(请求url,成功回调函数,服务器返回的数据类型);
$.post(请求url[请求参数],成功回调函数,服务器返回的数据类型);

$.ajax{
    url:"请求地址",
    type:"请求类型",
    data: 提交请求参数,
    dataType:"服务器返回的数据类型",
    async:同步/异步,
    success:成功回调函数,
    error:失败回调函数
);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值