本文執行個體講述了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>
jQuery也可以用.getJSON實現非同步資料擷取
<script type="text/javascript">$(document).ready(function() {$("#kick").click(function() {$.getJSON("JSONServlet",function(returnData){var arr = eval(returnData);$("#result").html("");//清空info內容$.each(arr, function(index, content) {$("#result").append("<div>" + content.legs+ "</div>" + "<div>"+ content.name+ "</div><hr/>");});});});});</script>
希望本文所述對大家JSP程式設計有所協助。