现在的位置: 首页 > 综合 > 正文

ajax练习用json返回数据

2013年08月02日 ⁄ 综合 ⁄ 共 2317字 ⁄ 字号 评论关闭
JSON(JavaScript Object  Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
 
练习示例:
效果图:

首先要创建实体类User.java:
public class User {
	Integer id;
	String name;
	String sex;
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public User(Integer id, String name, String sex) {
		super();
		this.id = id;
		this.name = name;
		this.sex = sex;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	
}

json .jsp

<body>
	<table border="1px" align="center">
	<thead>
		<tr>
			<th>id号</th>
			<th>姓名</th>
			<th>性别</th>
		</tr>
		</thead>
		<tbody id="users">
		</tbody>
	</table>
</body>

<script type="text/javascript">
<!--
window.onload=function(){
	//获取xhr对象
 	var xmlHttp = createXmlHttpRequest();
 	xmlHttp.onreadystatechange = function() {
 		//判断 服务器是否正确返回 相应信息
		if (xmlHttp.readyState == 4) {
			//接受数据
			   var jsonStr =xmlHttp.responseText;
			   var jsonEmps = eval("("+jsonStr+")");
			   display(jsonEmps);
		}
	}
 	////规定请求的类型
	xmlHttp.open("GET", "./ListServlet?timeStamp="
			+ new Date().getTime(), true);
	//发送请求
	xmlHttp.send(null);
}
function display(obj){
	var users=document.getElementById("users");
	for(var i=0;i<obj.length;i++){
		   //创建tr
		   var tr=document.createElement("tr");
		   //创建td
		   var td1=document.createElement("td");
		   var td2=document.createElement("td");
		   var td3=document.createElement("td");
		   //添加文本
		   td1.appendChild(document.createTextNode(obj[i].id));
		   td2.appendChild(document.createTextNode(obj[i].name));
		   td3.appendChild(document.createTextNode(obj[i].sex));
		   //添加到tr中
		   tr.appendChild(td1);
		   tr.appendChild(td2);
		   tr.appendChild(td3);
		   //添加到users中
		   users.appendChild(tr);
	   }
}
	function createXmlHttpRequest(){
	var xmlHttp;
	try { //Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		try { //Internet Explorer
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	}
	return xmlHttp;
	
}
//-->
</script>

最后是servlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		List<User> list=new ArrayList<User>();
		for(int i=0;i<5;i++){
			User user=new User(i,"ren"+i,"nv");
			list.add(user);
		}
		String json=JSONArray.fromObject(list).toString();
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out=response.getWriter();
		out.print(json);
		System.out.println("as");
	}

抱歉!评论已关闭.