J2SE综合:AJAX进一阶应用
首先 提供一个简单的ajax应用,包含两个jsp文件,一个提交请求,一个处理请求。
提交请求:ajaxtest.jsp
< %@ page contentType="text/html; charset=GB2312" %>
< html>
< head>
< title>
ajaxtest
< /title>
< script language="javascript">
var count = 0;
var running = false;
var http_request;
function send_request(url) {//初始化、指定处理函数、发送请求的函数
http_request = false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置MiME类别
http_request.overrideMimeType('text/xml');
}
}
else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例.");
return false;
}
http_request.onreadystatechange = processRequest;
// 确定发送请求的方式和URL以及是否同步执行下段代码
http_request.open("GET", url, true);
http_request.send(null);
}
// 处理返回信息的函数
function processRequest() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
var rtext = http_request.responseText;
document.getElementById("refreshtext").innerHTML = rtext + "< br>"
+ document.getElementById("refreshtext").innerHTML;
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
function refreshTable() {
k = new Date();
send_request('ajaxtestresponse.jsp?count=' + (++count) + '&refreshtime='+k);
}
//window.setTimeout('refreshTable()',10000);
< /script>
< /head>
< body bgcolor="#ffffff">
< h1>
AJAX TEST< /h1>< br>
< input type="button" onClick="refreshTable();" value="ClickMe">
< br>
< span id="refreshtext">< /span>
< /body>
< /html>
响应请求:ajaxtestresponse.jsp
< %
String count = request.getParameter("count");
String ctime = request.getParameter("refreshtime");
try {
Thread.sleep(5000);
}
catch (InterruptedException ex1) {
}
out.write("Hello world-"+count+"-"+ctime);
%>