【发布时间】:2021-09-20 14:30:54
【问题描述】:
我必须向 servlet 发送两个数组,我使用发送 JSON 对象的 Ajax POST 调用,然后我必须读取在 java 中的 servlet 类中的两个列表或数组中发送的数据。 我不喜欢使用 jQuery 进行 Ajax 调用。 我对json不是很熟悉,我使用了stackoverflow中的一些代码,我不明白发送或解析数据是否有问题。
这里是在Javascript中进行Ajax调用的方法,其中cback是回调函数,method = "POST",url是servlet的url:
function makeCall(method, url, from, to, cback) {
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
cback(req)
};
req.open(method, url);
var obj = {};
obj["from"] = from;
obj["to"] = to;
var data = JSON.stringify(obj);
req.send(data);
}
这里是 url 指定的 servlet 控制器中的 doPost 方法。这是我发现问题的地方:在执行 getParameter 之后,字符串 json1 和 json2 为空:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//...
String json1 = request.getParameter("from");
String json2 = request.getParameter("to");
Gson gson = new Gson();
ArrayList<Double> listFrom = gson.fromJson(json1,
new TypeToken<ArrayList<Categoria>>() {}.getType());
ArrayList<Double> listTo = gson.fromJson(json2,
new TypeToken<ArrayList<Double>>() {}.getType());
//...
}
【问题讨论】:
标签: javascript java json ajax