-
April 13th, 2009, 01:37 AM
#1
Simple ajax example using java - problem while receving the response from the servlet
Hello,
I am trying learn ajax while implementing a simple ajax example using java.
Following is my index.html page where I am trying to use ajax and get some text from the servlet
and display it in the <div>.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Ajax Test Page </TITLE>
<script type="text/javascript">
function register()
{
var req;
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest( );
}
else if (window.ActiveXObject)
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "register";
req.onreadystatechange = response;
req.open("GET", url, true);
req.send(null);
}
function response()
{
if (req.readyState==4)
{
if (req.status == 200)
{
var time = req.responseText;
alert(time);
document.getElementById("register").innerHTML = req.responseText;
}
}
}
</script>
</HEAD>
<BODY>
<a href="" onClick="register();">Register</a>
<div id="register"> </div>
</BODY>
</HTML>
Following is my servlet where I am sending a text "First Name" in response to the ajax call.
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class RegisterForm extends HttpServlet
{
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doGet(request, response);
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html");
response.getWriter().write("First Name");
System.out.println("inside doget");
}
}
When I run this application, I can see that the request is being sent to the servlet (RegisterForm)
"System.out.println("inside doget");" is executed, "inside doget" is printed on to the Tomcat console but the response is not caught in the response() javascirpt method.
Can anyone please tell me where am I going wrong?
-
April 13th, 2009, 08:08 AM
#2
Re: Simple ajax example using java - problem while receving the response from the ser
First off, this should probably be in the client side scripting forumn.
However, normally you need to set your response ready state like this:
request.onreadystatechange = function() { response(); };
My guess is that you are never getting into that method and you probably have a javascript error (lower left hand corner of IE) when you try to run this.
At the very top of your response() method set an alert("Hi"); and see if you are even getting there.
-
April 13th, 2009, 02:37 PM
#3
Re: Simple ajax example using java - problem while receving the response from the ser
Hello Program This,
First off all, thanks for replying to my post. This is the first time I have ever used a forum. So I am sorry for posting it here.
I followed your suggestions. Modified the code as
req.onreadystatechange = function ()
{
if (req.readyState==4)
{
if (req.status == 200)
{
var time = req.responseText;
alert(time);
document.getElementById("register").innerHTML = req.responseText;
}
}
}
and it worked.
I was following the example at http://www.w3schools.com/Ajax/ajax_source.asp where it says
xmlHttp.onreadystatechange=stateChanged;
for calling the stateChanged function.
Thanks once again.
-
April 14th, 2009, 08:16 AM
#4
Re: Simple ajax example using java - problem while receving the response from the ser
That'll teach you a thing about w3schools
Good reference, but not always quite accurate. Glad I could help.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|