本文目錄一覽:
- 1、如何使用ajax將json傳入後台數據
- 2、ajax傳遞json,然後服務器接受json的代碼編寫
- 3、java如何接收ajax傳遞的json類型的數據
- 4、小白求教,java中怎麼獲取ajax發送的json數據
- 5、servlet怎麼獲取ajax傳過來的json數據
- 6、java使用ajax是否可以傳遞對象或數據集
如何使用ajax將json傳入後台數據
以下代碼是對$.ajax()的解析:
$.ajax({
type: “POST”, //提交方式
contentType: “application/json; charset=utf-8”, //內容類型
dataType: “json”, //類型
url: “前台地址/後台方法”, //提交的頁面,方法名
data: “parameter”, //參數,如果沒有,可以為null
success: function (data) { //如果執行成功,那麼執行此方法
alert(data.d); //用data.d來獲取後台傳過來的json語句,或者是單純的語句
},
error: function (err) { //如果執行不成功,那麼執行此方法
alert(“err:” + err);
}
});
ajax傳遞json,然後服務器接受json的代碼編寫
1.ajax發送請求(建議使用jQuery):
$.ajax({
method:post;
url: “你要發送到後台去的地址”,
parameter:你要傳送的數據,
beforeSend:function(){在發送請求之前你要做的事}
afterSend:function(){在發送請求後你想做的事}
success:function(){alert(‘成功了!’)}
});
2.後台處理JSON數據:
1)最基本的原理性解決辦法:JSON不過是通過request對象傳過來的鍵值對而已,直接獲得request對象,去對應的屬性就行了。
2)net.sf.json.JSONObject這個包你可以學習下,也不是很難。
3.關於返回頁面:
你要控制頁面跳轉么?那你使用AJAX干毛啊?使用AJAX就是為了不刷新頁面而把值傳到後台去的。
java如何接收ajax傳遞的json類型的數據
主要是賦值給Map就行。
json數據格式為:
{name:’張三’,age:20}這樣的不是數組時,
在java中new一個Map對象獲取,如
MapString,String map = (MapString,String)request.getParament(“json”);
然後獲取name為:map.get(“name”);
如果json數據為數組:
[{name:’張三’,age:17},{name:’李四’,age:20}]
在java中new一個
ListMapString,String maplist = (ListMapString,String)request.getParament(“json”);
小白求教,java中怎麼獲取ajax發送的json數據
在JS中,一般是使用eval()函數將JSON的字符串解析成JSON數據格式。
測試代碼如下:
var obj = eval(“(“+data+”)」);//轉為json對象
alert(“return_code:”+obj[“return_code”]);//彈出json對象return_code屬性
這邊需要注意的是,eval(“(“+data+”)」)要這麼寫,裏面還帶了一對括號。原因在於:eval本身的問題。 由於json是以」{}」的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。
servlet怎麼獲取ajax傳過來的json數據
1.原生AJAX代碼
get請求:
//創建xhr,IE低版本不支持
var xhr = new XMLHttpRequest();
//servlet地址
var url=”/Website01/index.view”;
xhr.open(“get”, url, true);
//xhr處理事件,異步
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 xhr.status == 200) {
//在這裡進行相關處理,通過xhr.responseText獲取後台反饋的文本
…
}
};
//xhr發送數據
xhr.send();
post請求:
post請求需注意要設置請求頭(setRequestHeader)
xhr.setRequestHeader(「Content-type」, 「application/json」);針對JSON數據
在xhr.send()中寫需要發送的JSON數據,例如:
xhr.send(JSON.stringify(data));1
2.Servlet基礎知識
Servlet是用Java編寫的服務器端程序。其主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。狹義的Servlet是指Java語言實現的一個接口,廣義的Servlet是指任何實現了這個Servlet接口的類,一般情況下,人們將Servlet理解為後者。
Servlet運行於支持Java的應用服務器中(Tomcat)。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基於HTTP協議的Web服務器。
在Java中,新建Servlet類繼承自HttpServlet,重寫doGet方法處理get請求,重寫doPost方法,處理post請求,通過
PrintWriter out = response.getWriter();通過out.write()輸出數據到前台的xhr.responseText,通過out.println()輸出頁面。
3.Servlet處理請求
處理請求通過HttpServletRequest類型,Get請求時查詢字符串直接編碼在請求鏈接中,格式為url+」?key1=value1key2=value2」,通過getParameter(「key1」)來獲取值。
4.前後端傳遞JSON數據
前端傳遞JSON給Servlet
//程序片段,請求頭不能少
xhr.setRequestHeader(“Content-type”, “application/json”);
var data={“name”:”Tom”,”age”:20};
xhr.send(JSON.stringify(data));1234
後端接受前端傳遞的JSON數據
//讀取請求傳遞過來的JSON格式數據,返回JSON字符串
private String readJSONData(HttpServletRequest request) {
StringBuffer json=new StringBuffer();
String lineString=null;
try {
BufferedReader reader=request.getReader();
while ((lineString=reader.readLine())!=null) {
json.append(lineString);
}
} catch (Exception e) {
System.out.println(e.toString());
}
return json.toString();
}
String json=readJSONData(request);
//將json字符串轉為java對象
Gson gson=new Gson();
Person person=gson.fromJson(json, Person.class);
說明
Gson為google處理JSON格式數據的jar包,可將JSON字符串轉換為對應的Java對象,也可將相應的Java對象序列化為JSON字符串。Person為定義的類,包含name和age字段。readJSONData函數將前端請求中的JSON數據轉為java對象。
後端輸出JSON到前端
//後端程序片段,傳遞json數據給前端
Person person=new Person(“Tom”,20);
Gson gson=new Gson();
String json=gson.toJson(person);
out.write(json);
//前端程序片段,通過ajax獲取json數據
var xhr = new XMLHttpRequest();
var url=”/Website01/index.view”;
xhr.open(“get”, url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 xhr.status == 200) {
//獲取後台傳遞過來的字符串並轉換為json
var responseJson=JSON.parse(xhr.responseText);
var name=responseJson.name;
var age=responseJson.age;
}
};
xhr.send(null);
5.表單數據的處理
form method=”post” action=”/Website01/index.view”
labelName:/labelinput type=”text” id=”name1″ name=”name”br
labelAge:/labelinput type=”number” id=”age1″ name=”age”br
input type=”submit” id=”submit” value=”提交”
/form12345
表單數據可以直接在form屬性中定義請求方法和請求路徑,在點擊submit按鈕後數據會直接提交並跳轉。如上的表單,在點擊按鈕提交後,後台使用request.getParameter(「key」)獲取數據,key值為input標籤的name值,而非id值.,即通過以下代碼獲取表單提交的數據。
String name=request.getParameter(“name”);
String age=request.getParameter(“age”);12
以上。
java使用ajax是否可以傳遞對象或數據集
可以,但是這樣的傳遞都是通過其他手段,也就是要經過序列化和反序列化
常用的方法有json和XML,比如使用ajax向Java發請求,我們先將對象轉成JSON或者XML或者其他格式的字符串,然後發給java,java接到請求後再解決這個字符串
使用最多的是JSON格式,因為現在有許多的庫可以來做這個序列化和反序列化
原創文章,作者:GKPZT,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/313655.html