欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

在servlet中返回xml格式的数据,用jquery的html方法取值,alert出来的是'undefined' 请教这是什么原因, 多谢

更新时间: 2014-01-05 01:54:18 责任编辑: Author_N1

 

在Servlet中返回xml格式的数据,用jQuery的html方法取值,alert出来的是'undefined', 请问这是什么原因, 谢谢
后台代码:
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 Validation extends HttpServlet {

private static final long serialVersionUID = 5873405129982361860L;

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 获取参数前, 需要设置编码
request.setCharacterEncoding("utf-8");

// 设置返回的格式为xml
// response.setContentType("text/xml;charset=utf-8");

// 设置禁止缓存
response.setHeader("Cache-Control", "no-cache, must-revalidate");

// 验证用户名是否已经存在
validate(request, response);
}

private void validate(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 设置返回的格式为xml
response.setContentType("text/xml;charset=utf-8");

PrintWriter out = response.getWriter();

String message = "";
String username = request.getParameter("username");

if("aaa".equals(username) || "bbb".equalsIgnoreCase(username)) {
System.out.println("已经存在");
message = "<result><message>用户名" + username + "已存在!</message></result>";
} else {
message = "<result><message>恭喜, 用户名" + username + "可以注册!</message></result>";

}

out.println(message);
}

}


============================== 郁闷的分隔线 =========================================

jsp代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/common.jsp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>处理返回值为xml格式</title>

<script type="text/javascript" src="${contextPath}/js/jquery-1.3.1.js"></script>

<script type="text/javascript">

// ajax引擎
var xmlHttpRequest;

// 创建ajax引擎
function getXMLHttpRequest() {
// 不同浏览器获取XMLHttpRequest对象方法不同
if(window.ActiveXObject) {
// IE
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else if(window.XMLHttpRequest) {
// 火狐, google等非IE
xmlHttpRequest = new XMLHttpRequest();
}
}

// 检查用户名是否已经存在(提交数据到后台)
function checkName() {
// 获得ajax引擎
getXMLHttpRequest();

// 判断ajax引擎是否创建成功
if(xmlHttpRequest) {
// 引擎创建成功, 执行下面代码
// 通过该引擎对象发送请求到服务器的某个页面

// post提交方式
var username = "username=" + $("#username").val();
var url = "${contextPath}/servlet/validation";

xmlHttpRequest.open("post", url, true);
xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

// 指定回调方法, 处理返回值
// 状态改变了四次
xmlHttpRequest.onreadystatechange = deal;

// 真正发送请求
xmlHttpRequest.send(username);
}
}

// 回调方法, 处理返回值
function deal() {
// 我们只关心完成的那个状态
if(4 == xmlHttpRequest.readyState) {
if(200 == xmlHttpRequest.status) {
// 找到message标签(节点), 然后取出第一个节点元素
// 把DOM对象转换成jQuery对象
var message = $(xmlHttpRequest.responseXML.getElementsByTagName("message")[0]);

// 用html获取, 提示undefined!!!!
// var result = message.html();

var result = message.text();
$("#result").html(result);
}
}
}

// 页面装载完成后运行
$(function() {
$("#validate").click(function() {
checkName();
});
});
</script>
</head>

<body>
<form action="${contextPath}/servlet/validation" method="post">
  用户名:
    <input type="text" name="username" id="username" size="20">
    <input type="button" id="validate" value="验证用户名">
    <div id="result" style=" display:inline; color:red;"></div>
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:54:18
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/2845/
本文WWW.DOC100.NET DOC100.NET版权所有。