Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Using AJAX -- can't find servlet -- Error 404

843841Dec 1 2005 — edited Sep 6 2007
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
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 4 2007
Added on Dec 1 2005
10 comments
896 views