客户端AJAX脚本:
var xmlAjax = new XmlAJAX();//封装好的AJAX类,详见下
var xmlToSend="<?xml version='1.0' encoding='utf-8'?><me><age>34</age></me>";//要发送到服务器的XML文本
xmlAjax.get("/testServlet?value="+xmlToSend);//利用封装类的get方法发送
if(xmlAjax.isReady()){//服务器回应
var xml=xmlAjax.getData();//获得服务器回应的XML
var tet=xml.getElementsByTagName("name")[0].childNodes[0].nodeValue;//解析
document.getElementById("result").innerHTML = xml;//在HTML里显示
}
其中,XmlAJAX()类的获取详见:
http://blog.csdn.net/shenpibaipao/article/details/78156965
服务器Servlet的doGet方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/xml;charset=UTF-8");//添加文件头,标明是xml文本 和 UTF-8编码(防止中文乱码)
response.setHeader("Cache-control", "no-cache");//不做缓存
//System.out.println("GET收到了");//服务器控制台输出提示
PrintWriter out = response.getWriter();
String txt="<?xml version='1.0' encoding='utf-8'?><user><name>你的账号</name><pwd>fes</pwd></user>";//发到客户端的XML
out.write(txt);//发到客户端
try{
String value = new String(request.getParameter("value").getBytes("ISO8859-1"),"UTF-8");//防止中文乱码
//System.out.println("收到了"+value);//服务器控制台输出接受到的文本
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();//获取解析器
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(value));//把String转为Document对象
Document doc = db.parse(is);
String age = doc.getElementsByTagName("age").item(0).getChildNodes().item(0).getTextContent();//解析
System.out.println("age="+age);//输出
}catch (Exception e){
e.printStackTrace();
}
}
其中,关于Document的解析参见:http://blog.csdn.net/shenpibaipao/article/details/72802529
web.xml文件:
<servlet>
<servlet-name>testServlet</servlet-name><!--Servlet名(可任取)-->
<servlet-class>test.Servlet</servlet-class><!--类所在位置-->
</servlet>
<servlet-mapping>
<servlet-name>testServlet</servlet-name><!--Serrvlet名(与上相同)-->
<url-pattern>/testServlet</url-pattern><!--Servlet对应的url(客户端访问的url地址)-->
</servlet-mapping>