com.ajax.entity.UserInfo:
package com.ajax.entity; public class UserInfo { private String userId; private String userName; /** * @return the userId */ public String getUserId() { return userId; } /** * @param userId the userId to set */ public void setUserId(String userId) { this.userId = userId; } /** * @return the userName */ public String getUserName() { return userName; } /** * @param userName the userName to set */ public void setUserName(String userName) { this.userName = userName; } public UserInfo(String userId, String userName) { this.userId = userId; this.userName = userName; } }
com.ajax.servlet.JsonServlet:
package com.ajax.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ajax.entity.UserInfo; /** * Servlet implementation class JsonServlet */ public class JsonServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public JsonServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 設置編碼格式 response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); List<UserInfo> users = getUsers(); out.print("["); for(int i=0;i<users.size()-1;i++) { out.print("{id:'"+users.get(i).getUserId()+"',name:'"+users.get(i).getUserName()+"'},"); } out.print("{id:'"+users.get(users.size()-1).getUserId()+"',name:'"+users.get(users.size()-1).getUserName()+"'}"); out.print("]"); out.flush(); out.close(); } /** * 構建用戶信息 */ private List<UserInfo> getUsers() { List<UserInfo> users = new ArrayList<UserInfo>(); UserInfo user = new UserInfo("U014", "歐陽公"); UserInfo user1 = new UserInfo("U024", "東門吹吹"); UserInfo user2 = new UserInfo("U044", "西門慶"); UserInfo user3 = new UserInfo("U074", "網看看"); users.add(user); users.add(user1); users.add(user2); users.add(user3); return users; } }
com.ajax.servlet.XmlServlet:
package com.ajax.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ajax.entity.UserInfo; /** * Servlet implementation class XmlServlet */ public class XmlServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public XmlServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 設置編碼格式 response.setContentType("text/xml;charset=utf-8"); request.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); List<UserInfo> users = getUsers(); out.print("<?xml version='1.0' encoding='UTF-8'?>"); out.print("<userInfos>"); for(UserInfo user : users) { out.print("<user id='"+user.getUserId()+"'>"+user.getUserName()+"</user>"); } out.print("</userInfos>"); out.flush(); out.close(); } /** * 構建用戶信息 */ private List<UserInfo> getUsers() { List<UserInfo> users = new ArrayList<UserInfo>(); UserInfo user = new UserInfo("U014", "歐陽公"); UserInfo user1 = new UserInfo("U024", "東門吹吹"); UserInfo user2 = new UserInfo("U044", "西門慶"); UserInfo user3 = new UserInfo("U074", "網看看"); users.add(user); users.add(user1); users.add(user2); users.add(user3); return users; } }
/Ajax_XML_JSON/WebContent/json.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> // 定義全局異步請求對象的句柄 var xmlHttpRequest; // 定義創建異步請求對象的函數 function createXMLHttpRequest() { if(window.XMLHttpRequest) { xmlHttpRequest = new XMLHttpRequest(); } else if(winodw.ActiveXObject) { try { xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } } } // 定義發送請求的函數 function sendRequest() { if(xmlHttpRequest==null) { createXMLHttpRequest(); } // 指定請求得到響應後處理響應結果的回調函數 xmlHttpRequest.onreadystatechange = callBack; // 打開請求 xmlHttpRequest.open("GET","jsonServlet"); // 發送請求 xmlHttpRequest.send(null); } // 定義回調函數 function callBack() { if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200) { alert(xmlHttpRequest.responseText); // 把json字符串轉換爲JS對象 var userInfos = eval("("+xmlHttpRequest.responseText+")"); var content="id----------------name<br/>"; for(var i=0;i<userInfos.length;i++) { var id = userInfos[i].id; var name = userInfos[i].name; content+=id+"----------------"+name+"<br/>"; } document.getElementById("msg").innerHTML=content; } } </script> </head> <body> <fieldset style="width: 50%"> <legend>Ajax解析JSON</legend> <input type="button" value="ajax解析JSON" onclick="sendRequest();" /><br/> <div id="msg"></div> </fieldset> </body> </html>
/Ajax_XML_JSON/WebContent/xml.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!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=UTF-8"> <title>Insert title here</title> <script type="text/javascript"> // 定義全局異步請求對象的句柄 var xmlHttpRequest; // 定義創建異步請求對象的函數 function createXMLHttpRequest() { if(window.XMLHttpRequest) { xmlHttpRequest = new XMLHttpRequest(); } else if(winodw.ActiveXObject) { try { xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } } } // 定義發送請求的函數 function sendRequest() { if(xmlHttpRequest==null) { createXMLHttpRequest(); } // 指定請求得到響應後處理響應結果的回調函數 xmlHttpRequest.onreadystatechange = callBack; // 打開請求 xmlHttpRequest.open("GET","xmlServlet"); // 發送請求 xmlHttpRequest.send(null); } // 定義回調函數 function callBack() { if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200) { //alert(xmlHttpRequest.responseXML); // 獲取xml文件根節點元素對象 var rootElement = xmlHttpRequest.responseXML; // 獲取根節點下面所有子節點對象 var userInfos = rootElement.getElementsByTagName("user"); // 解析獲取的子節點組成數組 /* <userInfos> <user id="U014">歐陽公</user> <user id="U024">東門吹吹</user> <user id="U044">西門慶</user> <user id="U074">網看看</user> </userInfos> */ // userInfos[i].getAttribute("id") 獲取當前遍歷元素id屬性對應值 // userInfos[i].firstChild.nodeValue 獲取當前遍歷元素第一個子節點對應值 var content="id-----------------name<br/>"; for(var i=0;i<userInfos.length;i++) { //alert("id:"+userInfos[i].getAttribute("id")+" name:"+userInfos[i].firstChild.nodeValue); var id = userInfos[i].getAttribute("id"); var name = userInfos[i].firstChild.data; content+=id+"-----------------"+name+"<br/>"; } document.getElementById("msg").innerHTML=content; } } </script> </head> <body> <fieldset style="width: 50%"> <legend>Ajax解析XML</legend> <input type="button" value="ajax解析XML" onclick="sendRequest();" /><br/> <div id="msg"></div> </fieldset> </body> </html>