Ajax下拉菜单关联出错

我初学了Ajax,自己做了个下拉菜单关联的,也不知道为什么,我的就是不显示,我把程序看了好几遍,琢磨了很长时间,都不凑效,还希望某位大哥给我指点下:
我的首页index.jsp
[code="java"]
<%@ page language="java" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<br> var req ;<br> function createXMLHttpRequest(){<br><br> if(window.ActiveXObject){<br> req = new ActiveXObject(&quot;Microsoft.XMLHttp&quot;) ;<br> }<br> else if(window.XMLHttpRequest){<br> req = new XMLHttpRequest() ;<br> }<br> }<br> function test2(){<br> alert(&quot;进入了&quot;) ;<br> createXMLHttpRequest() ;<br> if(req){<br> var province = document.all(&quot;province&quot;).value ;<br> req.onreadystatechange = callback ;<br> req.open(&quot;get&quot;,&quot;c.jsp?province=&quot;+province,false) ;<br> req.send(null) ;<br> }<br> }</p> <pre><code> function callback(){ if(req.readyState == 4){ if(req.status == 200){ var message = req.responseText ; var obj = document.all(&quot;city&quot;) ; for(var i=obj.options.length-1;i&gt;=0;i--){ obj.options.remove(i) ; } var ops = message.split(&quot;|&quot;) ; for(var i=0;i&lt;ops.length;i++){ var op = ops[i] ; var ss = op.split(&quot;,&quot;) ; var oOption = document.createElement(&quot;OPTION&quot;); obj.options.add(oOption); oOption.innerText = ss[1]; oOption.Value = ss[0]; } } } </code></pre> <p>


用户注册


用户省份:
bj
sh
sd




用户城市:
hd
pd
ln






[/code]

下面是服务器处理页c.jsp
[code="java"]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">



Insert title here


<%
String province = request.getParameter("province") ;
if(province != null && "bj".equals(province)){
out.println("hd,hdq|cy,cyq") ;
}else if(province != null && "sh".equals(province)){
out.println("pd,pdq|xh,xhq|hp,hpq") ;
}
else if(province != null && "sd".equals(province)){
out.println("qd,qdq|yt,ytq") ;
}
%>


[/code]
希望某位大哥指点下,谢谢了!

我把你的代码粘到我这 能运行啊 有效果
会不会你的jar包 不对啊
我用的dwr.jar

function callback(){

if(req.readyState == 4){

if(req.status == 200){

var message = req.responseText ;

var obj = document.all("city") ;

for(var i=obj.options.length-1;i>=0;i--){

obj.options.remove(i) ;

}

var ops = message.split("|") ;

for(var i=0;i<ops.length;i++){

var op = ops[i] ;

var ss = op.split(",") ;

var oOption = document.createElement("OPTION");

obj.options.add(oOption);

oOption.innerText = ss[1];

oOption.Value = ss[0];

}

}

}

[color=red]}[/color]