案例:

index.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 'index.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"
src="<%=path%>/script/jquery-1.8.3.min.js"></script>
<script type="text/javascript"> function sendXML(){
var xmlStr = "<driverInfo>";
xmlStr = xmlStr + "<driverClassName>com.sqlserver.driver.SQLServerDriver</driverClassName>";
xmlStr = xmlStr + "<url>jdbc:sqlserver://127.0.0.1:xxx</url>";
xmlStr = xmlStr + "<username>sa</username>";
xmlStr = xmlStr + "<password>1</password>";
xmlStr = xmlStr + "</driverInfo>"; var data={
"xmlStr":xmlStr
}; var sendURL="<%=path%>/servlet/xmlSevlet?date=" + new Date() + ""; jQuery.post(sendURL, data, function(xmlData) { //从服务端接收到一个xml对象
var userArray = xmlData.getElementsByTagName("userinfo");
var optionHTML="";
for (var i = 0; i < userArray.length; i++) { var userElement=userArray[i]; var userid=userElement.getAttribute("userid");
var username=userElement.getElementsByTagName("username")[0].firstChild.nodeValue;
var age=userElement.getElementsByTagName("age")[0].firstChild.nodeValue; optionHTML=optionHTML+"<option value="+userid+">"+username+"="+age+"</option>"; $("#userselect").html(optionHTML); //改变id为userselect的标签的内容
} }, "xml"); }
</script>
</head> <body>
使用ajax来发送与接收XML的数据 <input type="button" name="button1" id="button1" value="发送与接收XML"
onclick="sendXML();" /> <select id="userselect" style="width: 200px;"></select>
</body>
</html>

XmlServlet.java

package servlet;

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.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element; public class XmlSevlet extends HttpServlet { /**
* 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 { this.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 { request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8"); // 获取客户端传过来的xml字符串,并解析为xml对象
String xml_str = request.getParameter("xmlStr");
try {
Document document = DocumentHelper.parseText(xml_str); Element rootElement = document.getRootElement(); Element element1 = rootElement.element("driverClassName");
Element element2 = rootElement.element("url");
Element element3 = rootElement.element("username");
Element element4 = rootElement.element("password"); System.out.println(element1.getText());
System.out.println(element2.getText());
System.out.println(element3.getText());
System.out.println(element4.getText()); } catch (DocumentException e) {
e.printStackTrace();
} /**
* 要返回一个XML的字符串。客户端的jQuery接收到之后,会自动将XML的字符串转为XML的文档对象。
* 因为JQuery。post(,,,"xml") 会把返回的字符串对象转为xml对象
*/ PrintWriter out = response.getWriter();
StringBuffer str_xml = new StringBuffer();
str_xml.append("<root>");
for (int i = 0; i < 5; i++) {
str_xml.append("<userinfo userid=\""+i+"\">");
str_xml.append("<username>用户"+i+"</username>");
str_xml.append("<age>12</age>");
str_xml.append("</userinfo>");
}
str_xml.append("</root>");
out.print(str_xml.toString());
System.out.println(str_xml.toString());
out.flush();
out.close(); } }

结果:



本章所有代码都在:  链接

最新文章

  1. java线程同步 以及wait 和notify用法
  2. mongo 主从数据不同步
  3. 5.nodejs权威指南--HTTP
  4. springboot教程
  5. 洛谷P1470 最长前缀 Longest Prefix
  6. XML学习笔记(2)--dom4j操作XML
  7. CodeForces 18C
  8. BZOJ 4455: [Zjoi2016]小星星 [容斥原理 树形DP]
  9. python爬虫 | 一条高效的学习路径
  10. Struts2_API
  11. [Python设计模式] 第1章 计算器——简单工厂模式
  12. promise对象的使用
  13. 第一个appium的Demo
  14. 传统Java Web(非Spring Boot)、非Java语言项目接入Spring Cloud方案
  15. 【Linux】开机自动启动脚本
  16. jQuery的介绍和选择器详解
  17. docker之搭建私有仓库
  18. JavaScript 的装饰器:它们是什么及如何使用
  19. JS 中的数据类型
  20. datagridview添加行

热门文章

  1. php手记之05-tp5模型操作数据库
  2. python: 关于解决&#39;\u&#39;开头的字符串转中文的方法
  3. Xgboost建模
  4. 快速查看MySQL数据库的版本号
  5. osg 三维模型加载与解析(fbx、3ds、ive、obj、osg)
  6. 清空表且id为0
  7. linux cron计划任务防止多个任务同时运行
  8. ALBPM Service Config
  9. 【c# 学习笔记】封装
  10. thinkPHP 类库映射 类库导入