您的位置:首页 > 其它

Ajax some example

2008-04-09 12:28 169 查看
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;

public class DynamicUpdateServlet extends HttpServlet {
private int counter =1;

/**
* Constructor of the object.
*/
public DynamicUpdateServlet() {
super();
}

/**
* Destruction of the servlet.

*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

/**
* The doGet method of the servlet.

*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

PrintWriter out = response.getWriter();
String res="";
String task=request.getParameter("task");
String message="";
if(task.equals("reset"))
{
counter=1;
}
else
{
switch(counter)
{
case 1:message="a";break;
case 2:message="b";break;
case 3:message="c";break;
case 4:message="d";break;
case 5:message="e";break;
case 6:message="f";break;
case 7:message="done";break;
}
counter++;
}
res=""+message+"";
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
out.println("");
out.println(res);
out.println("");
out.flush();
out.close();
}

/**
* The doPost method of the servlet.

*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("");
out.println("");
out.println(" A Servlet");
out.println(" ");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" ");
out.println("");
out.flush();
out.close();
}

/**
* Initialization of the servlet.

*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}

}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


index.html

var xmlHttp = null;
function createXMLHttpRequest()
{

try
{
// Try to use the ActiveX version of XMLHttpRequest. This will
// allow developers to load file URLs in IE7 when running in the
// local zone.
if (window.ActiveXObject)
{
try { xmlHttp = new ActiveXObject("MSXML2.XMLHTTP.6.0"); } catch (e) { xmlHttp = null; }
if(!xmlHttp)
try { xmlHttp = new ActiveXObject("MSXML2.XMLHTTP.3.0"); } catch (e) { xmlHttp = null; }
}

// We're either running in a non-IE browser, or we failed to
// create the ActiveX version of the XMLHttpRequest object.
// Try to use the native version of XMLHttpRequest if it exists.

if (!xmlHttp && window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
}
catch (e) { xmlHttp = null; }
if (!xmlHttp)
alert("Failed to create an XMLHttpRequest object!" );
return xmlHttp;
}
function doStart()
{
createXMLHttpRequest();
var url="DynamicUpdateServlet?task=reset";
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = startCallback;
xmlHttp.send(null);
}
function startCallback()
{

if(xmlHttp.readyState==4)
{
setTimeout("pollServer()",5000);
refreshTime();
}
}
function pollServer()
{
createXMLHttpRequest();
var url="DynamicUpdateServlet?task=foo";
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=pollCallback;
xmlHttp.send(null);
}
function refreshTime()
{
var time_span =document.getElementById("time");
var time_val =time_span.innerHTML;
var int_val = parseInt(time_val);
var new_int_val =int_val -1;
if(new_int_val>-1)
{
setTimeout("refreshTime()",1000);
time_span.innerHTML=new_int_val;
}
else
{
time_span.innerHTML=5;
}
}
function pollCallback()
{
if(xmlHttp.readyState==4)
{

var message=xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.nodeValue;
alert(message);
if(message !="done")
{
var new_row=createRow(message);
var table=document.getElementById("dynamicUpdateArea");
var table_body=table.getElementsByTagName("tbody")[0];
alert(table_body);
var first_row=table_body.getElementsByTagName("tr")[0];
alert(first_row);
table_body.insertBefore(new_row,first_row);
setTimeout("pollServer()",5000);
refreshTime();
}
}
}
function createRow(message)
{
var row =document.createElement("tr");
var cell = document.createElement("td");
var cell_data =document.createTextNode(message);
cell.appendChild(cell_data);
row.appendChild(cell);
return row;
}

5seconds

1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: