Hi,
I'm trying to get a simple AJAX application to run. I'm using the sample code provided by sun @ http://java.sun.com/developer/technicalArticles/J2EE/AJAX/index.html?cid=59754
For some reason it has a problem with the
if (req.status == 200)
code. I have an alert message that pops up if that if condition isn't true and it returns Error: 404, or "Not found". In my JS I point to the Servlet just like they did in their example:
var url = "responder?id=" + escape(idField.value);
Responder is the name of the servlet and it's in the package:
package xml_Response_Servlet;
All of the code is pasted below. I've even looked at other examples @ https://bpcatalog.dev.java.net/nonav/ajax/autocomplete/frames.html but I just can't figure out how to get the JS to "find" my Respond servlet.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="IBM WebSphere Studio">
<META http-equiv="Content-Style-Type" content="text/css">
<LINK href="theme/Master.css" rel="stylesheet"
type="text/css">
<TITLE>login.html</TITLE>
<script src="JS/XML_Script_1.js"></script>
</HEAD>
<BODY>
<input type="text"
size="20"
id="userid"
name="id"
onkeyup="validate();"/>
<div id="userIdMessage"></div>
</BODY>
</HTML>
package xml_Response_Servlet;
import java.util.HashMap;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.SingleThreadModel;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Responder extends HttpServlet
{
private ServletContext context;
private HashMap users = new HashMap();
public void init(ServletConfig config) throws ServletException
{
this.context = config.getServletContext();
users.put("greg","account data");
users.put("duke","account data");
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException
{
String targetId = request.getParameter("id");
try
{
if ((targetId != null) && !users.containsKey(targetId.trim()))
{
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write("<message>"+"valid"+"<message>");
}
else
{
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
response.getWriter().write("<message>"+"invalid"+"<message>");
}
}
catch( Exception E)
{System.out.println("Error! "+ E.getMessage());}
}
}
var req;
var message;
function validate()
{
var idField = document.getElementById("userid");
var url = "responder?id=" + escape(idField.value);
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.open("GET", url, true);
req.onreadystatechange = callback;
req.send(null);
}
function callback()
{
if (req.readyState == 4)
{
if (req.status == 200)
{
mdiv = document.getElementById("userIdMessage");
if (req.responseXML.getElementsByTagName("message")[0] == "invalid")
{
mdiv.innerHTML = "<div style=\"color:red\">Invalid User Id</ div>";
}
else
{
mdiv.innerHTML = "<div style=\"color:green\">Valid User Id</ div>";
}
}
else{alert("inner"+req.status)}
}
//else{alert("outer"+req.readyStat)}
}
//function parseMessage()
//{
//message = req.responseXML.getElementsByTagName("message")[0];
//setMessage(message.childNodes[0].nodeValue);
//}
Thanks in advance for any help.
- LS6V