你的位置:首页 > Java教程

[Java教程]Java Servlet生成JSON格式数据并用jQuery显示


1、Servlet通过json-lib生成JSON格式的数据

import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import json.Person;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

@WebServlet("/JSONServlet")
public class JSONServlet extends HttpServlet {
public JSONServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("application/x-json");
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();
ArrayList<Person> items=new ArrayList<Person>();
items.add(new Person(2,"jack"));
items.add(new Person(2,"bob"));
items.add(new Person(2,"alex"));

JSONArray jsonArray=new JSONArray();
jsonArray.addAll(items);
out.print(jsonArray.toString());
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doGet(request,response);
}
public void init() throws ServletException {
// Put your code here
}
}

2、前端页面代码

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(
function() {
$("#kick").click(
function() {

$.ajax({
type : "post",//post方法
url : "JSONServlet",
data : {
"legs" : "2",
"name" : "aa"
},
//ajax成功的回调函数
success : function(returnData) {
var arr = eval(returnData);
$.each(arr, function(index, content) {
$("#result").append(
"<div>" + content.legs
+ "</div>" + "<div>"
+ content.name
+ "</div><hr/>");

});

}
});
});
});
</script>
</head>
<body>
<input type="button" id="kick" value="kick">
<div id="result"></div>
</body>
</html>