XML.com: XML From the Inside Out

XML.comWebServices.XML.comO'Reilly Networkoreilly.com
  Articles | Weblogs | Newsletter | Safari Bookshelf
advertisement

Article:
 Very Dynamic Web Interfaces
Subject: xmlHttpRequest could not be made
Date: 2006-11-21 00:39:14
From: memen

Hi. pls i need someone's help cos i have a servlet and javascript already yet all i get is xmlHttp is null or not an object ANS THORWS A NULL POINTER EXCEPTION,


sorry for pasting my codes i am working with a deadline which ends today and my boss is on my neck already.


THIS IS MY HTML SIDE OF IT.
<html>
<head>
<title> Dynamic Update</title>
<script type="text/javascript">

var xmlHttp;


function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)


{
xmlHttp = new XMLHttpRequest();
}
}
function doStart()
{
createXMLHttpRequest();
var url = "DynamicUpdate?task=res";
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = startCallback;
xmlHttp.send(null);
}



function startCallback()
{
if(xmlHttp.readyState ==4)
{


if(xmlHttp.status ==200)
{
setTimeout("pollServer()",5000);
refreshTime();
}



}


}


function pollServer()
{
createXMLHttpRequest();
var url = "DynamicUpdate?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)
{
Timeout(1000);
timespan.innerHTML = new_int_val;
}
else
{
time_span.innerHTML = 5;
}
}


function pollCallback()
{
if(xmlHttp.readyState ==4)
{
if(xmlHttp ==200)
{ var message = xmlHttp.responsexml.getElementByTagName("message")[0].firstChild.data;
if(message != "done")
{var new_row = createRow(message);
var table = document.getElementById("dynamicUpdateArea");
var table_body = table.getElementByTagName("tbody").item(0);
var first_row = table_body.getElementByTagName("tr").item(1);
table_body.isertBefore(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;


}
</script>
</head>
<body>
<input type="button" value="launch" id="go" onClick="doStart()">
<span id="time">5</span> seconds for refreshing Page
<table id="dynamicUpdateArea" align="left">
<tbody>
<tr id="row0"><td></td></tr>
</tbody>
</table>


</body>


</html> THIS IS THE JAVA SERVLET
/*
* DynamicUpdate.java
*
* Created on 14 November 2006, 09:21
*/
package AjaxDynamicServlet;


import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;


/**
*
* @author Hilda
* @version
*/


public class DynamicUpdate extends HttpServlet {
BufferedInputStream bis;
private int counter = 1;
/** Processes requests for both HTTP GET and POST methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String pageNum = request.getParameter("pageNum");

response.setContentType("text/html;charset=UTF-8");

if (pageNum.equals("1")){
bis = new BufferedInputStream(new FileInputStream("C:\\Documents and Settings\\Administrator\\Desktop\\dynamicUpdate.html"));
}

}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** Handles the HTTP GET method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String res = "I actually have been trying this for some time now";
String task = request.getParameter("task");
String message = "";

if (task.equals("res")){
counter = 1;
}else{
switch (counter){
case 1:message = "I actually have been trying this for some time now";break;
case 2:message = "what? you say";break;
case 3:message = "DYNAMIC page update of course";break;
case 4:message = "It actually is turning into something else";break;
case 5:message = "making me feel like a fish-brain";break;
case 6:message = "o thou troubler of isreal";break;
case 7:message = "done";break;
}
counter++;
}
res = "<message>" + message +"</message>";

PrintWriter out = response.getWriter();
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
out.println("<response>");
out.println(res);
out.println("</response>");
out.close();



}

/** Handles the HTTP POST method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/** Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
// </editor-fold>
}


Previous Message Previous Message   Next Message Next Message

Sponsored By:


Contact Us | Our Mission | Privacy Policy | Advertise With Us | | Submissions Guidelines
Copyright © 2008 O'Reilly Media, Inc. | (707) 827-7000 / (800) 998-9938