ajax框架day1

1、ajax引言

a)       概念 asynchronousjavascript andxml (异步请求 javascript  and  xml)

b)      传统的请求

发起传统请求的方式地址栏

超级连接

表单

javascript: location.href 函数

传统请求的问题

因为传统请求响应的是新的页面(刷新了页面)。所以用户就必须要等待响应结果,才可以进行后续的操作。

用户体验差。基于异步请求的特点

响应的内容不是新的页面,是一个页面的局部,字符串信息,所以用户在使用异步请求的时候,不需要等待响应的,直接就可以进行后续处理。传统请求与异步请求的区别响应内容

传统响应的内容:新的页面,刷新页面

异步响应的内容:页面的局部,字符串信息

对于用户的操作

传统的请求:等待响应

异步的请求:不需要等待响应,用户可以直接进行后续的操作

建议在合适的场景下,都使用异步请求,提高用户的体验

2、异步请求的开发

a)   异步请求对象的创建

javascript: xmlhttprequest对象 xhr

chrome|ff|safari中

xmlhttprequest

var xhr = new xmlhttprequest();

ie(ie5 ie6)中 activexobject

var xhr = new activexobject(“microsoft.xmlhttp”);

b)

xhr对象的使用

3、用户名检测的案例

不再跳转

控制表单是否提交,提交时检测

4、ajax的开发步骤

a)

创建异步请求

ie系

xhr = new activexobject(“microsoft.xmlhttp”);

非ie系 xhr

= new xmlhttprequest();

b)

发送请求

querystring

xhr.open(“get”,url?name=suns&pwd=123&sex=male);

xhr.send(null);

xhr.open(“post”,url,true(是否使用异步));

xhr.setrequestheader(“content-type”,”application/x-www-form-urlencoded”);

为什么设置:模拟表单

基本web的开发 只能使用表单提交数据,使用表单提交数据时默认指定

enctype=”application/x-www-form-urlencoded”,但是现在使用ajax编程,不再使用

请求头中手工设置application/x-www-form-urlencoded来模拟表单。

xhr.send(“name=suns&pwd=123&sex=male”);,传递数据要加引号,

c)

监听响应

xhr.onreadystatechange = function(){

if(xhr.readystate==4&&xhr.status==200){

xhr.responsetext

dom编程

}

}

d)

服务器端:

不再进行页面的跳转,而是通过返回字符串信息,完成交互

request作用域 不使用

底层就是使用response.getwriter()获取输出流 进行交互

5、json协议串

json协议串,本质上就是一个字符串。

a)

作用:异构的编程体系中,进行数据的传输,交互。

b)

核心:

定义了字符串的格式对象形式

集合形式

内嵌对象

map类型

与 对象的形式一致

json协议解析 多种工具可以自动支持转换

java端:jsonlib  gson(google)

fastjson(ali)  jakeson(springmvc)

gson//对象是大括弧,集合小括弧

注意map是当做对象来写,大括弧

gson的基本应用

gson gson = new gson();

gson.tojson();

gson的特殊应用场景

a)

json字符串的属性名与对象属性名不一致的问题

b)

解决对象回环问题

注解 @expose

没有使用@expose的注解的属性 将会被排除,不会被转换

太不灵活,复杂都用gsonbuilder

使用接口回调,

实现一个排除策略的接口(告示gson 排除的内容)

可以指定多个排除策略,更灵活

c)

特殊的日期类型问题

实现接口

注册到gsonbuilder

json转化成js对象 (浏览器内置,jquery,ext..)

浏览器内置对象 ,后续建议使用jquery

json.parse(jsonstring) -----  js对象

-----  js的数组

6、案例 :应用ajax技术实现 显示所用用户的信息

ajax框架day2

1、springmvc对于ajax的支持

a)

底层整合 原始整合

b)

通过@responsebody

springmvc自动的把对象转换成json串,并通过字符输出流输出。

注意:@responsebody封装的对象转换json的组件为

jackson

环境搭建:引入jackson相关的jar包

开发步骤;

使属性名与json字符串的key不一致

日期类型的格式

@jsonformat(pattern="yyyy-mm-dd")

空值类型不转换

@jsoninclude(include.non_null)

如何忽略某个属性

@jsonignore

中文字符集会自动处理

原来处理方法

基于实战自动日期处理与空值处理

2、struts2与ajax技术集成

3、基于ajax的编程方式思考:

现在的开发体系中,除了使用一个ajax的ui框架(easyui ext dojo)进行编程之外,剩下所用的应用,在开发时,都应该部分环节中使用ajax.

1

局部操作 与 服务器端交互

2 最好结构简单

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

ajax json java_ajax_json相关推荐

  1. laravel ajax返回json,Laravel validate error处理,ajax,json示例

    如下所示: public function updateLevelTestRecords(Request $request) { $rules = [ 'uid' => 'required|in ...

  2. ajax+php+jq+面向对象,php+jquery+ajax+json的一个最简单实例

    html页面: $(function(){ $("#send").click(function(){ var cont = $("input").seriali ...

  3. struts2 ajax html,Struts2+Jquery+Ajax+Json

    现在使用Json来封装并且传递数据的情形是越来越多了,可怎么样在Struts2中来使用Jquery+Ajax+Json来协同工作呢?在网上查了下就那几个例子被转过来转过去的,还有很多例子根本行不通,这 ...

  4. AJAX+json+jquery实现预加载瀑布流布局

    AJAX+json+jquery实现预加载瀑布流布局 转载于:https://www.cnblogs.com/zhujiabin/p/4860954.html

  5. struts2+ajax+json使用实例

    本文主要包含一个struts2+ajax+json的使用实例 步骤如下 1.准备工作 ①ajax使用Jquery:jquery-1.4.2.min.js ②struts2与json的依赖包:strut ...

  6. php ajax json 实例,php+ajax+json 详解及实例代码

    php+ajax+json 实例代码 html页面: $(function(){ $("#send").click(function(){ var cont = $("i ...

  7. ajax json的参数,java ajax json参数

    java ajax json参数 [2021-02-02 08:55:23]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&quo ...

  8. linux json 写sql注入,sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery))

    sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery)) 0x1 网上搜下没有关于ajax的sql注入文章,这里简单写一下抛砖引玉. 原理自己百度,这里简单说下: 通过 ...

  9. 购物车ajax php json,Ajax+json实现购物车结算

    这次给大家带来Ajax+json实现购物车结算,Ajax+json实现购物车结算的注意事项有哪些,下面就是实战案例,一起来看一下. 全选 商品 单价 数量 小计 操作 全选 删除选中产品 总价:¥0 ...

最新文章

  1. PhpStorm升级后调用某些类提示phpstorm Unhandled exceptions
  2. Meta为元宇宙建全球最快AI超算,1.6万个A100 GPU,英伟达都赚麻了
  3. 数据统计分析中的几点
  4. 022_jdbc-mysql封装JDBCUtil和抽取数据库配置参数文件
  5. php短信接口源码,比较简单,但也实用
  6. python 只取数值_Python:你会生成列表吗?-- 列表生成式
  7. 最全的cisco ios下载,思科ios下载
  8. 题解【黑匣子_NOI导刊2010提高(06)】(洛谷P1801)
  9. 微服务之数据同步Porter 1
  10. IDEA 入门:安装使用详解(创建项目/包/类、运行/关闭/导入项目、字体/字号设置、常用快捷键等)
  11. 重庆电子工程学院计算机专业,重庆计算机电子工程职业学院2020年招生录取分数线...
  12. Java常见设计模式总结
  13. 谷歌翻译,一键复活脚本
  14. 主板术语详解一(转东转西)
  15. 磁钉导航差速式AGV控制实验
  16. 全国各地所有高校名单数据库 全国所有高校排名
  17. 计算机软考深圳积分,2020年软考证书能为深圳积分入户加分吗?
  18. python爬携程景区评论_python爬取携程景点评论信息
  19. 将一个32bit的数据,颠倒过来,bit0与bit31交换,bit1与bit30交换,C语言实现与verilog实现。
  20. 解决百度网盘刷新不出来二维码

热门文章

  1. BZOJ4241历史研究题解--回滚莫队
  2. Spring Swagger URL传参问题(转)
  3. Exp3:MAL_免杀原理与实践
  4. 洛谷 P2121 拆地毯
  5. unity3d-ngui UIScrollView 滚动方向与滚轮相反
  6. 15_http响应相关概念
  7. 解决 pathForResource 返回 nil的问题
  8. php随笔11-Thinkphp常用系统配置大全
  9. 使用C#Visual Studio2015编写Android应用程序详细步骤
  10. LeetCode Lowest Common Ancestor of a Binary Search Tree (LCA最近公共祖先)