ajax2.jsp的页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'ajax1.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript">
//定义XMLHttpRequest对象
function jsAjaxPost(){
if(window.XMLHttpRequest){
var xmlhttprequest = new XMLHttpRequest();
xmlhttprequest.open('POST','./servlet/ajaxTest2');//请求方式
xmlhttprequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//请求头
xmlhttprequest.onreadystatechange=function (){
if(xmlhttprequest.readyState===4&&xmlhttprequest.status===200){
//readyState=4表示响应接收完,status=200表示请求成功
//alert("rh--"+xmlhttprequest.getResponseHeader("Content-Type"));
var type=xmlhttprequest.getResponseHeader("Content-Type");//响应头包含xml是xml响应
if(type.indexOf("xml")!=-1){
var ul = document.getElementById("jsajaxpost");
ul.innerHTML += "<li>status:" + xmlhttprequest.status + "</li>";
var r=xmlhttprequest.responseXML.getElementsByTagName("root");//解析xml
//alert("1--"+r);
//alert(r[0].childNodes[0].tagName);
//alert(r[0].childNodes[0].firstChild.nodeType);
ul.innerHTML += "<li>return:" + r[0].childNodes[0].firstChild.nodeValue + "</li>";
}
}
};
xmlhttprequest.send("user=我1&com=a2");
}
}
</script>
</head>
<body>
<ul>
<li>
<a href="javascript:jsAjaxPost();">(POST)javascript ajax testing.</a>
<ul id="jsajaxpost"></ul>
</li>
</ul>
</body>
</html>
ajaxTest2.java后台代码,这里用了dom4j,要加dom4j-1.6.1.jar:
/**
*
*/
package ajax1;
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;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
/**
* @author Administrator
*
*/
public class ajaxTest2 extends HttpServlet {
/**
* Constructor of the object.
*/
public ajaxTest2() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("1111111");
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("root");
Element list = root.addElement("list");
list.addText("我");
doc.setXMLEncoding("UTF-8"); //控制XML文件UTF-8的编码
String xml=doc.asXML().replaceAll("<", "<").replaceAll(">",">");
System.out.println(xml);
response.setContentType("text/xml;charset=UTF-8");
//前台是UTF-8编码要加charset=UTF-8不然乱码
PrintWriter out = response.getWriter();
doc.write(out);
out.flush();
out.close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
访问的网址为:http://localhost:8088/ajaxWeb/ajax2.jsp,点击超链接得到结果如图: