`

ajax+servlet实现自动刷新

 
阅读更多

http://www.java3z.com/cwbwebhome/article/article8/81381.html?id=3866

 

1.实现思路

在ajax回调函数中用方法setTimeout("load()", 1000),这样就会每隔1秒自动去请求新的信息,实现自动刷新的功能。

2.实例

(1)index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
	String path = request.getContextPath();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>ajax+servlet实现自动刷新页面</title>
 <mce:script type="text/javascript"><!--
  function $(id){
      return document.getElementById(id);
  }
  var xmlHttp;
  //根据浏览器创建xmlHttpRequest对象
  function getXmlHttpRequest() {
  //针对FireFox,Mozillar,Opera,Safari,IE7,IE8
  if(window.XMLHttpRequest) 
      return new XMLHttpRequest();
  //针对IE5,IE5.5,IE6
  else if (window.ActiveXObject){  
       //两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个JS数组中。
       var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
       for(var i = 0; i<activexName.length; i++){
           //取出一个控件名进行创建,如果成功就终止循环
           try{
              return new ActiveXObject(activexName[i]);
              break;
           }catch(e){
           return null;
           }
       }
       }       
  }
  function load(){
           xmlHttp=getXmlHttpRequest();
             var url="servlet/GetMp3Info";
           // 注册回调函数,只写函数名,不能写括号,写括号表示调用函数
           xmlHttp.onreadystatechange = getResult;
           // 确定发送请求的方式和URL以及是否同步执行下段代码
           xmlHttp.open("GET", url, true);
           //发送数据,开始和服务器进行交互
           xmlHttp.send(null);
  }
  //回调函数
  function getResult(){
      if (xmlHttp.readyState == 4) { // 判断对象状态
            if (xmlHttp.status == 200) { // 信息已经成功返回,开始处理信息
         var text=xmlHttp.responseXML;
         var name=text.getElementsByTagName("name")[0].firstChild.nodeValue;
         var number=text.getElementsByTagName("number")[0].firstChild.nodeValue;
         $("name").innerHTML=name;
         $("number").innerHTML=number;
         setTimeout("load()", 1000);
        } else { 
                  alert("请求的出错啦!");
       }
  }
  }
  
// --></mce:script>
</head>
	<body onload="load()">
		<form>
			<table>
				<thead>
					<tr>
						<th colspan="2">
													</th>
					</tr>
				</thead>
				<tbody>
					<tr>
						<td>名称</td>
						<td id="name"></td>
					</tr>
					<tr>
					    <td>数量</td>
					    <td id="number"></td>
					</tr>
				</tbody>
			</table>
		</form>
	</body>
</html>
        

 

(2)GetMp3Info.java(servlet)

 

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetMp3Info extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/xml;charset=utf-8");
		response.setCharacterEncoding("utf-8");
		response.setHeader("Cache-Control","no-cache");
		String name[]={"索尼","清华紫光","纽曼","步步高"};
        String str="";
        str+="<mp3>";
        str+="<name>"+name[new Random().nextInt(name.length)]+"</name>";
        str+="<number>"+new Random().nextInt(1000)+"</number>";
        str+="</mp3>";
        System.out.println("str="+str);
        response.getWriter().write(str);
        response.getWriter().flush();
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}
}
 

(3)web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>GetMp3Info</servlet-name>
    <servlet-class>GetMp3Info</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>GetMp3Info</servlet-name>
    <url-pattern>/servlet/GetMp3Info</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
 

3.运行效果

 

 

 

 

分享到:
评论

相关推荐

    Ajax+Servlet+Jsp实现页面无刷新查询学生成绩系统

    利用ajax+servlet开发的简易学生成绩查询系统,页面无刷新,自动生成tabel显示学生成绩查询结果

    ajax+java servlet实现无刷新搜索实例(可用)

    ajax+java servlet实现无刷新搜索实例(亲测可用) ,1.使用mysql数据库,已有sql语句;2.使用eclipse\MyEclipse导入项目即可;3.运行URL地址在doc/init.txt

    Servlet实现的的自动刷新功能

    通过Ajax技术调用Servlet, 得到需要刷新的数据。

    ajax 实现网页无闪自动局部刷新

    实现网页无闪自动局部刷新,通过异步传输XMLHTTP发送参数到ajaxServlet,返回符合条件的XML文档

    基于ajax技术的聊天室实现

    无需等待,自动刷新,简单的聊天系统,功能实现有:用户注册,用户登录,多人聊天,使用ajax与servlet技术实现,简单明了,非常适合于学习

    基于JavaWeb + Mysql + Layui实现的宿舍管理系统源码+数据库+演示截图+项目说明.zip

    【资源说明】 基于JavaWeb + Mysql + Layui实现的宿舍管理系统源码+数据库+演示截图+项目说明.zip 1、该资源内项目代码都是经过测试运行成功,...&gt; 总结:jsp用于作页面展示,ajax用于异步刷新,java处理具体业务逻辑

    Ajax基础教程(扫描版)

    8.1.2 实现自动刷新 210 8.1.3 实现部分页面绘制 210 8.1.4 实现可拖放dom 211 8.2 避免常见的陷阱 212 8.3 相关的更多资源 214 8.4 使用框架 216 8.5 taconite介绍 216 8.5.1 taconite原理 217 8.5.2 解决...

    基于Ajax技术实现考试倒计时并自动提交试卷

    由于在答卷过程中,试卷不能刷新,所以需要使用Ajax实现无刷新操作。运行本实例,访问准备考试页面index.jsp,在该页面中,单击“开始考试”按钮,将打开新窗口显示开始考试的页面,如图10.1所示,页面会自动计时,...

    基本于J2EE的Ajax宝典.rar

    2.3.2 解决多余刷新的问题 16 2.3.3 解析服务器响应 19 2.3.4 何时发送请求 20 2.3.5 Ajax 聊天室的特点 24 2.4 传统 Web 应用与 Ajax 的对比 24 2.5 小结 25 第 17章 基于 JSON-RPC-Java 的 Ajax 应用:在线...

    反向Ajax 30分钟快速掌握

    场景1:当有新邮件的时候,网页自动弹出提示信息而无需用户手动的刷新收件箱。 场景2:当用户的手机扫描完成页面中的二维码以后,页面会自动跳转。 场景3:在类似聊天室的环境中有任何人发言,所有登录用户都可以...

    JavaScript完全自学宝典 源代码

    \ajaxmodel\src\bonze\AutoRefServlet.java 自动刷新网页的服务器端。 \ajaxmodel\src\bonze\ProcessServlet.java 显示进度条的服务器端。 第20章(\c20) 示例描述:学习JSON并介绍Ajax与JSON。 20.1....

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    基于J2EE框架的个人博客系统项目毕业设计论...

    2、 Ajax我们主要应用就是xmlhttprequest,回调函数实现局部刷新达道数据更新! 4.2需求分析 Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言、友情链接、及图片的上传和图像的播放而为...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    2、 Ajax我们主要应用就是xmlhttprequest,回调函数实现局部刷新达道数据更新! 4.2需求分析 Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言、友情链接、及图片的上传和图像的播放而为...

    整理后java开发全套达内学习笔记(含练习)

    implements (关键字) 实现 ['implimәnt] import (关键字) 引入(进口,输入) Info n.信息 (information [,infә'meiʃәn] ) Inheritance [java] 继承 [in'heritәns] (遗传,遗产) initialize 预置 初始化 [i'ni...

    java源码包---java 源码 大量 实例

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    JAVA上百实例源码以及开源项目源代码

    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...

    java源码包2

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    java源码包3

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

Global site tag (gtag.js) - Google Analytics