所谓简单请求,是指不包含任何参数的请求。这种请求通常用于自动刷新的应用,例如证券交易所的实时信息发送。这种请求通常用于公告性质的响应,公告性质的响应无需客户端的任何请求参数,而是由服务器根据业务数据自动生成。对于简单请求,因为无须发送请求参数,所以采用POST和GET方式并没有太大区别。不管发送怎样的请求,XMLHttpRequest都应该按如下步骤进行:

  • 初始化XMLHttpRequest对象
  • 打开与服务器的连接,打开连接时,指定发送请求的方法:采用GET或POST;指定是否采用异步方式
  • 设置监听XMLHttpRequest状态改变的事件处理函数
  • 发送请求,如采用POST方法发送请求,可发送带参数的请求。

下面的应用模拟了一个简单的证券价格公告牌,下面的代码是服务器的响应页面,该页面随机产生三个数字,假设这三个数字就是对应的三个股票的报价。将这三个数字以$符号隔开后发送到客户端。下面是服务器页面的代码。

程序清单:Ajax02request/simple/second.jsp

<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.util.*" %>

<%

    //创建伪随机器,以系统时间作为随机器的种子

    Random rand = new Random(System.currentTimeMillis());

    //生成三个伪随机数字,并以$符号隔开后发送到客户端

    out.println(rand.nextInt(10) + "$" + rand.nextInt(10) + "$" + rand.nextInt(10));

 %>

服务器响应生成三个随机数字,三个数字以$符号隔开,因此客户端页面只需要定时向服务器发送简单请求即可,这种请求无须任何请求参数。客户端页面代码如下。

程序清单:Ajax02request/simple/first.html

<!DOCTYPE html>

<html>

<head>

    <meta name="author" content="silvan" />

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <title> 发送简单请求 </title>

</head>

<body>

mysql的虚拟股票价格:<div id="mysql" style="color:red;font-weight:bold;"></div>

tomcat的虚拟股票价格:<div id="tomcat" style="color:red;font-weight:bold;"></div>

jetty的虚拟股票价格:<div id="jetty" style="color:red;font-weight:bold;"></div>

<script type="text/javascript">

// XMLHttpRequest对象

var xmlrequest;

// 创建XMLHttpRequest对象的初始化函数

function createXMLHttpRequest()

{

    if(window.XMLHttpRequest)

    {

       // DOM 2浏览器

       xmlrequest = new XMLHttpRequest();

    }

    else if (window.ActiveXObject)

    {

       // IE浏览器

       try

       {

           xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");

       }

       catch (e)

       {

           try

           {

              xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");

           }

           catch (e){}

       }

    }

}

// 用于发送简单请求的函数

function getPrice()

{

    // 初始化XMLHttpRequest对象

    createXMLHttpRequest();

    var uri = "second.jsp";

    // 打开与服务器的连接

    xmlrequest.open("POST", uri, true);

    // 指定当XMLHttpRequest状态改变时的事件处理函数

    xmlrequest.onreadystatechange = processResponse;

    // 发送请求

    xmlrequest.send(null);

}

// 当XMLHttpRequest状态改变时,该函数将被触发

function processResponse()

{

    if(xmlrequest.readyState == 4)

    {

       if(xmlrequest.status == 200)

       {

           // 将服务器响应以$符号分割成一个字符串数组

           var prices = xmlrequest.responseText.split("$");

           // 将服务器的响应通过页面显示。

           document.getElementById("mysql").innerHTML=prices[0];

           document.getElementById("tomcat").innerHTML=prices[1];

           document.getElementById("jetty").innerHTML=prices[2];

           // 设置1秒钟后再次发送请求

           //setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式

           setTimeout("getPrice()", 1000);

       }

    }

}

// 指定页面加载完成后指定getPrice()函数

document.body.onload = getPrice;

</script>

</body>

</html>

Open方法通常有三个参数:第一个参数指定发送请求的方式——只能是POST或GET,通常建议采用POST方式;第二个参数指定发送请求的服务器资源地址,虽然"second.jsp"在simple文件夹下,但是由于first.html也在simple文件夹下,所以访问地址直接写"second.jsp"就好了,如果处于不同文件夹下需要将地址写全;第三个参数只能为true或false,用于指定是否采用异步方式发送请求,一般默认true。上面的应用用于发送简单请求,请求不包含任何参数,发送请求时open()方法的第一个参数决定了发送请求的方式,例如本应用指定以POST方式发送请求。

项目概况:

将项目加入tomcat,运行tomcat。

在浏览器中访问:http://localhost:8081/Ajax02request/simple/first.html

大概每隔1秒钟页面的股票价格会刷新一次。

Ajax发送简单请求案例的更多相关文章

  1. Ajax发送XML请求案例

    Ajax发送XML请求需求: 根据输入的国家,输出这些国家下面的城市. 如果请求参数较多,而且请求参数的结构关系复杂,则可以考虑发送XML请求.XML请求的实质还是POST请求,只是在发送请求的客户端 ...

  2. Ajax的简单请求案例

    $.ajax({ url : rootPath +'/jasframework/choosepilecontrol/querySubsytem.do', type : "POST" ...

  3. AJAX发送异步请求教程详解

    AJAX 一.AJAX简介 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可 ...

  4. IT兄弟连 JavaWeb教程 使用AJAX发送GET请求并获取响应

    GET请求用于获取数据,有时候我们需要获取的数据需要通过"查询参数"进行定位,在这种情况下,我们会将查询参数追加到URL的末尾,令服务器解析. 使用Ajax发送GET请求非常简单, ...

  5. Django中ajax发送post请求,报403错误CSRF验证失败解决办法

    今天学习Django框架,用ajax向后台发送post请求,直接报了403错误,说CSRF验证失败:先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了:很显 ...

  6. Ajax发送Post请求

    Ajax发送post请求与发送get请求大致类似.以下看详细实例.首先看JSP显示页面: <form action="servlet/LoginServlet" method ...

  7. 使用Ajax发送http请求(get&post请求)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 同步和异步 同步和异步的概念 同步:必须等待前面的任务完成,才能继续后面 ...

  8. AJAX发送PUT请求引发的血案

    如果直接发送ajax=put形式的请求      是拿不到请求体中的数据的.           Tomcat:              1.将请求体中的数据,封装一个map             ...

  9. AJAX的来龙去脉(由来)-如何被封装出来的--ajax发送异步请求(四步操作)

    <黑马程序员_超全面的JavaWeb视频教程vedio\JavaWeb视频教程_day23_ajax> \JavaWeb视频教程_day23_ajax\day23ajax_avi\14.打 ...

随机推荐

  1. 【cl】多表查询(内、外连接)

    交叉连接(cross join):该连接产生的结果集笛卡尔积 a有7行,b有8行    a的第一行与b的每一行进行连接,就有8条a得第一行 7*8=56条 select a.real_name,s.u ...

  2. explain 分析

    EXPLAIN的结果中,有哪些关键信息值得注意呢? MySQL的EXPLAIN当然和ORACLE的没法比,不过我们从它输出的结果中,也可以得到很多有用的信息. 总的来说,我们只需要关注结果中的几列: ...

  3. int、bigint、smallint 和 tinyint范围

    int.bigint.smallint 和 tinyint范围使用整数数据的精确数字数据类型.bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (922337 ...

  4. 国外物联网平台初探(二) ——微软Azure IoT

    平台定位 连接设备.其它 M2M 资产和人员,以便在业务和操作中更好地利用数据. 连接 IoT 设备 将所有设备连接到云,从这些设备接收大规模数据,以及管理这些设备的授权和限制. 在将设备连接到云和处 ...

  5. HDU 1257(最小拦截系统)

    Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不 能超过前一发的高度.某天,雷达 ...

  6. ubuntu系统源的更新

    以前没有注意,ubuntu的系统的源原来每次在GUI操作后都会追加在后面而不是覆盖,比如先添加了上海交大的源那么后来如果发现很慢下载不了,而这个包已经在apt-cache里面了,下次如果要instal ...

  7. C# 同步更新系统时间

    前言 在定位用户问题时,发现有些电脑,会出现系统时间不是最新的问题. 可能原因: 取消了勾选服务器时间同步 当前安装的系统,是一个未知来源系统,导致系统时间更新失败 而系统时间不正确,会导致IE选项- ...

  8. 「图解HTTP 笔记」Web 基础

    Web 基础 三项构建技术: HTML:页面的文本标记语言 HTTP:文档传输协议 URL:指定文档所在地址 一些概念 HTTP(HyperText Transfer Protocol):通常被译为& ...

  9. UML+模式设计概述

    转自于:http://blog.csdn.net/rexuefengye/article/details/13020225 工程学:工程庞大到一定程度必须是用工程学方法,好比直接用水泥沙子建设实用的摩 ...

  10. jquery插件生成简单二维码

    除了利用第三方网站生成二维码外,这是一个比较简单的办法吧. <script src="/Scripts/jquery.qrcode.min.js" type="te ...