轉自:http://www.cnblogs.com/digdeep/p/5574366.htmljavascript
1.前臺頁面html
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <script type="text/javascript" 8 src="${pageContext.request.contextPath}/resource/js/jquery-1.8.2.min.js"></script> 9 <title>Insert title here</title> 10 </head> 11 <body> 12 13 <form action=""> 14 <input type="button" onclick="getJson()"> 15 </form> 16 17 </body> 18 19 <script type="text/javascript"> 20 function getJson(){ 21 $.ajax({ 22 url:'${pageContext.request.contextPath}/SendJsonToFrantServlet', 23 type:"get", 24 success:function(value){ 25 alert(value.username); 26 },dataType:"json" 27 }); 28 } 29 </script> 30 31 </html>
2.後臺類準備數據java
1 package cn.rocker.json; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 9 import net.sf.json.JSONObject; 10 11 /** 12 * @ClassName: SendJsonToFrantServlet 13 * @Description: 向前臺發送json數據 14 * @author 112 15 * @date 2018年4月28日 上午10:11:54 16 */ 17 public class SendJsonToFrantServlet extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 21 JSONObject jsonObject = new JSONObject(); 22 jsonObject.put("username", "xiaoerhei"); 23 String string = jsonObject.toString(); 24 System.out.println(string); 25 //response.setContentType("application/json;charset=utf-8"); //1 26 //response.setContentType("text/json;charset=utf-8"); //2 27 //response.setContentType("text/javascript;charset=utf-8"); //3 28 response.setContentType("application/javascript;charset=utf-8"); //4 29 response.getWriter().write(string); 30 } 31 32 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 33 doGet(request, response); 34 } 35 36 }
設置ContentType時 jquery
三、4用於返回js代碼,一、2專門用於返回 json 格式的數據ajax
三、4 返回的 js 代碼,會自動在 瀏覽器中進行執行,就像返回的結果被 eval(result) 調用了同樣。也就是說返回的字符串,會被當作 js 代碼,被瀏覽器的js引擎進行執行。而不是當作普通的 字符串顯示在瀏覽器中。json
一、2專門用於返回 json 格式的數據,而 json 格式是 js 代碼的一個子集。也就是說 json 格式的數據,也是 js 代碼,也會被瀏覽器的js引擎執行,而生成 json 對象。瀏覽器
因此若是返回的是 json 格式,那麼用以上四種ContentType都是能夠的。app
注意ui
若是不在後臺設置ContentType,而直接在前臺用eval解析返回的json串,或者在前臺指定dateType爲"json"來解析後臺返回的json串時,會有XML報錯url