2019独角兽企业重金招聘Python工程师标准>>>

AJAX

what: 一种改善客户端体验的技术。本质上就是在客户端使用js代码,通过浏览器中一个特殊的对象(XMLHttpRequest)异步(浏览器不会销毁当前的页面,客户可以在页面继续其他的操作而不被打断)的向服务器端发送请求,服务器端返回的是部分数据(可以是文本,xml,json),客户端接收到数据后,使用js将数据更新到页面中。整个过程没有页面的整体刷新,只是使用js进行局部刷新,用户操作不会被打断。

AJAX编程的主要步骤:

  1. 创建XMLHttpRequest对象

  2. 编写回调事件处理函数

  3. 创建请求

  4. 发送请求(最后一步才会触发回调函数)

创建XMLHttpRequest对象

a.     所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。

var variable;
variable=new XMLHttpRequest();

b. 老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:

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

c. 获取XMLHttpRequest对象的脚本:

function getXhr(){var variable;if(window.XMLHttpRequest){variable=new XMLHttpRequest();}else{variable=new ActiveXObject("Microsoft.XMLHTTP");}return variable;
}

编写回调事件处理函数

得到XMLHttpRequest对象之后,就可以编写回调事件处理函数了。

var xhr=getXhr();
xhr.onreadystatechange=function(){//这儿编写用户自定义处理函数,  xhr的状态值有5种, 0,1,2,3,4//这儿我们最关心的状态值是4 ,onreadystatechange函数中会触发2,3,4三种状态值alert(xhr.readyState);//那么我们可以看到3中状态值,2,3,4
}

创建请求

get请求

xhr.open('get','ajax.do',true)// 第一个参数为请求方式,get/post....  第二个参数为请求的url(参数可以直接附加在url后面)  第三个参数为是否是异步的请求true为是,false为否

get请求中文问题:

编码设置

js代码:

var uri=encodeURL('check?name=张三');
xhr.open('get',uri,true);
xhr.send();
后台代码:
String name=request.getParameter("name");
name=new String(name.getBytes("ISO8859-1"),"UTF-8");
修改tomcat的配置
在tomcat的conf目录下,找到server.xml中找到Connector 节点,添加属性  URLEncoding="utf-8"

post请求

xhr.open('post','ajax.do',true); // 普通的post请求可以直接这样使用
//如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后再send() 方法中规定您希望发送的数据:
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

post请求中文问题:

a. 在页面使用mate元素设置字符编码
b. 服务器端,使用request.setCharactorEncoding("UTF-8");

创建请求

get请求:

xhr.open('get','check_name.do?name=zs',true);

post请求:

xhr.open('post','checkname.do?name=zs',true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

发送请求:

xhr.send(null); // or
xhr.send("name=zs&age=24&id=1");

转载于:https://my.oschina.net/KingPan/blog/294480

javaweb 之Ajax相关推荐

  1. JavaWeb 使用ajax上传文件并显示进度条等上传信息

    文件上传在Web程序中是常用的功能,一般上传图片或者文件大小比较少的文件客户端不需要显示上传进度或文件上传的信息,如果是上传的文件比较大的时候,可以在客户端展示文件上传进度以及根据业务的需求显示文件上 ...

  2. JavaWeb:AJAX

    1. AJAX概述 1.1 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是"异步Javascript和XML".即使用Ja ...

  3. IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题

    2019独角兽企业重金招聘Python工程师标准>>> Ajax是"Asynchronous JavaScript And XML"的缩写(即:异步的JavaSc ...

  4. JavaWEB(AJAX实现分页)

    4.2 使用AJAX实现分页 4.2.1 需求 需要将分页数据通过ajax的方式进行分页,实现只变更部分数据的功能. 4.2.2 实现原理 1.设置Servlet的response的格式为applic ...

  5. JavaWeb开发 —— Ajax

    目录 一.介绍 二.原生Ajax 三.Axios 四.案例分析 一.介绍 ① 概念:Asynchronous JavaScript And XML,异步的JavaScript和XML. ② 作用: 数 ...

  6. 【JavaWeb】AJAX

    目录 一.AJAX概述 1.AJAX介绍 2.AJAX优点 3.AJAX工作原理 二.AJAX应用 1.AJAX快速入门 1.1.第一步:获取一个XMLHttpRequest对象 1.2.第二步:设置 ...

  7. javaweb之ajax

    目录 一.为什么使用ajax 二.什么是ajax 三.案例 1.为什么使用ajax 无刷新:不刷新整个页面,只刷新局部 无刷新的好处 只更新部分页面,有效利用带宽,提高用户体验 2.什么是ajax 只 ...

  8. javaWeb(七)ajax远程调用

    1.处理ajax请求的时候页面不允许跳转(默认使用的是异步请求),并且在ajax使用的时候,不能 使用el表达式 2.调用方法 $.ajax([json指令]); $.ajax({ url:" ...

  9. Javaweb(AJAX快速入门)

    中哈喽丫各位本次讲jweb的(AJAX快速入门&&AJAX实现分页) 好了直接进入主题 在进入主题前看看本次思维导图 ==========================jQuery之 ...

最新文章

  1. Python hashlib 无法打印
  2. 汇编中的条件转移指令
  3. 使用七牛云和PicGo搭建图床
  4. 每个人都要在自己的“时区”里找到自己的快乐
  5. 【ZOJ - 4020 】Traffic Light (bfs,分层图)
  6. sqlmap第一次打靶成功
  7. tomcat源码分析--初始化与启动
  8. 【操作系统/OS笔记16】进程间通信(IPC),直接/间接通信与阻塞/非阻塞通信,信号,管道,消息队列,共享内存
  9. ggplot2作图详解:标尺(scale)设置
  10. 线上只执行一次的脚本编写注意事项
  11. js上传图片转base64格式
  12. 怎么在win7上安装AIR780E的USB驱动
  13. React中用aliplayer-react封装播放组件
  14. python forward函数_Python——函数
  15. 【异常解决】vue项目localhost:8080无法访问此网站或者无法访问此页面,localhost拒绝了我们的连接请求
  16. Python | 宝爸宝妈不用愁,怎样给宝宝取个好名字?
  17. 对酒当歌,孤寂之歌!
  18. 软件系统需求分析策划方案
  19. 根文件系统制作 -- Kernel panic - not syncing
  20. unity获取脚本组件_Unity脚本组件

热门文章

  1. 《高性能Linux服务器构建实战》封面照出炉
  2. Qt学习笔记,Qt程序架构设计要旨
  3. 推荐抓虾在线RSS阅读
  4. POJ2153 (C++ map)
  5. 电脑与人脑,信息与知识
  6. 插入blob字段的简单方法
  7. 信息系统开发平台OpenExpressApp:【OpenTest】 之 如何实现自动化测试框架
  8. Python:打印目录下最大的十个文件
  9. 服务器无法显示大内存的处理办法
  10. gearman mysql udf