jsp+ajax自动刷新局部页面

来源:互联网 发布:品茗标书制作软件 编辑:程序博客网 时间:2024/05/01 08:22

  通过 AJAX,JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象, JavaScript 可在不重载页面的情况与 Web 服务器交换数据。

     AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

     实验中利用JSP+ajax来实现自动刷新页面,并读/写数据库中的数据。

    下面介绍一下利用JSP+ajax来实现局部页面刷新的小例子:

处理ajax请求的jsp文件:ajax.jsp

 

复制代码
    <%@ page contentType="text/html; charset=gb2312" %>            <%      //设置输出信息的格式及字符集      response.setContentType("text/xml; charset=UTF-8");      response.setHeader("Cache-Control","no-cache");      out.println("<response>");            for(int i=0;i<2;i++){      out.println("<name>"+(int)(Math.random()*10)+         "号传感器</name>");      out.println("<count>" +(int)(Math.random()*100)+ "</count>");      }      out.println("</response>");      out.close();      %>   
复制代码

 

发送ajax请求的jsp文件:zx.jsp

复制代码
    <head>      <META http-equiv=Content-Type content="text/html; charset=gb2312">      </head>      <script language="javascript">            var XMLHttpReq;          //创建XMLHttpRequest对象                 function createXMLHttpRequest() {              if(window.XMLHttpRequest) { //Mozilla 浏览器                  XMLHttpReq = new XMLHttpRequest();              }              else if (window.ActiveXObject) { // IE浏览器                  try {                      XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");                  } catch (e) {                      try {                          XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");                      } catch (e) {}                  }              }          }          //发送请求函数          function sendRequest() {              createXMLHttpRequest();              var url = "ajax.jsp";              XMLHttpReq.open("GET", url, true);              XMLHttpReq.onreadystatechange = processResponse;//指定响应函数              XMLHttpReq.send(null);  // 发送请求          }          // 处理返回信息函数          function processResponse() {              if (XMLHttpReq.readyState == 4) { // 判断对象状态                  if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息                      DisplayHot();                      setTimeout("sendRequest()", 1000);                  } else { //页面不正常                      window.alert("您所请求的页面有异常。");                  }              }          }          function DisplayHot() {              var name = XMLHttpReq.responseXML.getElementsByTagName("name")[0].firstChild.nodeValue;              var count = XMLHttpReq.responseXML.getElementsByTagName("count")[0].firstChild.nodeValue;              document.getElementById("product").innerHTML = name;                  document.getElementById("count").innerHTML = count;           }                  </script>            <body onload =sendRequest()>      <table style="BORDER-COLLAPSE: collapse" borderColor=#111111 cellSpacing=0 cellPadding=0 width=200    bgColor=#f5efe7 border=0>            <TR>         <TD align=middle bgColor=#dbc2b0 height=19 colspan="2"><B>无线传感网</B> </TD>      </TR>      <tr>         <td height="20"> 传感器:</td>         <td height="20" id="product"> </td>      </tr>      <tr>         <td height="20">传感器个数:</td>         <td height="20" id="count"> </td>      </tr>      </body>      </table>   
复制代码

  效果如下(页面上的值自动变化):

0 0
原创粉丝点击