post方式发送请求

  要首先设置请求头(参数设置为ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")

  -->send中放入要发送的参数(key=value&key=value)-->发送数据(ajax.send(context))

当xml作为载体的时候servlet中声明发送的格式为xml

  response.setContextType("text/xml;charset=utf-8");

  

<script type="text/javascript">

//定位button按钮,同时添加单击事件

document.getElementsByTagName("input")[0].onclick = function(){

//NO1)创建AJAX异步对象(每个浏览器内置的,无需第三方jar包)

var ajax = createAJAX();//0

//NO2)AJAX异步对象准备发送请求

var url = "${pageContext.request.contextPath}/TimeServletAjax?id="+new Date().getTime();

var method = "GET";

ajax.open(method,url);//1

//NO3)AJAX异步对象真正发送请求体的数据到服务器,如果请求体无数据的话,用null表示

var content = null;

ajax.send(content);//2

//----------------------------------------等待

//NO4)AJAX异步对象不断监听服务端状态的变化,只有状态码变化了,方可触发函数

//0-1-2-3-4,这些是可以触发函数的

//4-4-4-4-4,这些是不可以触发函数的

//以下这个函数是服务器来触发的,不是程序员触发的,这和onclick是不一样的

ajax.onreadystatechange = function(){

//如果AJAX状态码为4

if(ajax.readyState == 4){

//如果服务器响应码是200

if(ajax.status == 200){

//NO5)从AJAX异步对象中获取服务器响应的结果

var str = ajax.responseText;

//NO6)按照DOM规则,将结果动态添加到web页面指向的标签中

document.getElementsByTagName("span")[0].innerHTML = str;

}

}

}

}

</script>

public class TimeServletAjax extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String str = sdf.format(new Date());

//注意:在Web2.0时代,即异步方式下,不能用转发或重定向

//因为:转发或重定向会引起浏览器全部刷新,而不是局部刷新

//所以得用以输出流的方式将服务器的结果输出到浏览器

response.setContentType("text/html;charset=UTF-8");

PrintWriter pw = response.getWriter();

pw.write(str);

pw.flush();

pw.close();

}

}

XMLHttpRequest(即:AJAX)对象常用事件,方法和属性

(1)事件:

ajax.onreadystatechange:表示AJAX异步对象不断监听服务端的响应,

是由服务器程序触发,不是程序员触发

(2)属性:

ajax.readyState==0:表示AJAX异步对象已创建好,但还没有调用open()方法

ajax.readyState==1:表示AJAX异步对象已调用open()方法,但还没有调用send()方法

ajax.readyState==2:表示AJAX异步对象已调用send()方法,但请求还没有到达服务器端

ajax.readyState==3:表示服务端已接收到AJAX异步对象的请求,正在处理响应中。。。

ajax.readyState==【4】:表示AJAX异步对象已经完完全全接收到了服务器的响应信             息,但接收到的数据不一定都正确

上述5种状态不是所有浏览器都相同,但状态4每种浏览器都相同

ajax.status==200:表示AJAX异步对象接收到响应码,如果是200的话,表示一切正常

ajax.responseText:表示从AJAX异步对象中获取HTML载体中的数据

ajax.responseXML:表示从AJAX异步对象中获取XML载体中的数据

最新文章

  1. [Asp.net 5] Localization-简单易用的本地化
  2. Java基础学习 -- I/O系统、流
  3. MongoDB学习笔记~为IMongoRepository接口添加了增删改方法,针对官方驱动
  4. 【平面设计AFTER】读到的设计海报分层法
  5. C#学习笔记
  6. jquery中的cookie操作
  7. Python LDAP中的时间戳转换为Linux下时间
  8. 【Android】SDK工具学习 - bmgr
  9. .net求两个数的最大公约数和最小公倍数
  10. iOS开发——UI篇OC篇&amp;UIStackView详解
  11. js对象的复制,传递,新增,删除和比较
  12. oracle的insert的时候&amp;符号如何插入(转义)
  13. socket.io 入门篇(三)
  14. Microsoft Edge浏览器下载文件乱码修复方法
  15. WPF实现分页控件
  16. 从零开始在iPhone上运行视频流实时预测模型应用,只需10步
  17. Linux 下安装 Mongodb
  18. Oracle使用——oracle表锁住,杀掉锁表进程
  19. httpclient 连接保持
  20. pip删除依赖、配置虚拟环境

热门文章

  1. windows 命令行 for 用法
  2. 原生ajax的get和post方法封装
  3. N3-1 - 数组 - convert-sorted-array-to-binary-search-tree
  4. BZOJ 4367 [IOI2014]holiday (决策单调DP+主席树+分治)
  5. struts配置之namespace
  6. hdu 1556 线段树区间延迟更新好题
  7. nodejs-EventEmitter
  8. HDU 4342
  9. NEFU 2
  10. Android ViewGroup拦截触摸事件具体解释