jsp+ajax自动刷新局部页面
2015-10-21 11:25
567 查看
转自:/article/5675364.html
jsp+ajax自动刷新局部页面
通过 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>
效果如下(页面上的值自动变化):
![](http://images.cnitblog.com/blog/315788/201305/09111421-1ad59d834b0f4f73b9aeffac78d62a2b.png)
![](http://images.cnitblog.com/blog/315788/201305/09111429-d02e2fc7bcb84745bdaa3db1599a29bc.png)
相关文章推荐
- JS技巧总结
- Js数组的操作push,pop,shift,unshift等方法
- js中(function(){…})()立即执行函数写法理解
- javaScript模块化规范ADM与CMD
- JS中使用arguments.callee实现匿名函数的递归
- JS实现的竖向折叠菜单代码
- javascript中onclick事件能调用多个方法吗
- 关于闭包之我见
- Javascript网页截屏的方法
- 你不知道的JavaScript--Item13 理解 prototype, getPrototypeOf 和__proto__
- 你不知道的JavaScript--Item13 理解 prototype, getPrototypeOf 和__proto__
- JS基于Mootools实现的个性菜单效果代码
- 纯javascript实现自动发送邮件
- js-预编译就是那个鬼
- mark 一下 PhantomJS
- JavaScript客户端测试之旅
- js中那些方法不改变原来的数组对象
- ELKStack插件Json编码
- JavaScript 之arguments、caller 和 callee 介绍
- JS高级程序设计读书笔记(第十五章 使用Canvas绘图)