AJAX从servlet返回的XML解析问题 急 大哥们帮帮忙

zouzhiqiangzzq 2008-07-31 04:00:00
selvet 内容

package com.cn.zzq.DyList;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DyListServlet extends HttpServlet {

public DyListServlet() {
super();
}

public void destroy() {
super.destroy();
}
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
service(arg0, arg1);
}
protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
service(arg0, arg1);
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/xml; charset=GB2312");
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
PrintWriter out = response.getWriter();
String dylist = new String(request.getParameter("adeName").getBytes("ISO8859_1"),"gb2312");
String tempStr = "<response>";

if(dylist.equalsIgnoreCase("湖北")){
tempStr += "<adname>荆洲</adname>";
tempStr += "<adname>宜昌</adname>";
tempStr += "<adname>武汉</adname>";
tempStr += "<adname>其它</adname>";

}else if(dylist.equalsIgnoreCase("湖南")){
tempStr += "<adname>长沙</adname>";
tempStr += "<adname>岳阳</adname>";
tempStr += "<adname>韶关</adname>";
tempStr += "<adname>其它</adname>";
}else{
tempStr += "<adname>香港</adname>";
tempStr += "<adname>澳门</adname>";
tempStr += "<adname>台湾</adname>";
tempStr += "<adname>其它</adname>";
}

tempStr += "</response>";
out.print(tempStr);
out.close();
}
public void init() throws ServletException {
// Put your code here
}

}

JSP页面

<%@ page contentType="text/html;charset=gb2312" %>
<%@page import="com.cn.zzq.User.UserBean"%>
<html>
<head>
<title>Ajax学习欢迎页面</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
//UserBean user = (UserBean)session.getAttribute("user");
%>
<script type="text/javascript">
if (window.ActiveXObject && !window.XMLHttpRequest) {
window.XMLHttpRequest=function() {
return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');
};
}
var request=new XMLHttpRequest();
function aderChange(){
var adename = document.getElementById("aderselect").value;
var url = "servlet/DyListServlet?adeName="+adename;
request.open("GET",url,true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.onreadystatechange = showChange;//指定响应方法
request.send(null); //发送请求
}

function showChange(){
if(request.readyState==4 && request.status==200){
var xmlDoc = request.responseXML;
//var results = xmlDoc.getElementsByTagName("name");
// alert(results.length);
//for(var i = 0; i < results.length; i++) {

// }
}
}

</script>
</head>

<body>
<div align="center">欢迎登陆 下面的AJAX联动示例</div>
<div align="center">
<select name="aderselect" id="aderselect" onchange="aderChange()">
<option value="default">请选择省份</option>
<option value="湖北">湖北</option>
<option value="湖南">湖南</option>
<option value="其他">其他</option>
</select>
<div style="display: none;">
<select name="select">
</select>
</div>
</div>
</body>
</html>

var xmlDoc = request.responseXML;
var results = xmlDoc.getElementsByTagName("name");
alert(results.length);为0
不知道怎么回事
大哥们帮帮忙
...全文
320 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwei1216 2008-08-03
  • 打赏
  • 举报
回复
你可以这样试试看

var url = "servlet/DyListServlet“;
request.open("GET",url,true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.onreadystatechange = showChange;//指定响应方法
request.send(”adeName=”+adename); //发送请求
因为 send()方法本来就是用来传参数的




sd5816690 2008-08-02
  • 打赏
  • 举报
回复
serlvet里面没有设置
<?xml version="1.0" ?>

如果要访问xmlDoc.getElementsByTagName("name");
必须有名称为"name"的结点

看看我在另外一篇帖子里怎么做的
http://topic.csdn.net/u/20080802/11/0829065c-0187-4d53-a120-efd493d158e5.html
leosming 2008-08-02
  • 打赏
  • 举报
回复
var results = xmlDoc.getElementsByName("aderselect");
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

52,780

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧