Ajax异步请求,servlet产生随机数据,Html页面无刷新显示。
运行环境:jdk1.5+tomcat 5.5
一、ajaxServlet.java
package com;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Random;
public class ajaxServlet extends HttpServlet{
private static final String CONTENT_TYPE="text/xml; charset=gb2312";
public void init() throws ServletException{}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType(CONTENT_TYPE);
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setDateHeader("Expires",0);
PrintWriter out=response.getWriter();
String action=request.getParameter("action");
if(("send").equals(action)){
Random random = new Random();
String AA=Integer.toString(Math.abs(random.nextInt()));
String BB=Integer.toString(Math.abs(random.nextInt()));
String CC=Integer.toString(Math.abs(random.nextInt()));
String DD=Integer.toString(Math.abs(random.nextInt()));
StringBuffer sb=new StringBuffer();
sb.append(AA); sb.append("@@@");
sb.append(BB); sb.append("@@@");
sb.append(CC); sb.append("@@@");
sb.append(DD);
out.write(sb.toString());
out.close();
} }}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
二、testajax.html
﹤html﹥
﹤head﹥
﹤title﹥AJAX.html﹤/title﹥
﹤/head﹥
﹤script type="text/javascript"﹥
function getResult(){
var url = "/Tajax/AajaxServlet?action=send";
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
}else if (window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if(req){
req.open("GET",url, true);
req.onreadystatechange = complete;
req.send(null);
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
/*分析返回的文本文档*/
function complete(){
if (req.readyState == 4) {
if (req.status == 200) {
// alert(req.responseText);
var strResult = unescape(req.responseText);
var arrResult = strResult.split("@@@");
RemoveRow(); //删除以前的数据.
num1 = arrResult[0]; //字段num1的值
num2 = arrResult[1]; //字段num2的值
num3 = arrResult[2];
num4 = arrResult[3];
row1= tb.insertRow();
cell1 = row1.insertCell();
cell1.innerText = num1;
cell2 = row1.insertCell();
cell2.innerText = num2;
row2= tb.insertRow();
cell3 = row2.insertCell();
cell3.innerText = num3;
cell4 = row2.insertCell();
cell4.innerText = num4;
} else {
alert('There was a problem with the request.');
}
}
}
function RemoveRow(){//保留***行表头,其余数据均删除.
var iRows = tb.rows.length;
for(var i=0;i﹤ iRows-1;i++){
tb.deleteRow(1);
}
}
function MyShow(){//2秒自动刷新一次,2秒取得一次数据.
timer = window.setInterval("getResult()",2000);
}
﹤/script﹥
﹤body onload="MyShow()"﹥
﹤table width="47%" height="23" border="0" cellpadding="1" cellspacing="0" id="tb"﹥
﹤tr﹥﹤td﹥代码﹤/td﹥
﹤td﹥价格﹤/td﹥
﹤/tr﹥
﹤/table﹥
﹤form﹥
﹤p﹥输入股票代码:
﹤input type="text" size="14" name="phone" id="phone"/﹥
﹤/p﹥
﹤p﹥你交易的数量:﹤/p﹥
﹤p﹥﹤textarea name="order" rows="6" cols="50" id="order"﹥﹤/textarea﹥﹤/p﹥
﹤p﹥﹤input type="submit" value="提交" id="submit" /﹥﹤/p﹥
﹤/form﹥
﹤/body﹥
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
三、web.xml
﹤?xml version="1.0" encoding="ISO-8859-1"?﹥
﹤web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"﹥
﹤display-name﹥Welcome to Tomcat﹤/display-name﹥
﹤description﹥
Welcome to Tomcat
﹤/description﹥
﹤servlet﹥
﹤servlet-name﹥AajaxServlet﹤/servlet-name﹥
﹤servlet-class﹥com.ajaxServlet﹤/servlet-class﹥
﹤/servlet﹥
﹤servlet-mapping﹥
﹤servlet-name﹥AajaxServlet﹤/servlet-name﹥
﹤url-pattern﹥/AajaxServlet﹤/url-pattern﹥
﹤/servlet-mapping﹥
﹤/web-app﹥
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
运行图:
Ajax Servlet实例在网络编程的应用就介绍到这里,是不是有点意思呢?Ajax Servlet实例在网络编程的应用是很广泛的,要在实际中积累和多应用。
【编辑推荐】