把jquery-1.7.2.js放在WebRoot目录下的scripts文件夹内(scripts是自己创建的文件夹)
把dom4j-1.6.1.jar放在WebRoot/WEB-INF/lib下
1.编写Servlet: XMLServlet
package com.xuankai.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.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
//下面一行导入的是另外编写的一个Person类,含有id,name,age,address属性,并生成它们的get和set方法。(代码略)
import com.xuankai.model.Person;
public class XMLServlet extends HttpServlet
{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String name = req.getParameter("name");
Person person = new Person();
if("zhangsan".equals(name))
{
person.setId(1);
person.setName("zhangsan");
person.setAge(20);
person.setAddress("beijing");
}
else
{
person.setId(2);
person.setName("lisi");
person.setAge(25);
person.setAddress("tianjing");
}
//使用dom4j创建xml
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement("users");
rootElement.addComment("This is comment!");
Element userElement = rootElement.addElement("user");
Element idElement = userElement.addElement("id");
Element nameElement = userElement.addElement("name");
Element ageElement = userElement.addElement("age");
Element addressElement = userElement.addElement("address");
idElement.setText(person.getId()+"");
nameElement.setText(person.getName());
ageElement.setText(person.getAge()+"");
addressElement.setText(person.getAddress());
resp.setContentType("text/xml;charset=utf-8");
resp.setHeader("pragma","no-cache");
resp.setHeader("cache-control","no-cache");
PrintWriter out = resp.getWriter();
//设置输出格式
OutputFormat format = OutputFormat.createPrettyPrint();
//设置编码格式
format.setEncoding("utf-8");
XMLWriter xmlWriter = new XMLWriter(out,format);
xmlWriter.write(document);
out.flush();
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
this.doPost(req,resp);
}
}
2.编写jsp: xml.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>My JSP 'xml.jsp' starting page</title>
<script type="text/javascript" src="scripts/jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
//Use method : $.ajax() to do it !!
/*
$("#button").click(function(){
$.ajax({
type:"POST",
url:"XMLServlet",
dataType:"xml",
data:{name:$("#name").val()},
success: function(returnedData){
var id = $(returnedData).find("id").text();
var name = $(returnedData).find("name").text();
var age = $(returnedData).find("age").text();
var address = $(returnedData).find("address").text();
var html = "<table width='60%' border='1' align='center'><tr><th>id</th><th>name</th><th>age</th><th>address</th></tr><tr><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+address+"</td><tr>";
$("#body table:eq(0)").remove();
$("#body").append(html);
}
});
});
*/
//Use method : $.get() or $.post () to do it !!
$(function(){
$("#button").click(function(){
$.get("XMLServlet",{ name:$("#name").val()},
function(returnedData,status){
var id = $(returnedData).find("id").text();
var name = $(returnedData).find("name").text();
var age = $(returnedData).find("age").text();
var address = $(returnedData).find("address").text();
var html = "<table width='60%' border='1' align='center'><tr><th>id</th><th>name</th><th>age</th><th>address</th></tr><tr><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td><td>"+address+"</td><tr>";
$("#body table:eq(0)").remove();
$("#body").append(html);
}
);
});
});
});
</script>
</head>
<body id="body">
<select id="name">
<option value="zhangsan">zhangsan</option>
<option value="lisi">lisi</option>
</select>
<input type="button" value="get content from server" id="button">
</body>
</html>
运行结果为:
下拉菜单选择zhangsan时的结果为:
下拉菜单选择lisi时的结果为:
